mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
VideoCapture: remove decoder initialization when CAP_PROP_FORMAT== -1 (rawMode == true)
This commit is contained in:
@@ -476,6 +476,16 @@ static void ffmpeg_check_read_raw(VideoCapture& cap)
|
||||
EXPECT_EQ(CV_8UC1, data.type()) << "CV_8UC1 != " << typeToString(data.type());
|
||||
EXPECT_TRUE(data.rows == 1 || data.cols == 1) << data.size;
|
||||
EXPECT_EQ((size_t)37118, data.total());
|
||||
|
||||
#ifndef WIN32
|
||||
// 12 is the nearset key frame to frame 18
|
||||
EXPECT_TRUE(cap.set(CAP_PROP_POS_FRAMES, 18.));
|
||||
EXPECT_EQ(cap.get(CAP_PROP_POS_FRAMES), 12.);
|
||||
cap >> data;
|
||||
EXPECT_EQ(CV_8UC1, data.type()) << "CV_8UC1 != " << typeToString(data.type());
|
||||
EXPECT_TRUE(data.rows == 1 || data.cols == 1) << data.size;
|
||||
EXPECT_EQ((size_t)8726, data.total());
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(videoio_ffmpeg, ffmpeg_check_extra_data)
|
||||
@@ -506,6 +516,16 @@ TEST(videoio_ffmpeg, open_with_property)
|
||||
CAP_PROP_FORMAT, -1 // demux only
|
||||
}));
|
||||
|
||||
// confirm properties are returned without initializing AVCodecContext
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FORMAT), -1);
|
||||
EXPECT_EQ(static_cast<int>(cap.get(CAP_PROP_FOURCC)), fourccFromString("FMP4"));
|
||||
#ifndef WIN32
|
||||
EXPECT_EQ(cap.get(CAP_PROP_N_THREADS), 0.0);
|
||||
#endif
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FRAME_HEIGHT), 384.0);
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FRAME_WIDTH), 672.0);
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FRAME_COUNT), 125);
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FPS), 24.0);
|
||||
ffmpeg_check_read_raw(cap);
|
||||
}
|
||||
|
||||
@@ -519,6 +539,16 @@ TEST(videoio_ffmpeg, create_with_property)
|
||||
CAP_PROP_FORMAT, -1 // demux only
|
||||
});
|
||||
|
||||
// confirm properties are returned without initializing AVCodecContext
|
||||
EXPECT_TRUE(cap.get(CAP_PROP_FORMAT) == -1);
|
||||
EXPECT_EQ(static_cast<int>(cap.get(CAP_PROP_FOURCC)), fourccFromString("FMP4"));
|
||||
#ifndef WIN32
|
||||
EXPECT_EQ(cap.get(CAP_PROP_N_THREADS), 0.0);
|
||||
#endif
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FRAME_HEIGHT), 384.0);
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FRAME_WIDTH), 672.0);
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FRAME_COUNT), 125);
|
||||
EXPECT_EQ(cap.get(CAP_PROP_FPS), 24.0);
|
||||
ffmpeg_check_read_raw(cap);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user