Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Unified Diff: media/video/capture/mac/video_capture_device_factory_mac.mm

Issue 518073002: Mac VideoCapture: Support for Blackmagic DeckLink device & capabilities enumeration, using SDK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rsesek@ and dalecurtis@ comments. Added missing ScopedDeckLinkPtr::Release(). Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 f0efe6b760b534880623738f832b8da4934720c7..f5a6a1cec44d3cc2877ee8b8d65e64f311dd3d11 100644
--- a/media/video/capture/mac/video_capture_device_factory_mac.mm
+++ b/media/video/capture/mac/video_capture_device_factory_mac.mm
@@ -13,6 +13,7 @@
#import "media/video/capture/mac/avfoundation_glue.h"
#include "media/video/capture/mac/video_capture_device_mac.h"
#import "media/video/capture/mac/video_capture_device_avfoundation_mac.h"
+#import "media/video/capture/mac/video_capture_device_decklink_mac.h"
#import "media/video/capture/mac/video_capture_device_qtkit_mac.h"
namespace media {
@@ -157,6 +158,9 @@ void VideoCaptureDeviceFactoryMac::GetDeviceNames(
}
}
}
+
+ // Also retrieve Blackmagic devices, if present, via DeckLink SDK API.
+ VideoCaptureDeviceDeckLinkMac::EnumerateDevices(device_names);
} else {
// We should not enumerate QTKit devices in Device Thread;
NOTREACHED();
@@ -183,11 +187,13 @@ void VideoCaptureDeviceFactoryMac::GetDeviceSupportedFormats(
const VideoCaptureDevice::Name& device,
VideoCaptureFormats* supported_formats) {
DCHECK(thread_checker_.CalledOnValidThread());
- if (device.capture_api_type() == VideoCaptureDevice::Name::AVFOUNDATION) {
+ switch (device.capture_api_type()) {
+ case VideoCaptureDevice::Name::AVFOUNDATION:
DVLOG(1) << "Enumerating video capture capabilities, AVFoundation";
[VideoCaptureDeviceAVFoundation getDevice:device
supportedFormats:supported_formats];
- } else {
+ break;
+ case VideoCaptureDevice::Name::QTKIT:
// Blacklisted cameras provide their own supported format(s), otherwise no
// such information is provided for QTKit.
if (device.is_blacklisted()) {
@@ -203,6 +209,14 @@ void VideoCaptureDeviceFactoryMac::GetDeviceSupportedFormats(
}
}
}
+ break;
+ case VideoCaptureDevice::Name::DECKLINK:
+ DVLOG(1) << "Enumerating video capture capabilities, Blackmagic";
+ VideoCaptureDeviceDeckLinkMac::EnumerateDeviceCapabilities(
+ device, supported_formats);
+ break;
+ default:
+ NOTREACHED();
}
}

Powered by Google App Engine
This is Rietveld 408576698