Chromium Code Reviews| Index: media/capture/video/fake_video_capture_device_unittest.cc |
| diff --git a/media/capture/video/fake_video_capture_device_unittest.cc b/media/capture/video/fake_video_capture_device_unittest.cc |
| index 5a6974caa8c4d863d71119f426a5920221e60cc9..1756ce33caf2e83e81087df9e84b399a534cdc98 100644 |
| --- a/media/capture/video/fake_video_capture_device_unittest.cc |
| +++ b/media/capture/video/fake_video_capture_device_unittest.cc |
| @@ -266,13 +266,22 @@ class FakeVideoCaptureDeviceBase : public ::testing::Test { |
| class FakeVideoCaptureDeviceTest |
| : public FakeVideoCaptureDeviceBase, |
| public ::testing::WithParamInterface< |
| - ::testing::tuple<VideoPixelFormat, |
| + ::testing::tuple<FakeVideoCaptureDeviceMaker::PixelFormat, |
| FakeVideoCaptureDeviceMaker::DeliveryMode, |
| float>> {}; |
| // Tests that a frame is delivered with the expected settings. |
| // Sweeps through a fixed set of requested/expected resolutions. |
| TEST_P(FakeVideoCaptureDeviceTest, CaptureUsing) { |
| + if (testing::get<1>(GetParam()) == |
| + FakeVideoCaptureDeviceMaker::DeliveryMode:: |
| + USE_CLIENT_PROVIDED_BUFFERS && |
| + testing::get<0>(GetParam()) == |
| + FakeVideoCaptureDeviceMaker::PixelFormat::MJPEG) { |
| + // Unsupported case |
| + return; |
| + } |
| + |
| const std::unique_ptr<VideoCaptureDeviceDescriptors> descriptors( |
| EnumerateDevices()); |
| ASSERT_FALSE(descriptors->empty()); |
| @@ -303,7 +312,8 @@ TEST_P(FakeVideoCaptureDeviceTest, CaptureUsing) { |
| WaitForCapturedFrame(); |
| EXPECT_EQ(resolution.second.width(), last_format().frame_size.width()); |
| EXPECT_EQ(resolution.second.height(), last_format().frame_size.height()); |
| - EXPECT_EQ(last_format().pixel_format, testing::get<0>(GetParam())); |
| + EXPECT_EQ(last_format().pixel_format, |
| + static_cast<VideoPixelFormat>(testing::get<0>(GetParam()))); |
| EXPECT_EQ(last_format().frame_rate, testing::get<2>(GetParam())); |
| device->StopAndDeAllocate(); |
| } |
| @@ -312,7 +322,9 @@ TEST_P(FakeVideoCaptureDeviceTest, CaptureUsing) { |
| INSTANTIATE_TEST_CASE_P( |
| , |
| FakeVideoCaptureDeviceTest, |
| - Combine(Values(PIXEL_FORMAT_I420, PIXEL_FORMAT_Y16, PIXEL_FORMAT_ARGB), |
| + Combine(Values(FakeVideoCaptureDeviceMaker::PixelFormat::I420, |
| + FakeVideoCaptureDeviceMaker::PixelFormat::Y16, |
| + FakeVideoCaptureDeviceMaker::PixelFormat::MJPEG), |
| Values(FakeVideoCaptureDeviceMaker::DeliveryMode:: |
| USE_DEVICE_INTERNAL_BUFFERS, |
| FakeVideoCaptureDeviceMaker::DeliveryMode:: |
| @@ -321,19 +333,22 @@ INSTANTIATE_TEST_CASE_P( |
| TEST_F(FakeVideoCaptureDeviceTest, GetDeviceSupportedFormats) { |
| base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| - switches::kUseFakeDeviceForMediaStream, "device-count=3"); |
| + switches::kUseFakeDeviceForMediaStream, "device-count=4"); |
| std::unique_ptr<VideoCaptureDeviceDescriptors> descriptors( |
| EnumerateDevices()); |
| - ASSERT_EQ(3u, descriptors->size()); |
| + ASSERT_EQ(4u, descriptors->size()); |
| + VideoPixelFormat expected_format_by_device_index[] = { |
|
mcasas
2017/02/23 21:46:18
nit: const
|
| + PIXEL_FORMAT_I420, PIXEL_FORMAT_Y16, PIXEL_FORMAT_MJPEG, |
| + PIXEL_FORMAT_I420}; |
| + int device_index = 0; |
| for (const auto& descriptors_iterator : *descriptors) { |
| VideoCaptureFormats supported_formats; |
| video_capture_device_factory_->GetSupportedFormats(descriptors_iterator, |
| &supported_formats); |
| ASSERT_EQ(5u, supported_formats.size()); |
| - const std::string device_id = descriptors_iterator.device_id; |
| VideoPixelFormat expected_format = |
| - (device_id == "/dev/video1") ? PIXEL_FORMAT_Y16 : PIXEL_FORMAT_I420; |
| + expected_format_by_device_index[device_index]; |
| EXPECT_EQ(96, supported_formats[0].frame_size.width()); |
| EXPECT_EQ(96, supported_formats[0].frame_size.height()); |
| EXPECT_EQ(expected_format, supported_formats[0].pixel_format); |
| @@ -354,6 +369,7 @@ TEST_F(FakeVideoCaptureDeviceTest, GetDeviceSupportedFormats) { |
| EXPECT_EQ(1080, supported_formats[4].frame_size.height()); |
| EXPECT_EQ(expected_format, supported_formats[4].pixel_format); |
| EXPECT_GE(supported_formats[4].frame_rate, 20.0); |
| + device_index++; |
| } |
| } |
| @@ -375,7 +391,7 @@ TEST_F(FakeVideoCaptureDeviceTest, GetCameraCalibration) { |
| TEST_F(FakeVideoCaptureDeviceTest, GetAndSetCapabilities) { |
| auto device = FakeVideoCaptureDeviceMaker::MakeInstance( |
| - PIXEL_FORMAT_I420, |
| + FakeVideoCaptureDeviceMaker::PixelFormat::I420, |
| FakeVideoCaptureDeviceMaker::DeliveryMode::USE_DEVICE_INTERNAL_BUFFERS, |
| 30.0); |
| ASSERT_TRUE(device); |
| @@ -486,7 +502,7 @@ TEST_F(FakeVideoCaptureDeviceTest, GetAndSetCapabilities) { |
| TEST_F(FakeVideoCaptureDeviceTest, TakePhoto) { |
| auto device = FakeVideoCaptureDeviceMaker::MakeInstance( |
| - PIXEL_FORMAT_I420, |
| + FakeVideoCaptureDeviceMaker::PixelFormat::I420, |
| FakeVideoCaptureDeviceMaker::DeliveryMode::USE_DEVICE_INTERNAL_BUFFERS, |
| 30.0); |
| ASSERT_TRUE(device); |
| @@ -578,15 +594,17 @@ INSTANTIATE_TEST_CASE_P( |
| 60, |
| 1u, |
| {PIXEL_FORMAT_I420}}, |
| - CommandLineTestData{ |
| - "device-count=3", |
| - 20, |
| - 3u, |
| - {PIXEL_FORMAT_I420, PIXEL_FORMAT_Y16, PIXEL_FORMAT_I420}}, |
| - CommandLineTestData{ |
| - "device-count=3,ownership=client", |
| - 20, |
| - 3u, |
| - {PIXEL_FORMAT_I420, PIXEL_FORMAT_Y16, PIXEL_FORMAT_I420}}, |
| + CommandLineTestData{"device-count=4", |
| + 20, |
| + 4u, |
| + |
| + {PIXEL_FORMAT_I420, PIXEL_FORMAT_Y16, |
| + PIXEL_FORMAT_MJPEG, PIXEL_FORMAT_I420}}, |
| + CommandLineTestData{"device-count=4,ownership=client", |
| + 20, |
| + 4u, |
| + |
| + {PIXEL_FORMAT_I420, PIXEL_FORMAT_Y16, |
| + PIXEL_FORMAT_MJPEG, PIXEL_FORMAT_I420}}, |
| CommandLineTestData{"device-count=0", 20, 1u, {PIXEL_FORMAT_I420}})); |
| }; // namespace media |