diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp index 98913ed839..3e8099262d 100644 --- a/modules/videoio/src/cap_ffmpeg_impl.hpp +++ b/modules/videoio/src/cap_ffmpeg_impl.hpp @@ -1510,10 +1510,6 @@ bool CvCapture_FFMPEG::grabFrame() ret = got_picture ? 0 : -1; #endif if (ret >= 0) { - //picture_pts = picture->best_effort_timestamp; - if( picture_pts == AV_NOPTS_VALUE_ ) - picture_pts = picture->CV_FFMPEG_PTS_FIELD != AV_NOPTS_VALUE_ && picture->CV_FFMPEG_PTS_FIELD != 0 ? picture->CV_FFMPEG_PTS_FIELD : picture->pkt_dts; - valid = true; } else if (ret == AVERROR(EAGAIN)) { continue; @@ -1526,8 +1522,11 @@ bool CvCapture_FFMPEG::grabFrame() } } - if (valid) + if (valid) { + if( picture_pts == AV_NOPTS_VALUE_ ) + picture_pts = picture->CV_FFMPEG_PTS_FIELD != AV_NOPTS_VALUE_ && picture->CV_FFMPEG_PTS_FIELD != 0 ? picture->CV_FFMPEG_PTS_FIELD : picture->pkt_dts; frame_number++; + } if (!rawMode && valid && first_frame_number < 0) first_frame_number = dts_to_frame_number(picture_pts);