Index: media/capture/video/video_capture_device_unittest.cc |
diff --git a/media/capture/video/video_capture_device_unittest.cc b/media/capture/video/video_capture_device_unittest.cc |
index 991e9a5fa855b3002f0693eb4dddbda44adaf627..a684a3b7e5b3e8c5bcee5af06b32e0fe8823709f 100644 |
--- a/media/capture/video/video_capture_device_unittest.cc |
+++ b/media/capture/video/video_capture_device_unittest.cc |
@@ -168,12 +168,12 @@ class MockImageCaptureClient : public base::RefCounted<MockImageCaptureClient> { |
class DeviceEnumerationListener |
: public base::RefCounted<DeviceEnumerationListener> { |
public: |
- MOCK_METHOD1(OnEnumeratedDevicesCallbackPtr, |
- void(VideoCaptureDevice::Names* names)); |
+ MOCK_METHOD1(OnEnumerateDeviceDescriptorsCallbackPtr, |
+ void(VideoCaptureDeviceDescriptors* device_descriptors)); |
// GMock doesn't support move-only arguments, so we use this forward method. |
- void OnEnumeratedDevicesCallback( |
- std::unique_ptr<VideoCaptureDevice::Names> names) { |
- OnEnumeratedDevicesCallbackPtr(names.release()); |
+ void OnEnumerateDeviceDescriptorsCallback( |
+ std::unique_ptr<VideoCaptureDeviceDescriptors> device_descriptors) { |
+ OnEnumerateDeviceDescriptorsCallbackPtr(device_descriptors.release()); |
} |
private: |
@@ -226,50 +226,51 @@ class VideoCaptureDeviceTest : public testing::TestWithParam<gfx::Size> { |
run_loop_->Run(); |
} |
- std::unique_ptr<VideoCaptureDevice::Names> EnumerateDevices() { |
- VideoCaptureDevice::Names* names; |
+ std::unique_ptr<VideoCaptureDeviceDescriptors> EnumerateDeviceDescriptors() { |
+ VideoCaptureDeviceDescriptors* device_descriptors; |
EXPECT_CALL(*device_enumeration_listener_.get(), |
- OnEnumeratedDevicesCallbackPtr(_)).WillOnce(SaveArg<0>(&names)); |
+ OnEnumerateDeviceDescriptorsCallbackPtr(_)) |
+ .WillOnce(SaveArg<0>(&device_descriptors)); |
- video_capture_device_factory_->EnumerateDeviceNames( |
- base::Bind(&DeviceEnumerationListener::OnEnumeratedDevicesCallback, |
- device_enumeration_listener_)); |
+ video_capture_device_factory_->EnumerateDeviceDescriptors(base::Bind( |
+ &DeviceEnumerationListener::OnEnumerateDeviceDescriptorsCallback, |
+ device_enumeration_listener_)); |
base::RunLoop().RunUntilIdle(); |
- return std::unique_ptr<VideoCaptureDevice::Names>(names); |
+ return std::unique_ptr<VideoCaptureDeviceDescriptors>(device_descriptors); |
} |
const VideoCaptureFormat& last_format() const { return last_format_; } |
- std::unique_ptr<VideoCaptureDevice::Name> |
- GetFirstDeviceNameSupportingPixelFormat( |
+ std::unique_ptr<VideoCaptureDeviceDescriptor> |
+ GetFirstDeviceDescriptorSupportingPixelFormat( |
const VideoPixelFormat& pixel_format) { |
- names_ = EnumerateDevices(); |
- if (names_->empty()) { |
+ device_descriptors_ = EnumerateDeviceDescriptors(); |
+ if (device_descriptors_->empty()) { |
DVLOG(1) << "No camera available."; |
- return std::unique_ptr<VideoCaptureDevice::Name>(); |
+ return std::unique_ptr<VideoCaptureDeviceDescriptor>(); |
} |
- for (const auto& names_iterator : *names_) { |
+ for (const auto& descriptors_iterator : *device_descriptors_) { |
VideoCaptureFormats supported_formats; |
- video_capture_device_factory_->GetDeviceSupportedFormats( |
- names_iterator, &supported_formats); |
+ video_capture_device_factory_->GetSupportedFormats(descriptors_iterator, |
+ &supported_formats); |
for (const auto& formats_iterator : supported_formats) { |
if (formats_iterator.pixel_format == pixel_format) { |
- return std::unique_ptr<VideoCaptureDevice::Name>( |
- new VideoCaptureDevice::Name(names_iterator)); |
+ return std::unique_ptr<VideoCaptureDeviceDescriptor>( |
+ new VideoCaptureDeviceDescriptor(descriptors_iterator)); |
} |
} |
} |
DVLOG_IF(1, pixel_format != PIXEL_FORMAT_MAX) |
<< "No camera can capture the" |
<< " format: " << VideoPixelFormatToString(pixel_format); |
- return std::unique_ptr<VideoCaptureDevice::Name>(); |
+ return std::unique_ptr<VideoCaptureDeviceDescriptor>(); |
} |
- bool IsCaptureSizeSupported(const VideoCaptureDevice::Name& device, |
+ bool IsCaptureSizeSupported(const VideoCaptureDeviceDescriptor& device, |
const gfx::Size& size) { |
VideoCaptureFormats supported_formats; |
- video_capture_device_factory_->GetDeviceSupportedFormats( |
- device, &supported_formats); |
+ video_capture_device_factory_->GetSupportedFormats(device, |
+ &supported_formats); |
const auto it = std::find_if( |
supported_formats.begin(), supported_formats.end(), |
[&size](VideoCaptureFormat const& f) { return f.frame_size == size; }); |
@@ -283,7 +284,7 @@ class VideoCaptureDeviceTest : public testing::TestWithParam<gfx::Size> { |
#if defined(OS_WIN) |
base::win::ScopedCOMInitializer initialize_com_; |
#endif |
- std::unique_ptr<VideoCaptureDevice::Names> names_; |
+ std::unique_ptr<VideoCaptureDeviceDescriptors> device_descriptors_; |
const std::unique_ptr<base::MessageLoop> loop_; |
std::unique_ptr<base::RunLoop> run_loop_; |
std::unique_ptr<MockVideoCaptureClient> video_capture_client_; |
@@ -302,20 +303,19 @@ class VideoCaptureDeviceTest : public testing::TestWithParam<gfx::Size> { |
#endif |
TEST_F(VideoCaptureDeviceTest, MAYBE_OpenInvalidDevice) { |
+ VideoCaptureDeviceDescriptor invalid_descriptor; |
+ invalid_descriptor.device_id = "jibberish"; |
+ invalid_descriptor.display_name = "jibberish"; |
#if defined(OS_WIN) |
- VideoCaptureDevice::Name::CaptureApiType api_type = |
+ invalid_descriptor.capture_api = |
VideoCaptureDeviceFactoryWin::PlatformSupportsMediaFoundation() |
- ? VideoCaptureDevice::Name::MEDIA_FOUNDATION |
- : VideoCaptureDevice::Name::DIRECT_SHOW; |
- VideoCaptureDevice::Name device_name("jibberish", "jibberish", api_type); |
+ ? VideoCaptureApi::WIN_MEDIA_FOUNDATION |
+ : VideoCaptureApi::WIN_DIRECT_SHOW; |
#elif defined(OS_MACOSX) |
- VideoCaptureDevice::Name device_name("jibberish", "jibberish", |
- VideoCaptureDevice::Name::AVFOUNDATION); |
-#else |
- VideoCaptureDevice::Name device_name("jibberish", "jibberish"); |
+ invalid_descriptor.capture_api = VideoCaptureApi::MACOSX_AVFOUNDATION; |
#endif |
std::unique_ptr<VideoCaptureDevice> device = |
- video_capture_device_factory_->Create(device_name); |
+ video_capture_device_factory_->CreateDevice(invalid_descriptor); |
#if !defined(OS_MACOSX) |
EXPECT_TRUE(device == NULL); |
@@ -334,22 +334,23 @@ TEST_F(VideoCaptureDeviceTest, MAYBE_OpenInvalidDevice) { |
} |
TEST_P(VideoCaptureDeviceTest, CaptureWithSize) { |
- names_ = EnumerateDevices(); |
- if (names_->empty()) { |
+ device_descriptors_ = EnumerateDeviceDescriptors(); |
+ if (device_descriptors_->empty()) { |
VLOG(1) << "No camera available. Exiting test."; |
return; |
} |
const gfx::Size& size = GetParam(); |
- if (!IsCaptureSizeSupported(names_->front(), size)) |
+ if (!IsCaptureSizeSupported(device_descriptors_->front(), size)) |
return; |
const int width = size.width(); |
const int height = size.height(); |
std::unique_ptr<VideoCaptureDevice> device( |
- video_capture_device_factory_->Create(names_->front())); |
+ video_capture_device_factory_->CreateDevice( |
+ device_descriptors_->front())); |
ASSERT_TRUE(device); |
- DVLOG(1) << names_->front().id(); |
+ DVLOG(1) << device_descriptors_->front().device_id; |
EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); |
@@ -376,13 +377,14 @@ INSTANTIATE_TEST_CASE_P(VideoCaptureDeviceTests, |
#endif |
TEST_F(VideoCaptureDeviceTest, MAYBE_AllocateBadSize) { |
- names_ = EnumerateDevices(); |
- if (names_->empty()) { |
+ device_descriptors_ = EnumerateDeviceDescriptors(); |
+ if (device_descriptors_->empty()) { |
VLOG(1) << "No camera available. Exiting test."; |
return; |
} |
std::unique_ptr<VideoCaptureDevice> device( |
- video_capture_device_factory_->Create(names_->front())); |
+ video_capture_device_factory_->CreateDevice( |
+ device_descriptors_->front())); |
ASSERT_TRUE(device); |
EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); |
@@ -403,8 +405,8 @@ TEST_F(VideoCaptureDeviceTest, MAYBE_AllocateBadSize) { |
// Cause hangs on Windows, Linux. Fails Android. http://crbug.com/417824 |
TEST_F(VideoCaptureDeviceTest, DISABLED_ReAllocateCamera) { |
- names_ = EnumerateDevices(); |
- if (names_->empty()) { |
+ device_descriptors_ = EnumerateDeviceDescriptors(); |
+ if (device_descriptors_->empty()) { |
VLOG(1) << "No camera available. Exiting test."; |
return; |
} |
@@ -413,7 +415,8 @@ TEST_F(VideoCaptureDeviceTest, DISABLED_ReAllocateCamera) { |
for (int i = 0; i <= 5; i++) { |
ResetWithNewClient(); |
std::unique_ptr<VideoCaptureDevice> device( |
- video_capture_device_factory_->Create(names_->front())); |
+ video_capture_device_factory_->CreateDevice( |
+ device_descriptors_->front())); |
gfx::Size resolution; |
if (i % 2) { |
resolution = gfx::Size(640, 480); |
@@ -436,7 +439,8 @@ TEST_F(VideoCaptureDeviceTest, DISABLED_ReAllocateCamera) { |
ResetWithNewClient(); |
std::unique_ptr<VideoCaptureDevice> device( |
- video_capture_device_factory_->Create(names_->front())); |
+ video_capture_device_factory_->CreateDevice( |
+ device_descriptors_->front())); |
device->AllocateAndStart(capture_params, std::move(video_capture_client_)); |
WaitForCapturedFrame(); |
@@ -447,13 +451,14 @@ TEST_F(VideoCaptureDeviceTest, DISABLED_ReAllocateCamera) { |
} |
TEST_F(VideoCaptureDeviceTest, DeAllocateCameraWhileRunning) { |
- names_ = EnumerateDevices(); |
- if (names_->empty()) { |
+ device_descriptors_ = EnumerateDeviceDescriptors(); |
+ if (device_descriptors_->empty()) { |
VLOG(1) << "No camera available. Exiting test."; |
return; |
} |
std::unique_ptr<VideoCaptureDevice> device( |
- video_capture_device_factory_->Create(names_->front())); |
+ video_capture_device_factory_->CreateDevice( |
+ device_descriptors_->front())); |
ASSERT_TRUE(device); |
EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); |
@@ -473,9 +478,9 @@ TEST_F(VideoCaptureDeviceTest, DeAllocateCameraWhileRunning) { |
// Start the camera in 720p to capture MJPEG instead of a raw format. |
TEST_F(VideoCaptureDeviceTest, MAYBE_CaptureMjpeg) { |
- std::unique_ptr<VideoCaptureDevice::Name> name = |
- GetFirstDeviceNameSupportingPixelFormat(PIXEL_FORMAT_MJPEG); |
- if (!name) { |
+ std::unique_ptr<VideoCaptureDeviceDescriptor> device_descriptor = |
+ GetFirstDeviceDescriptorSupportingPixelFormat(PIXEL_FORMAT_MJPEG); |
+ if (!device_descriptor) { |
VLOG(1) << "No camera supports MJPEG format. Exiting test."; |
return; |
} |
@@ -488,7 +493,7 @@ TEST_F(VideoCaptureDeviceTest, MAYBE_CaptureMjpeg) { |
} |
#endif |
std::unique_ptr<VideoCaptureDevice> device( |
- video_capture_device_factory_->Create(*name)); |
+ video_capture_device_factory_->CreateDevice(*device_descriptor)); |
ASSERT_TRUE(device); |
EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); |
@@ -511,22 +516,23 @@ TEST_F(VideoCaptureDeviceTest, MAYBE_CaptureMjpeg) { |
TEST_F(VideoCaptureDeviceTest, GetDeviceSupportedFormats) { |
// Use PIXEL_FORMAT_MAX to iterate all device names for testing |
// GetDeviceSupportedFormats(). |
- std::unique_ptr<VideoCaptureDevice::Name> name = |
- GetFirstDeviceNameSupportingPixelFormat(PIXEL_FORMAT_MAX); |
+ std::unique_ptr<VideoCaptureDeviceDescriptor> device_descriptor = |
+ GetFirstDeviceDescriptorSupportingPixelFormat(PIXEL_FORMAT_MAX); |
// Verify no camera returned for PIXEL_FORMAT_MAX. Nothing else to test here |
// since we cannot forecast the hardware capabilities. |
- ASSERT_FALSE(name); |
+ ASSERT_FALSE(device_descriptor); |
} |
// Start the camera and take a photo. |
TEST_F(VideoCaptureDeviceTest, MAYBE_TakePhoto) { |
- names_ = EnumerateDevices(); |
- if (names_->empty()) { |
+ device_descriptors_ = EnumerateDeviceDescriptors(); |
+ if (device_descriptors_->empty()) { |
VLOG(1) << "No camera available. Exiting test."; |
return; |
} |
std::unique_ptr<VideoCaptureDevice> device( |
- video_capture_device_factory_->Create(names_->front())); |
+ video_capture_device_factory_->CreateDevice( |
+ device_descriptors_->front())); |
ASSERT_TRUE(device); |
EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); |