Extended video timestamp test to cover fix for the issue #22141.
This commit is contained in:
parent
44c2519d75
commit
48e50a7674
@ -215,8 +215,28 @@ public:
|
||||
throw SkipTestException(cv::String("Backend ") + cv::videoio_registry::getBackendName(apiPref) +
|
||||
cv::String(" can't open the video: ") + video_file);
|
||||
|
||||
int frame_count = (int)cap.get(CAP_PROP_FRAME_COUNT);
|
||||
|
||||
// HACK: Video consists of 125 frames, but cv::VideoCapture with FFmpeg reports only 122 frames for mpg video.
|
||||
// mpg file reports 5.08 sec * 24 fps => property returns 122 frames,but actual number of frames returned is 125
|
||||
// HACK: CAP_PROP_FRAME_COUNT is not supported for vmw + MSMF. Just force check for all 125 frames
|
||||
if (ext == "mpg")
|
||||
EXPECT_GT(frame_count, 121);
|
||||
else if ((ext == "wmv") && (apiPref == CAP_MSMF))
|
||||
frame_count = 125;
|
||||
else
|
||||
EXPECT_EQ(frame_count, 125);
|
||||
Mat img;
|
||||
for(int i = 0; i < 10; i++)
|
||||
|
||||
#ifdef _WIN32 // handle old FFmpeg wrapper on Windows till rebuild
|
||||
frame_count = 10;
|
||||
#else
|
||||
// HACK: FFmpeg reports picture_pts = AV_NOPTS_VALUE_ for the last frame for AVI container by some reason
|
||||
if ((ext == "avi") && (apiPref == CAP_FFMPEG))
|
||||
frame_count--;
|
||||
#endif
|
||||
|
||||
for (int i = 0; i < frame_count; i++)
|
||||
{
|
||||
double timestamp = 0;
|
||||
ASSERT_NO_THROW(cap >> img);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user