X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=mp4.h;h=c6f53ebc04a477695dad69bc8103593212f70a6e;hb=945502385e8261d6921c7e1748fa64f34b7b81fd;hp=1142925d5dbf1c28e63f0275a99bf5f7a94cd6ae;hpb=7376b51bb47f834f46a06756d3f004efac6c9bb0;p=paraslash.git diff --git a/mp4.h b/mp4.h index 1142925d..c6f53ebc 100644 --- a/mp4.h +++ b/mp4.h @@ -1,38 +1,32 @@ struct mp4_callback { - ssize_t (*read)(void *user_data, void *buffer, size_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; + ssize_t (*read)(void *user_data, void *buffer, size_t length); + ssize_t (*write)(void *user_data, void *buffer, size_t count); + off_t (*seek)(void *user_data, off_t offset, int whence); + int (*truncate)(void *user_data); + void *user_data; }; struct mp4_tag { char *item; char *value; - uint32_t len; }; struct mp4_metadata { struct mp4_tag *tags; - uint32_t count; + unsigned count; }; struct mp4; /* opaque */ -int mp4_set_sample_position(struct mp4 *f, int32_t sample); -struct mp4 *mp4_open_read(const struct mp4_callback *cb); +int mp4_set_sample_position(struct mp4 *f, uint32_t sample); +int mp4_open(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 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); +int mp4_get_sample_size(const struct mp4 *f, uint32_t sample, uint32_t *result); +uint16_t mp4_get_sample_rate(const struct mp4 *f); +uint16_t mp4_get_channel_count(const struct mp4 *f); +uint32_t mp4_num_samples(const struct mp4 *f); uint64_t mp4_get_duration(const struct mp4 *f); -struct mp4 *mp4_open_meta(const struct mp4_callback *cb); - +int mp4_open_meta(const struct mp4_callback *cb, struct mp4 **result); struct mp4_metadata *mp4_get_meta(struct mp4 *f); -int32_t 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); +int mp4_update_meta(struct mp4 *f); +char *mp4_get_tag_value(const struct mp4 *f, const char *item);