]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - mp4.h
mp4: Simplify sample_range_size().
[paraslash.git] / mp4.h
diff --git a/mp4.h b/mp4.h
index e9b18871f97da0a1633a433285b8e1f8579dfc65..0bf7481805242a79f757b1de66a88f122b3481ba 100644 (file)
--- a/mp4.h
+++ b/mp4.h
@@ -1,44 +1,40 @@
-struct mp4ff_callback {
-    uint32_t (*read)(void *user_data, void *buffer, uint32_t length);
+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;
-    uint32_t read_error;
 };
 
-struct mp4ff_tag {
+struct mp4_tag {
     char *item;
     char *value;
     uint32_t len;
 };
 
-struct mp4ff_metadata {
-    struct mp4ff_tag *tags;
+struct mp4_metadata {
+    struct mp4_tag *tags;
     uint32_t count;
 };
 
-struct mp4ff; /* opaque */
+struct mp4; /* opaque */
 
-void mp4ff_set_sample_position(struct mp4ff *f, const int32_t track, const int32_t sample);
-int32_t mp4ff_total_tracks(const struct mp4ff *f);
-void mp4ff_get_decoder_config(const struct mp4ff *f, const int track,
-               unsigned char** ppBuf, unsigned int* pBufSize);
-struct mp4ff *mp4ff_open_read(struct mp4ff_callback *f);
-void mp4ff_close(struct mp4ff *f);
-int32_t mp4ff_get_sample_size(const struct mp4ff *f, int track, int sample);
-uint32_t mp4ff_get_sample_rate(const struct mp4ff *f, const int32_t track);
-uint32_t mp4ff_get_channel_count(const struct mp4ff * f,const int32_t track);
-int32_t mp4ff_num_samples(const struct mp4ff *f, const int track);
-struct mp4ff *mp4ff_open_read_metaonly(struct mp4ff_callback *f);
+void mp4_set_sample_position(struct mp4 *f, int32_t track, int32_t sample);
+int32_t mp4_get_total_tracks(const struct mp4 *f);
+bool mp4_is_audio_track(const struct mp4 *f, int32_t track);
+struct mp4 *mp4_open_read(const struct mp4_callback *cb);
+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(const struct mp4_callback *cb);
 
-int mp4ff_meta_get_by_index(const struct mp4ff *f, unsigned int index,
-                            char **item, char **value);
-int32_t mp4ff_meta_update(struct mp4ff_callback *f,const struct mp4ff_metadata * data);
-
-int mp4ff_meta_get_num_items(const struct mp4ff *f);
-int mp4ff_meta_get_artist(const struct mp4ff *f, char **value);
-int mp4ff_meta_get_title(const struct mp4ff *f, char **value);
-int mp4ff_meta_get_date(const struct mp4ff *f, char **value);
-int mp4ff_meta_get_album(const struct mp4ff *f, char **value);
-int mp4ff_meta_get_comment(const struct mp4ff *f, char **value);
+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);