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 1fd4ecf4783259fac4b4b33a704b82bf2aad34a3..996f0b356be979dbab7db3bfd2b8a9633be2abb9 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()); |
} |
@@ -177,9 +182,7 @@ void VideoCaptureDeviceFactoryMac::EnumerateDeviceNames(const base::Callback< |
callback.Run(device_names.Pass()); |
} else { |
DVLOG(1) << "Enumerating video capture devices using QTKit"; |
- base::PostTaskAndReplyWithResult( |
- ui_task_runner_.get(), |
- FROM_HERE, |
+ base::PostTaskAndReplyWithResult(ui_task_runner_.get(), FROM_HERE, |
base::Bind(&EnumerateDevicesUsingQTKit), |
base::Bind(&RunDevicesEnumeratedCallback, callback)); |
} |