[Mplayerxp-cvslog] CVS: mplayerxp/mplayerxp/libmpdemux demuxer_r.c,1.16,1.17 video.c,1.21,1.22
Brought to you by:
olov
From: Nick K. <nic...@us...> - 2003-05-08 07:34:43
|
Update of /cvsroot/mplayerxp/mplayerxp/mplayerxp/libmpdemux In directory sc8-pr-cvs1:/tmp/cvs-serv13242 Modified Files: demuxer_r.c video.c Log Message: enable pts correction for all kinds of mpegs by default. TODO: remove DEMUXER_TYPE_* Index: demuxer_r.c =================================================================== RCS file: /cvsroot/mplayerxp/mplayerxp/mplayerxp/libmpdemux/demuxer_r.c,v retrieving revision 1.16 retrieving revision 1.17 diff -p -u -d -r1.16 -r1.17 --- demuxer_r.c 24 Apr 2003 05:43:11 -0000 1.16 +++ demuxer_r.c 8 May 2003 07:34:41 -0000 1.17 @@ -18,6 +18,7 @@ extern double min_demux_time_usage; extern int benchmark; extern float initial_audio_pts; extern int av_force_pts_fix; +extern int av_sync_pts; static float get_ds_stream_pts(demux_stream_t *ds,int nbytes) { @@ -27,10 +28,16 @@ static float get_ds_stream_pts(demux_str MSG_DBG2("initial_apts from: stream_pts=%f pts_bytes=%u got_bytes=%u i_bps=%u\n" ,ds->pts,ds_tell_pts(ds),nbytes,((sh_audio_t*)ds->demuxer->audio->sh)->i_bps); /* FIXUP AUDIO PTS*/ - if( demuxer->stream->type == STREAMTYPE_DVDNAV || + if((demuxer->stream->type == STREAMTYPE_DVDNAV || demuxer->stream->type == STREAMTYPE_DVDPLAY || demuxer->stream->type == STREAMTYPE_DVD || - av_force_pts_fix ) + demuxer->file_format == DEMUXER_TYPE_MPEG_ES || + demuxer->file_format == DEMUXER_TYPE_MPEG4_ES || + demuxer->file_format == DEMUXER_TYPE_H264_ES || + demuxer->file_format == DEMUXER_TYPE_MPEG_PS || + demuxer->file_format == DEMUXER_TYPE_MPEG_TS || + av_force_pts_fix) && + av_sync_pts) { if(ds->pts_flags && ds->pts < 1.0 && ds->prev_pts > 2.0) { ds->pts_corr=ds->prev_pts; ds->pts_flags=0; MSG_V("correct audio %f pts as %f\n",ds->pts,ds->pts_corr); } if(ds->pts>1.0) ds->pts_flags=1; Index: video.c =================================================================== RCS file: /cvsroot/mplayerxp/mplayerxp/mplayerxp/libmpdemux/video.c,v retrieving revision 1.21 retrieving revision 1.22 diff -p -u -d -r1.21 -r1.22 --- video.c 24 Apr 2003 05:43:11 -0000 1.21 +++ video.c 8 May 2003 07:34:41 -0000 1.22 @@ -270,6 +270,7 @@ static void process_userdata(unsigned ch } extern int av_force_pts_fix; +extern int av_sync_pts; int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,float *v_pts,unsigned char** start,int force_fps){ demux_stream_t *d_video=sh_video->ds; demuxer_t *demuxer=d_video->demuxer; @@ -407,10 +408,16 @@ int video_read_frame(sh_video_t* sh_vide demuxer->file_format==DEMUXER_TYPE_MPEG_ES || demuxer->file_format==DEMUXER_TYPE_MPEG_TS) d_video->pts+=frame_time; /* FIXUP VIDEO PTS*/ - if( demuxer->stream->type == STREAMTYPE_DVDNAV || + if((demuxer->stream->type == STREAMTYPE_DVDNAV || demuxer->stream->type == STREAMTYPE_DVDPLAY || demuxer->stream->type == STREAMTYPE_DVD || - av_force_pts_fix ) + demuxer->file_format == DEMUXER_TYPE_MPEG_ES || + demuxer->file_format == DEMUXER_TYPE_MPEG4_ES || + demuxer->file_format == DEMUXER_TYPE_H264_ES || + demuxer->file_format == DEMUXER_TYPE_MPEG_PS || + demuxer->file_format == DEMUXER_TYPE_MPEG_TS || + av_force_pts_fix) && + av_sync_pts) { if(d_video->pts_flags && d_video->pts < 1.0 && d_video->prev_pts > 2.0) { d_video->pts_corr=d_video->prev_pts; d_video->pts_flags=0; MSG_V("correcting video %f pts as %f\n",d_video->pts,d_video->pts_corr); } if(d_video->pts>1.0) d_video->pts_flags=1; |