summaryrefslogtreecommitdiffstats
path: root/libmpdemux/video.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-01-05 15:24:38 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-01-05 15:24:38 +0000
commit9e1add871ebacc3844c70fec93c086c141b51794 (patch)
treee15d827a16c52709542425f7e304d32f84df1121 /libmpdemux/video.c
parente5e820981f0103abc37cfca4a1b704ffaac48f69 (diff)
downloadmpv-9e1add871ebacc3844c70fec93c086c141b51794.tar.bz2
mpv-9e1add871ebacc3844c70fec93c086c141b51794.tar.xz
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
Diffstat (limited to 'libmpdemux/video.c')
-rw-r--r--libmpdemux/video.c10
1 files changed, 5 insertions, 5 deletions
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;
}