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_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 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);
-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);