From 9e1add871ebacc3844c70fec93c086c141b51794 Mon Sep 17 00:00:00 2001 From: reimar Date: Fri, 5 Jan 2007 15:24:38 +0000 Subject: Make ds_get_next_pts return MP_NOPTS_VALUE instead of -1 on error, -1 could be a perfectly valid pts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21827 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demuxer.c | 6 +++--- libmpdemux/video.c | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index b640594aa2..746452f5b2 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -567,15 +567,15 @@ double ds_get_next_pts(demux_stream_t *ds) if(demux->audio->packs>=MAX_PACKS || demux->audio->bytes>=MAX_PACK_BYTES){ mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_TooManyAudioInBuffer,demux->audio->packs,demux->audio->bytes); mp_msg(MSGT_DEMUXER,MSGL_HINT,MSGTR_MaybeNI); - return -1; + return MP_NOPTS_VALUE; } if(demux->video->packs>=MAX_PACKS || demux->video->bytes>=MAX_PACK_BYTES){ mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_TooManyVideoInBuffer,demux->video->packs,demux->video->bytes); mp_msg(MSGT_DEMUXER,MSGL_HINT,MSGTR_MaybeNI); - return -1; + return MP_NOPTS_VALUE; } if(!demux_fill_buffer(demux,ds)) - return -1; + return MP_NOPTS_VALUE; } return ds->first->pts; } diff --git a/libmpdemux/video.c b/libmpdemux/video.c index e1a7ae3fba..045db4fb6c 100644 --- a/libmpdemux/video.c +++ b/libmpdemux/video.c @@ -581,8 +581,8 @@ int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char** case DEMUXER_TYPE_VIVO: case DEMUXER_TYPE_OGG: case DEMUXER_TYPE_ASF: { - float next_pts = ds_get_next_pts(d_video); - float d= next_pts > 0 ? next_pts - d_video->pts : d_video->pts-pts1; + double next_pts = ds_get_next_pts(d_video); + double d= (next_pts != MP_NOPTS_VALUE) ? next_pts - d_video->pts : d_video->pts-pts1; if(d>=0){ if(d>0){ if((int)sh_video->fps==1000) @@ -599,8 +599,8 @@ int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char** break; case DEMUXER_TYPE_LAVF: if((int)sh_video->fps==1000 || (int)sh_video->fps<=1){ - float next_pts = ds_get_next_pts(d_video); - float d= next_pts > 0 ? next_pts - d_video->pts : d_video->pts-pts1; + double next_pts = ds_get_next_pts(d_video); + double d= (next_pts != MP_NOPTS_VALUE) ? next_pts - d_video->pts : d_video->pts-pts1; if(d>=0){ frame_time = d; } @@ -609,7 +609,7 @@ int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char** case DEMUXER_TYPE_REAL: { double next_pts = ds_get_next_pts(d_video); - float d = next_pts > 0 ? next_pts - d_video->pts : d_video->pts - pts1; + double d = (next_pts != MP_NOPTS_VALUE) ? next_pts - d_video->pts : d_video->pts - pts1; frame_time = (d >= 0 && pts1 > 0) ? d : 0.001; } -- cgit v1.2.3