f->last_atom = atom_type;
if (atom_type == ATOM_MOOV && size > header_size) {
- f->moov_read = 1;
f->moov_offset = mp4ff_position(f) - header_size;
f->moov_size = size;
}
return chunk_offset2;
}
-int32_t mp4ff_set_sample_position(mp4ff_t * f, const int32_t track,
- const int32_t sample)
+void mp4ff_set_sample_position(mp4ff_t *f, const int32_t track,
+ const int32_t sample)
{
- int32_t offset;
-
- offset = mp4ff_sample_to_offset(f, track, sample);
+ int32_t offset = mp4ff_sample_to_offset(f, track, sample);
mp4ff_set_position(f, offset);
-
- return 0;
}
-static int32_t mp4ff_audio_frame_size(const mp4ff_t * f, const int32_t track,
- const int32_t sample)
+int32_t mp4ff_get_sample_size(const mp4ff_t *f, int track, int sample)
{
- int32_t bytes;
- const mp4ff_track_t *p_track = f->track[track];
+ const mp4ff_track_t *t = f->track[track];
- if (p_track->stsz_sample_size) {
- bytes = p_track->stsz_sample_size;
- } else {
- bytes = p_track->stsz_table[sample];
- }
-
- return bytes;
-}
-
-int32_t mp4ff_read_sample_getsize(mp4ff_t * f, const int track,
- const int sample)
-{
- int32_t temp = mp4ff_audio_frame_size(f, track, sample);
- if (temp < 0)
- temp = 0;
- return temp;
+ if (t->stsz_sample_size != 0)
+ return t->stsz_sample_size;
+ return t->stsz_table[sample];
}
uint32_t mp4ff_get_sample_rate(const mp4ff_t * f, const int32_t track)
return bytes;
}
-#define membuffer_write_data membuffer_write
-
static unsigned membuffer_write_atom_name(membuffer * buf, const char *data)
{
- return membuffer_write_data(buf, data, 4) == 4 ? 1 : 0;
+ return membuffer_write(buf, data, 4) == 4 ? 1 : 0;
}
static unsigned membuffer_write_int16(membuffer * buf, uint16_t data)
{
uint8_t temp[2] = { (uint8_t) (data >> 8), (uint8_t) data };
- return membuffer_write_data(buf, temp, 2);
+ return membuffer_write(buf, temp, 2);
}
static unsigned membuffer_write_int32(membuffer * buf, uint32_t data)
{
uint8_t temp[4] = { (uint8_t) (data >> 24), (uint8_t) (data >> 16),
(uint8_t) (data >> 8), (uint8_t) data };
- return membuffer_write_data(buf, temp, 4);
+ return membuffer_write(buf, temp, 4);
}
static void membuffer_write_track_tag(membuffer * buf, const char *name,
membuffer_write_atom_name(buf, "data");
membuffer_write_int32(buf, flags); //flags
membuffer_write_int32(buf, 0); //reserved
- membuffer_write_data(buf, value, strlen(value));
+ membuffer_write(buf, value, strlen(value));
}
static void membuffer_write_custom_tag(membuffer * buf, const char *name,
membuffer_write_int32(buf, 0x1C); //weirdo itunes atom
membuffer_write_atom_name(buf, "mean");
membuffer_write_int32(buf, 0);
- membuffer_write_data(buf, "com.apple.iTunes", 16);
+ membuffer_write(buf, "com.apple.iTunes", 16);
membuffer_write_int32(buf, 12 + strlen(name));
membuffer_write_atom_name(buf, "name");
membuffer_write_int32(buf, 0);
- membuffer_write_data(buf, name, strlen(name));
+ membuffer_write(buf, name, strlen(name));
membuffer_write_int32(buf,
8 /*data atom header */ +
8 /*flags + reserved */ + strlen(value));
membuffer_write_atom_name(buf, "data");
membuffer_write_int32(buf, 1); //flags
membuffer_write_int32(buf, 0); //reserved
- membuffer_write_data(buf, value, strlen(value));
+ membuffer_write(buf, value, strlen(value));
}
static unsigned membuffer_error(const membuffer * buf)
{
membuffer_write_int32(buf, size + 8);
membuffer_write_atom_name(buf, name);
- membuffer_write_data(buf, data, size);
+ membuffer_write(buf, data, size);
}
static void *membuffer_get_ptr(const membuffer * buf)
void *bufptr;
oldsize = membuffer_get_size(buf);
- if (membuffer_write_data(buf, 0, bytes) != bytes)
+ if (membuffer_write(buf, 0, bytes) != bytes)
return 0;
bufptr = membuffer_get_ptr(buf);