X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=mp4.h;h=30a609f38c108d0306ccc18ea68596cf64647c96;hb=d440a71683940a58747de6dc32643db452d9cf54;hp=225c92c0fa7fdb21f2b8ad9df5be9783fa3e7457;hpb=30ce255fc5db519c06240951c1a36956ade789fc;p=paraslash.git diff --git a/mp4.h b/mp4.h index 225c92c0..30a609f3 100644 --- a/mp4.h +++ b/mp4.h @@ -1,10 +1,9 @@ struct mp4_callback { - uint32_t (*read)(void *user_data, void *buffer, uint32_t length); - uint32_t (*write)(void *udata, void *buffer, uint32_t length); - uint32_t (*seek)(void *user_data, uint64_t position); - uint32_t (*truncate)(void *user_data); - void *user_data; - uint32_t read_error; + ssize_t (*read)(void *user_data, void *buffer, size_t length); + ssize_t (*write)(void *user_data, void *buffer, size_t count); + uint32_t (*seek)(void *user_data, uint64_t position); + uint32_t (*truncate)(void *user_data); + void *user_data; }; struct mp4_tag { @@ -20,26 +19,19 @@ struct mp4_metadata { struct mp4; /* opaque */ -void mp4_set_sample_position(struct mp4 *f, int32_t track, int32_t sample); -int32_t mp4_total_tracks(const struct mp4 *f); -void mp4_get_decoder_config(const struct mp4 *f, int track, - unsigned char** ppBuf, unsigned int* pBufSize); -struct mp4 *mp4_open_read(struct mp4_callback *f); +int mp4_set_sample_position(struct mp4 *f, int32_t sample); +int mp4_open_read(const struct mp4_callback *cb, struct mp4 **result); void mp4_close(struct mp4 *f); -int32_t mp4_get_sample_size(const struct mp4 *f, int track, int sample); -uint32_t mp4_get_sample_rate(const struct mp4 *f, int32_t track); -uint32_t mp4_get_channel_count(const struct mp4 * f, int32_t track); -int32_t mp4_num_samples(const struct mp4 *f, int track); -uint64_t mp4_get_duration(const struct mp4 *f, int32_t track); -struct mp4 *mp4_open_meta(struct mp4_callback *f); - -int mp4_meta_get_by_index(const struct mp4 *f, unsigned int index, - char **item, char **value); -int32_t mp4_meta_update(struct mp4_callback *f,const struct mp4_metadata * data); - -int mp4_meta_get_num_items(const struct mp4 *f); -int mp4_meta_get_artist(const struct mp4 *f, char **value); -int mp4_meta_get_title(const struct mp4 *f, char **value); -int mp4_meta_get_date(const struct mp4 *f, char **value); -int mp4_meta_get_album(const struct mp4 *f, char **value); -int mp4_meta_get_comment(const struct mp4 *f, char **value); +int32_t mp4_get_sample_size(const struct mp4 *f, int sample); +uint32_t mp4_get_sample_rate(const struct mp4 *f); +uint32_t mp4_get_channel_count(const struct mp4 * f); +int32_t mp4_num_samples(const struct mp4 *f); +uint64_t mp4_get_duration(const struct mp4 *f); +int mp4_open_meta(const struct mp4_callback *cb, struct mp4 **result); +struct mp4_metadata *mp4_get_meta(struct mp4 *f); +int mp4_meta_update(struct mp4 *f); +char *mp4_meta_get_artist(const struct mp4 *f); +char *mp4_meta_get_title(const struct mp4 *f); +char *mp4_meta_get_date(const struct mp4 *f); +char *mp4_meta_get_album(const struct mp4 *f); +char *mp4_meta_get_comment(const struct mp4 *f);