]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - mp4.h
mp4: Implement error checking for the write path.
[paraslash.git] / mp4.h
diff --git a/mp4.h b/mp4.h
index 1d48174af6cd30635a31522f393285068a580de9..30a609f38c108d0306ccc18ea68596cf64647c96 100644 (file)
--- a/mp4.h
+++ b/mp4.h
@@ -1,9 +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;
+       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 {
@@ -19,20 +19,17 @@ 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);
-bool mp4_is_audio_track(const struct mp4 *f, int32_t track);
-struct mp4 *mp4_open_read(const struct mp4_callback *cb);
+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(const struct mp4_callback *cb);
-
+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);
-int32_t mp4_meta_update(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);