comparison libmpdemux/demuxer.h @ 25657:dfeb8ea2a7a8

Add demuxer interface for attachments.
author eugeni
date Sat, 12 Jan 2008 01:12:36 +0000
parents f94eee219ee0
children f0d45f8866e8
comparison
equal deleted inserted replaced
25656:00e4d59a0be4 25657:dfeb8ea2a7a8
172 { 172 {
173 uint64_t start, end; 173 uint64_t start, end;
174 char* name; 174 char* name;
175 } demux_chapter_t; 175 } demux_chapter_t;
176 176
177 typedef struct demux_attachment_s
178 {
179 char* name;
180 char* type;
181 void* data;
182 unsigned int data_size;
183 } demux_attachment_t;
184
177 typedef struct demuxer_st { 185 typedef struct demuxer_st {
178 demuxer_desc_t *desc; ///< Demuxer description structure 186 demuxer_desc_t *desc; ///< Demuxer description structure
179 off_t filepos; // input stream current pos. 187 off_t filepos; // input stream current pos.
180 off_t movi_start; 188 off_t movi_start;
181 off_t movi_end; 189 off_t movi_end;
197 void *s_streams[MAX_S_STREAMS]; // dvd subtitles (flag) 205 void *s_streams[MAX_S_STREAMS]; // dvd subtitles (flag)
198 206
199 demux_chapter_t* chapters; 207 demux_chapter_t* chapters;
200 int num_chapters; 208 int num_chapters;
201 209
210 demux_attachment_t* attachments;
211 int num_attachments;
212
202 void* priv; // fileformat-dependent data 213 void* priv; // fileformat-dependent data
203 char** info; 214 char** info;
204 } demuxer_t; 215 } demuxer_t;
205 216
206 typedef struct { 217 typedef struct {
382 extern int demuxer_type_by_filename(char* filename); 393 extern int demuxer_type_by_filename(char* filename);
383 394
384 extern void demuxer_help(void); 395 extern void demuxer_help(void);
385 extern int get_demuxer_type_from_name(char *demuxer_name, int *force); 396 extern int get_demuxer_type_from_name(char *demuxer_name, int *force);
386 397
398 int demuxer_add_attachment(demuxer_t* demuxer, const char* name,
399 const char* type, const void* data, size_t size);
400
387 int demuxer_add_chapter(demuxer_t* demuxer, const char* name, uint64_t start, uint64_t end); 401 int demuxer_add_chapter(demuxer_t* demuxer, const char* name, uint64_t start, uint64_t end);
388 int demuxer_seek_chapter(demuxer_t *demuxer, int chapter, int mode, float *seek_pts, int *num_chapters, char **chapter_name); 402 int demuxer_seek_chapter(demuxer_t *demuxer, int chapter, int mode, float *seek_pts, int *num_chapters, char **chapter_name);
389 403
390 /// Get current chapter index if available. 404 /// Get current chapter index if available.
391 int demuxer_get_current_chapter(demuxer_t *demuxer); 405 int demuxer_get_current_chapter(demuxer_t *demuxer);