|
|
@ -1510,10 +1510,6 @@ bool CvCapture_FFMPEG::grabFrame() |
|
|
|
ret = got_picture ? 0 : -1; |
|
|
|
ret = got_picture ? 0 : -1; |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
if (ret >= 0) { |
|
|
|
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; |
|
|
|
valid = true; |
|
|
|
} else if (ret == AVERROR(EAGAIN)) { |
|
|
|
} else if (ret == AVERROR(EAGAIN)) { |
|
|
|
continue; |
|
|
|
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++; |
|
|
|
frame_number++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!rawMode && valid && first_frame_number < 0) |
|
|
|
if (!rawMode && valid && first_frame_number < 0) |
|
|
|
first_frame_number = dts_to_frame_number(picture_pts); |
|
|
|
first_frame_number = dts_to_frame_number(picture_pts); |
|
|
|