1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-03 04:37:54 +00:00

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
This commit is contained in:
reimar 2007-01-05 15:24:38 +00:00
parent e5e820981f
commit 9e1add871e
2 changed files with 8 additions and 8 deletions

View File

@ -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;
}

View File

@ -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;
}