diff options
Diffstat (limited to 'demux/demux.h')
-rw-r--r-- | demux/demux.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/demux/demux.h b/demux/demux.h index c922dc8bb5..886252fa85 100644 --- a/demux/demux.h +++ b/demux/demux.h @@ -90,6 +90,8 @@ enum timestamp_type { #define DEMUXER_CTRL_DONTKNOW 0 #define DEMUXER_CTRL_OK 1 #define DEMUXER_CTRL_GUESS 2 + +#define DEMUXER_CTRL_SWITCHED_TRACKS 9 #define DEMUXER_CTRL_GET_TIME_LENGTH 10 #define DEMUXER_CTRL_GET_START_TIME 11 #define DEMUXER_CTRL_SWITCH_AUDIO 12 @@ -211,6 +213,8 @@ typedef struct demux_attachment struct demuxer_params { unsigned char (*matroska_wanted_uids)[16]; + int matroska_wanted_segment; + bool *matroska_was_valid; }; typedef struct demuxer { @@ -283,8 +287,8 @@ typedef struct { struct demux_packet *new_demux_packet(size_t len); // data must already have suitable padding struct demux_packet *new_demux_packet_fromdata(void *data, size_t len); +struct demux_packet *new_demux_packet_from(void *data, size_t len); void resize_demux_packet(struct demux_packet *dp, size_t len); -struct demux_packet *clone_demux_packet(struct demux_packet *pack); void free_demux_packet(struct demux_packet *dp); #ifndef SIZE_MAX @@ -305,8 +309,8 @@ struct demuxer *new_demuxer(struct MPOpts *opts, struct stream *stream, char *filename); void free_demuxer(struct demuxer *demuxer); -struct sh_stream *ds_gsh(struct demux_stream *ds); - +void demuxer_add_packet(demuxer_t *demuxer, struct sh_stream *stream, + demux_packet_t *dp); void ds_add_packet(struct demux_stream *ds, struct demux_packet *dp); void ds_read_packet(struct demux_stream *ds, struct stream *stream, int len, double pts, int64_t pos, bool keyframe); @@ -397,12 +401,15 @@ int demuxer_seek_chapter(struct demuxer *demuxer, int chapter, double *seek_pts); void demuxer_sort_chapters(demuxer_t *demuxer); +double demuxer_get_time_length(struct demuxer *demuxer); +double demuxer_get_start_time(struct demuxer *demuxer); + /// Get current chapter index if available. int demuxer_get_current_chapter(struct demuxer *demuxer, double time_now); /// Get chapter name by index if available. char *demuxer_chapter_name(struct demuxer *demuxer, int chapter); -/// Get chapter start time and end time by index if available. -float demuxer_chapter_time(struct demuxer *demuxer, int chapter, float *end); +/// Get chapter start time by index if available. +double demuxer_chapter_time(struct demuxer *demuxer, int chapter); /// Get total chapter number. int demuxer_chapter_count(struct demuxer *demuxer); /// Get current angle index. @@ -415,4 +422,6 @@ int demuxer_angles_count(struct demuxer *demuxer); struct sh_stream *demuxer_stream_by_demuxer_id(struct demuxer *d, enum stream_type t, int id); +bool demuxer_stream_is_selected(struct demuxer *d, struct sh_stream *stream); + #endif /* MPLAYER_DEMUXER_H */ |