]> git.tuebingen.mpg.de Git - paraslash.git/blob - mp4.h
mp4: Introduce mp4ff_get_duration().
[paraslash.git] / mp4.h
1 struct mp4ff_callback {
2     uint32_t (*read)(void *user_data, void *buffer, uint32_t length);
3     uint32_t (*write)(void *udata, void *buffer, uint32_t length);
4     uint32_t (*seek)(void *user_data, uint64_t position);
5     uint32_t (*truncate)(void *user_data);
6     void *user_data;
7     uint32_t read_error;
8 };
9
10 struct mp4ff_tag {
11     char *item;
12     char *value;
13     uint32_t len;
14 };
15
16 struct mp4ff_metadata {
17     struct mp4ff_tag *tags;
18     uint32_t count;
19 };
20
21 struct mp4ff; /* opaque */
22
23 void mp4ff_set_sample_position(struct mp4ff *f, int32_t track, int32_t sample);
24 int32_t mp4ff_total_tracks(const struct mp4ff *f);
25 void mp4ff_get_decoder_config(const struct mp4ff *f, int track,
26                 unsigned char** ppBuf, unsigned int* pBufSize);
27 struct mp4ff *mp4ff_open_read(struct mp4ff_callback *f);
28 void mp4ff_close(struct mp4ff *f);
29 int32_t mp4ff_get_sample_size(const struct mp4ff *f, int track, int sample);
30 uint32_t mp4ff_get_sample_rate(const struct mp4ff *f, int32_t track);
31 uint32_t mp4ff_get_channel_count(const struct mp4ff * f, int32_t track);
32 int32_t mp4ff_num_samples(const struct mp4ff *f, int track);
33 uint64_t mp4ff_get_duration(const struct mp4ff *f, int32_t track);
34 struct mp4ff *mp4ff_open_read_metaonly(struct mp4ff_callback *f);
35
36 int mp4ff_meta_get_by_index(const struct mp4ff *f, unsigned int index,
37                             char **item, char **value);
38 int32_t mp4ff_meta_update(struct mp4ff_callback *f,const struct mp4ff_metadata * data);
39
40 int mp4ff_meta_get_num_items(const struct mp4ff *f);
41 int mp4ff_meta_get_artist(const struct mp4ff *f, char **value);
42 int mp4ff_meta_get_title(const struct mp4ff *f, char **value);
43 int mp4ff_meta_get_date(const struct mp4ff *f, char **value);
44 int mp4ff_meta_get_album(const struct mp4ff *f, char **value);
45 int mp4ff_meta_get_comment(const struct mp4ff *f, char **value);