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

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

Issue 1815983003: Remove deprecated QTKit Video Capture Support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 9 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/capture/video/mac/video_capture_device_factory_mac.mm
diff --git a/media/capture/video/mac/video_capture_device_factory_mac.mm b/media/capture/video/mac/video_capture_device_factory_mac.mm
index 5d92f7eb12c9b2c6d0d5616090d8e97d54ab9ea7..682cc07beccde996d38502c2f06ecf3d413c6b3e 100644
--- a/media/capture/video/mac/video_capture_device_factory_mac.mm
+++ b/media/capture/video/mac/video_capture_device_factory_mac.mm
@@ -19,15 +19,11 @@
#import "media/capture/video/mac/video_capture_device_avfoundation_mac.h"
#import "media/capture/video/mac/video_capture_device_decklink_mac.h"
#include "media/capture/video/mac/video_capture_device_mac.h"
-#import "media/capture/video/mac/video_capture_device_qtkit_mac.h"
namespace media {
-// In QTKit API, some devices are known to crash if VGA is requested, for them
-// HD is the only supported resolution (see http://crbug.com/396812). In the
-// AVfoundation case, we skip enumerating them altogether. These devices are
-// identified by a characteristic trailing substring of uniqueId. At the moment
-// these are just Blackmagic devices.
+// Blacklisted devices are identified by a characteristic trailing substring of
+// uniqueId. At the moment these are just Blackmagic devices.
const struct NameAndVid {
const char* unique_id_signature;
const int capture_width;
@@ -49,45 +45,7 @@ static bool IsDeviceBlacklisted(const VideoCaptureDevice::Name& name) {
return is_device_blacklisted;
}
-static scoped_ptr<media::VideoCaptureDevice::Names>
-EnumerateDevicesUsingQTKit() {
- // TODO(erikchen): Remove ScopedTracker below once http://crbug.com/458397 is
- // fixed.
- tracked_objects::ScopedTracker tracking_profile(
- FROM_HERE_WITH_EXPLICIT_FUNCTION(
- "458397 media::EnumerateDevicesUsingQTKit"));
-
- scoped_ptr<VideoCaptureDevice::Names> device_names(
- new VideoCaptureDevice::Names());
- NSMutableDictionary* capture_devices =
- [[[NSMutableDictionary alloc] init] autorelease];
- [VideoCaptureDeviceQTKit getDeviceNames:capture_devices];
- for (NSString* key in capture_devices) {
- VideoCaptureDevice::Name name(
- [[[capture_devices valueForKey:key] deviceName] UTF8String],
- [key UTF8String], VideoCaptureDevice::Name::QTKIT);
- if (IsDeviceBlacklisted(name))
- name.set_is_blacklisted(true);
- device_names->push_back(name);
- }
- return device_names;
-}
-
-static void RunDevicesEnumeratedCallback(
- const base::Callback<void(scoped_ptr<media::VideoCaptureDevice::Names>)>&
- callback,
- scoped_ptr<media::VideoCaptureDevice::Names> device_names) {
- // TODO(erikchen): Remove ScopedTracker below once http://crbug.com/458397 is
- // fixed.
- tracked_objects::ScopedTracker tracking_profile(
- FROM_HERE_WITH_EXPLICIT_FUNCTION(
- "458397 media::RunDevicesEnumeratedCallback"));
- callback.Run(std::move(device_names));
-}
-
-VideoCaptureDeviceFactoryMac::VideoCaptureDeviceFactoryMac(
- scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
- : ui_task_runner_(ui_task_runner) {
+VideoCaptureDeviceFactoryMac::VideoCaptureDeviceFactoryMac() {
thread_checker_.DetachFromThread();
}
@@ -124,50 +82,37 @@ void VideoCaptureDeviceFactoryMac::GetDeviceNames(
DCHECK(thread_checker_.CalledOnValidThread());
// Loop through all available devices and add to |device_names|.
NSDictionary* capture_devices;
- if (AVFoundationGlue::IsAVFoundationSupported()) {
- DVLOG(1) << "Enumerating video capture devices using AVFoundation";
- capture_devices = [VideoCaptureDeviceAVFoundation deviceNames];
- // Enumerate all devices found by AVFoundation, translate the info for each
- // to class Name and add it to |device_names|.
- for (NSString* key in capture_devices) {
- int transport_type = [[capture_devices valueForKey:key] transportType];
- // Transport types are defined for Audio devices and reused for video.
- VideoCaptureDevice::Name::TransportType device_transport_type =
- (transport_type == kIOAudioDeviceTransportTypeBuiltIn ||
- transport_type == kIOAudioDeviceTransportTypeUSB)
- ? VideoCaptureDevice::Name::USB_OR_BUILT_IN
- : VideoCaptureDevice::Name::OTHER_TRANSPORT;
- VideoCaptureDevice::Name name(
- [[[capture_devices valueForKey:key] deviceName] UTF8String],
- [key UTF8String], VideoCaptureDevice::Name::AVFOUNDATION,
- device_transport_type);
- if (IsDeviceBlacklisted(name))
- continue;
- device_names->push_back(name);
- }
- // 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();
+ DVLOG(1) << "Enumerating video capture devices using AVFoundation";
+ capture_devices = [VideoCaptureDeviceAVFoundation deviceNames];
+ // Enumerate all devices found by AVFoundation, translate the info for each
+ // to class Name and add it to |device_names|.
+ for (NSString* key in capture_devices) {
+ int transport_type = [[capture_devices valueForKey:key] transportType];
+ // Transport types are defined for Audio devices and reused for video.
+ VideoCaptureDevice::Name::TransportType device_transport_type =
+ (transport_type == kIOAudioDeviceTransportTypeBuiltIn ||
+ transport_type == kIOAudioDeviceTransportTypeUSB)
+ ? VideoCaptureDevice::Name::USB_OR_BUILT_IN
+ : VideoCaptureDevice::Name::OTHER_TRANSPORT;
+ VideoCaptureDevice::Name name(
+ [[[capture_devices valueForKey:key] deviceName] UTF8String],
+ [key UTF8String], VideoCaptureDevice::Name::AVFOUNDATION,
+ device_transport_type);
+ if (IsDeviceBlacklisted(name))
+ continue;
+ device_names->push_back(name);
}
+ // Also retrieve Blackmagic devices, if present, via DeckLink SDK API.
+ VideoCaptureDeviceDeckLinkMac::EnumerateDevices(device_names);
}
void VideoCaptureDeviceFactoryMac::EnumerateDeviceNames(const base::Callback<
void(scoped_ptr<media::VideoCaptureDevice::Names>)>& callback) {
DCHECK(thread_checker_.CalledOnValidThread());
- if (AVFoundationGlue::IsAVFoundationSupported()) {
- scoped_ptr<VideoCaptureDevice::Names> device_names(
- new VideoCaptureDevice::Names());
- GetDeviceNames(device_names.get());
- callback.Run(std::move(device_names));
- } else {
- DVLOG(1) << "Enumerating video capture devices using QTKit";
- base::PostTaskAndReplyWithResult(
- ui_task_runner_.get(), FROM_HERE,
- base::Bind(&EnumerateDevicesUsingQTKit),
- base::Bind(&RunDevicesEnumeratedCallback, callback));
- }
+ scoped_ptr<VideoCaptureDevice::Names> device_names(
+ new VideoCaptureDevice::Names());
+ GetDeviceNames(device_names.get());
+ callback.Run(std::move(device_names));
}
void VideoCaptureDeviceFactoryMac::GetDeviceSupportedFormats(
@@ -180,24 +125,6 @@ void VideoCaptureDeviceFactoryMac::GetDeviceSupportedFormats(
[VideoCaptureDeviceAVFoundation getDevice:device
supportedFormats:supported_formats];
break;
- case VideoCaptureDevice::Name::QTKIT:
- // Blacklisted cameras provide their own supported format(s), otherwise no
- // such information is provided for QTKit devices.
- if (device.is_blacklisted()) {
- for (size_t i = 0; i < arraysize(kBlacklistedCameras); ++i) {
- if (base::EndsWith(device.id(),
- kBlacklistedCameras[i].unique_id_signature,
- base::CompareCase::INSENSITIVE_ASCII)) {
- supported_formats->push_back(media::VideoCaptureFormat(
- gfx::Size(kBlacklistedCameras[i].capture_width,
- kBlacklistedCameras[i].capture_height),
- kBlacklistedCameras[i].capture_frame_rate,
- media::PIXEL_FORMAT_UYVY));
- break;
- }
- }
- }
- break;
case VideoCaptureDevice::Name::DECKLINK:
DVLOG(1) << "Enumerating video capture capabilities " << device.name();
VideoCaptureDeviceDeckLinkMac::EnumerateDeviceCapabilities(
@@ -212,7 +139,7 @@ void VideoCaptureDeviceFactoryMac::GetDeviceSupportedFormats(
VideoCaptureDeviceFactory*
VideoCaptureDeviceFactory::CreateVideoCaptureDeviceFactory(
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
- return new VideoCaptureDeviceFactoryMac(ui_task_runner);
+ return new VideoCaptureDeviceFactoryMac();
}
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698