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:
parent
e5e820981f
commit
9e1add871e
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user