Index: media/video/capture/mac/video_capture_device_factory_mac.mm |
diff --git a/media/video/capture/mac/video_capture_device_factory_mac.mm b/media/video/capture/mac/video_capture_device_factory_mac.mm |
index f5a6a1cec44d3cc2877ee8b8d65e64f311dd3d11..3f758ca1e703470ae8e23f50ad7d323ad6829cfc 100644 |
--- a/media/video/capture/mac/video_capture_device_factory_mac.mm |
+++ b/media/video/capture/mac/video_capture_device_factory_mac.mm |
@@ -98,11 +98,16 @@ scoped_ptr<VideoCaptureDevice> VideoCaptureDeviceFactoryMac::Create( |
return scoped_ptr<VideoCaptureDevice>(); |
} |
- scoped_ptr<VideoCaptureDeviceMac> capture_device( |
- new VideoCaptureDeviceMac(device_name)); |
- if (!capture_device->Init(device_name.capture_api_type())) { |
- LOG(ERROR) << "Could not initialize VideoCaptureDevice."; |
- capture_device.reset(); |
+ scoped_ptr<VideoCaptureDevice> capture_device; |
+ if (device_name.capture_api_type() == VideoCaptureDevice::Name::DECKLINK) { |
+ capture_device.reset(new VideoCaptureDeviceDeckLinkMac(device_name)); |
+ } else { |
+ VideoCaptureDeviceMac* device = new VideoCaptureDeviceMac(device_name); |
+ capture_device.reset(device); |
+ if (device->Init(device_name.capture_api_type())) { |
+ LOG(ERROR) << "Could not initialize VideoCaptureDevice."; |
+ capture_device.reset(); |
+ } |
} |
return scoped_ptr<VideoCaptureDevice>(capture_device.Pass()); |
} |