diff options
Diffstat (limited to 'libmpdemux/stheader.h')
-rw-r--r-- | libmpdemux/stheader.h | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/libmpdemux/stheader.h b/libmpdemux/stheader.h index 99ae63ad0d..b11b886ce1 100644 --- a/libmpdemux/stheader.h +++ b/libmpdemux/stheader.h @@ -19,15 +19,17 @@ #ifndef MPLAYER_STHEADER_H #define MPLAYER_STHEADER_H -#include "demuxer.h" #include "aviheader.h" #include "ms_hdr.h" +struct MPOpts; +struct demuxer; // Stream headers: #define SH_COMMON \ - demux_stream_t *ds; \ - struct codecs_st *codec; \ + struct MPOpts *opts; \ + struct demux_stream *ds; \ + struct codecs *codec; \ unsigned int format; \ int initialized; \ float stream_delay; /* number of seconds stream should be delayed (according to dwStart or similar) */ \ @@ -43,11 +45,11 @@ char* lang; /* track language */ \ int default_track; \ -typedef struct { +typedef struct sh_common { SH_COMMON } sh_common_t; -typedef struct { +typedef struct sh_audio { SH_COMMON int aid; // output format: @@ -72,8 +74,8 @@ typedef struct { int a_out_buffer_len; int a_out_buffer_size; // void* audio_out; // the audio_out handle, used for this audio stream - struct af_stream_s *afilter; // the audio filter stream - struct ad_functions_s* ad_driver; + struct af_stream *afilter; // the audio filter stream + struct ad_functions *ad_driver; #ifdef CONFIG_DYNAMIC_PLUGINS void *dec_handle; #endif @@ -86,7 +88,7 @@ typedef struct { int pts_bytes; // bytes output by decoder after last known pts } sh_audio_t; -typedef struct { +typedef struct sh_video { SH_COMMON int vid; float timer; // absolute time in video stream, since last start/seek @@ -99,6 +101,13 @@ typedef struct { double last_pts; double buffered_pts[20]; int num_buffered_pts; + double codec_reordered_pts; + double prev_codec_reordered_pts; + int num_reordered_pts_problems; + double sorted_pts; + double prev_sorted_pts; + int num_sorted_pts_problems; + int pts_assoc_mode; // output format: (set by demuxer) float fps; // frames per second (set only if constant fps) float frametime; // 1/fps @@ -108,7 +117,9 @@ typedef struct { int disp_w,disp_h; // display size (filled by fileformat parser) // output driver/filters: (set by libmpcodecs core) unsigned int outfmtidx; - struct vf_instance_s *vfilter; // the video filter chain, used for this video stream + struct vf_instance *vfilter; // the video filter chain, used for this video stream + int output_flags; // query_format() results for output filters+vo + const struct vd_functions *vd_driver; int vf_initialized; #ifdef CONFIG_DYNAMIC_PLUGINS void *dec_handle; @@ -119,25 +130,23 @@ typedef struct { void* ImageDesc; // for quicktime codecs } sh_video_t; -typedef struct { +typedef struct sh_sub { SH_COMMON int sid; char type; // t = text, v = VobSub, a = SSA/ASS unsigned char* extradata; // extra header data passed from demuxer int extradata_len; -#ifdef CONFIG_ASS - ass_track_t* ass_track; // for SSA/ASS streams (type == 'a') -#endif + struct ass_track *ass_track; // for SSA/ASS streams (type == 'a') } sh_sub_t; // demuxer.c: #define new_sh_audio(d, i) new_sh_audio_aid(d, i, i) -sh_audio_t* new_sh_audio_aid(demuxer_t *demuxer,int id,int aid); +sh_audio_t* new_sh_audio_aid(struct demuxer *demuxer,int id,int aid); #define new_sh_video(d, i) new_sh_video_vid(d, i, i) -sh_video_t* new_sh_video_vid(demuxer_t *demuxer,int id,int vid); +sh_video_t* new_sh_video_vid(struct demuxer *demuxer,int id,int vid); #define new_sh_sub(d, i) new_sh_sub_sid(d, i, i) -sh_sub_t *new_sh_sub_sid(demuxer_t *demuxer, int id, int sid); -void free_sh_audio(demuxer_t *demuxer, int id); +sh_sub_t *new_sh_sub_sid(struct demuxer *demuxer, int id, int sid); +void free_sh_audio(struct demuxer *demuxer, int id); void free_sh_video(sh_video_t *sh); // video.c: |