Mercurial > mplayer.hg
diff libmpdemux/demuxer.c @ 25919:382672c7480a
Allow demuxers to choose a default value for correct_pts
author | reimar |
---|---|
date | Sun, 03 Feb 2008 12:14:29 +0000 |
parents | baf32110d3fc |
children | 7e4a2ab8b61c |
line wrap: on
line diff
--- a/libmpdemux/demuxer.c Sat Feb 02 17:22:07 2008 +0000 +++ b/libmpdemux/demuxer.c Sun Feb 03 12:14:29 2008 +0000 @@ -684,6 +684,7 @@ int extension_parsing=1; // 0=off 1=mixed (used only for unstable formats) int correct_pts=0; +int user_correct_pts=-1; /* NOTE : Several demuxers may be opened at the same time so @@ -869,6 +870,7 @@ demuxer_t* demux_open(stream_t *vs,int file_format,int audio_id,int video_id,int dvdsub_id,char* filename){ stream_t *as = NULL,*ss = NULL; demuxer_t *vd,*ad = NULL,*sd = NULL; + demuxer_t *res; int afmt =DEMUXER_TYPE_UNKNOWN,sfmt = DEMUXER_TYPE_UNKNOWN ; int audio_demuxer_type = 0, sub_demuxer_type = 0; int demuxer_force = 0, audio_demuxer_force = 0, @@ -935,13 +937,18 @@ } if(ad && sd) - return new_demuxers_demuxer(vd,ad,sd); + res = new_demuxers_demuxer(vd,ad,sd); else if(ad) - return new_demuxers_demuxer(vd,ad,vd); + res = new_demuxers_demuxer(vd,ad,vd); else if(sd) - return new_demuxers_demuxer(vd,vd,sd); + res = new_demuxers_demuxer(vd,vd,sd); else - return vd; + res = vd; + + correct_pts = user_correct_pts; + if (correct_pts < 0) + correct_pts = demux_control(res, DEMUXER_CTRL_CORRECT_PTS, NULL) == DEMUXER_CTRL_OK; + return res; }