summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authortommyw@chromium.org <tommyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-31 15:49:53 +0000
committertommyw@chromium.org <tommyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-31 15:49:53 +0000
commitee26d9e0b0f310c7f027ea503620ca54cb23c0d6 (patch)
tree77d0d6e95ae553a9327d3d21d5a24b4e17d0285c /media
parent3b4e6bfef63e11a2ab9d56390f1940598f2fa5f0 (diff)
downloadchromium_src-ee26d9e0b0f310c7f027ea503620ca54cb23c0d6.zip
chromium_src-ee26d9e0b0f310c7f027ea503620ca54cb23c0d6.tar.gz
chromium_src-ee26d9e0b0f310c7f027ea503620ca54cb23c0d6.tar.bz2
Revert 230553 "Added AVFoundation Glue and Device Monitoring for..."
Patch reverted by request of the author. > Added AVFoundation Glue and Device Monitoring for Mac. > > This CL adds files called avfoundation_glue.{h,mm} to media/video/capture/mac. > These files encapsulate dynamic loading of AVFoundation libraries and define+ > implement a facade to the used AVFoundation classes. The first usage of those > is the DeviceMonitorMac, where the original QTKit event class is transformed > into an interface (MacMonitorInterface), implemented by both QTKitMonitorImpl > and AVFoundationMonitorImpl. the usage of one or the other is decided on > DeviceMonitorMac constructor time. > > This CL is part of a larger exercise to add support for Video Capture in > Mac > 10.6 using AVFoundation. > > BUG=288562 > > Review URL: https://codereview.chromium.org/24615005 TBR=mcasas@chromium.org Review URL: https://codereview.chromium.org/52553006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232130 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/media.gyp2
-rw-r--r--media/video/capture/mac/avfoundation_glue.h65
-rw-r--r--media/video/capture/mac/avfoundation_glue.mm89
3 files changed, 0 insertions, 156 deletions
diff --git a/media/media.gyp b/media/media.gyp
index 1bc687f..b8f82cb 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -393,8 +393,6 @@
'video/capture/fake_video_capture_device.h',
'video/capture/linux/video_capture_device_linux.cc',
'video/capture/linux/video_capture_device_linux.h',
- 'video/capture/mac/avfoundation_glue.h',
- 'video/capture/mac/avfoundation_glue.mm',
'video/capture/mac/platform_video_capturing_mac.h',
'video/capture/mac/video_capture_device_mac.h',
'video/capture/mac/video_capture_device_mac.mm',
diff --git a/media/video/capture/mac/avfoundation_glue.h b/media/video/capture/mac/avfoundation_glue.h
deleted file mode 100644
index e835c64..0000000
--- a/media/video/capture/mac/avfoundation_glue.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// AVFoundation API is only introduced in Mac OS X > 10.6, and there is only one
-// build of Chromium, so the (potential) linking with AVFoundation has to happen
-// in runtime. For this to be clean, a AVFoundationGlue class is defined to try
-// and load these AVFoundation system libraries. If it succeeds, subsequent
-// clients can use AVFoundation via the rest of the classes declared in this
-// file.
-
-#ifndef MEDIA_VIDEO_CAPTURE_MAC_AVFOUNDATION_GLUE_H_
-#define MEDIA_VIDEO_CAPTURE_MAC_AVFOUNDATION_GLUE_H_
-
-#import <Foundation/Foundation.h>
-
-#include "base/basictypes.h"
-#include "media/base/media_export.h"
-
-class MEDIA_EXPORT AVFoundationGlue {
- public:
- // This method returns true if the OS version supports AVFoundation and the
- // AVFoundation bundle could be loaded correctly, or false otherwise.
- static bool IsAVFoundationSupported();
-
- static NSBundle const* AVFoundationBundle();
-
- static void* AVFoundationLibraryHandle();
-
- // Originally coming from AVCaptureDevice.h but in global namespace.
- static NSString* AVCaptureDeviceWasConnectedNotification();
- static NSString* AVCaptureDeviceWasDisconnectedNotification();
-
- // Originally coming from AVMediaFormat.h but in global namespace.
- static NSString* AVMediaTypeVideo();
- static NSString* AVMediaTypeAudio();
- static NSString* AVMediaTypeMuxed();
-
- private:
- static NSString* ReadNSStringPtr(const char* symbol);
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(AVFoundationGlue);
-};
-
-// Originally AVCaptureDevice and coming from AVCaptureDevice.h
-@interface CrAVCaptureDevice : NSObject
-
-- (BOOL)hasMediaType:(NSString*)mediaType;
-
-- (NSString*)uniqueID;
-
-@end
-
-@interface AVCaptureDeviceGlue : NSObject
-
-+ (NSArray*)devices;
-
-+ (BOOL)hasMediaType:(NSString*)mediaType
- forCaptureDevice:(CrAVCaptureDevice*)device;
-
-+ (NSString*)uniqueID:(CrAVCaptureDevice*)device;
-
-@end
-
-#endif // MEDIA_VIDEO_CAPTURE_MAC_AVFOUNDATION_GLUE_H_
diff --git a/media/video/capture/mac/avfoundation_glue.mm b/media/video/capture/mac/avfoundation_glue.mm
deleted file mode 100644
index 65e3dc3..0000000
--- a/media/video/capture/mac/avfoundation_glue.mm
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "media/video/capture/mac/avfoundation_glue.h"
-
-#include <dlfcn.h>
-
-#include "base/mac/mac_util.h"
-
-bool AVFoundationGlue::IsAVFoundationSupported() {
- return (base::mac::IsOSLionOrLater() && [AVFoundationBundle() load]);
-}
-
-NSBundle const* AVFoundationGlue::AVFoundationBundle() {
- static NSBundle* bundle = [NSBundle
- bundleWithPath:@"/System/Library/Frameworks/AVFoundation.framework"];
- return bundle;
-}
-
-void* AVFoundationGlue::AVFoundationLibraryHandle() {
- const char* library_path =
- [[AVFoundationBundle() executablePath] fileSystemRepresentation];
- if (library_path == NULL) {
- DCHECK(false);
- return NULL;
- }
- static void* library_handle = dlopen(library_path, RTLD_LAZY | RTLD_LOCAL);
- DCHECK(library_handle) << dlerror();
- return library_handle;
-}
-
-NSString* AVFoundationGlue::AVCaptureDeviceWasConnectedNotification() {
- return ReadNSStringPtr("AVCaptureDeviceWasConnectedNotification");
-}
-
-NSString* AVFoundationGlue::AVCaptureDeviceWasDisconnectedNotification() {
- return ReadNSStringPtr("AVCaptureDeviceWasDisconnectedNotification");
-}
-
-NSString* AVFoundationGlue::AVMediaTypeVideo() {
- return ReadNSStringPtr("AVMediaTypeVideo");
-}
-
-NSString* AVFoundationGlue::AVMediaTypeAudio() {
- return ReadNSStringPtr("AVMediaTypeAudio");
-}
-
-NSString* AVFoundationGlue::AVMediaTypeMuxed() {
- return ReadNSStringPtr("AVMediaTypeMuxed");
-}
-
-NSString* AVFoundationGlue::ReadNSStringPtr(const char* symbol) {
- NSString** string_pointer = reinterpret_cast<NSString**>(
- dlsym(AVFoundationLibraryHandle(), symbol));
- DCHECK(string_pointer) << dlerror();
- return *string_pointer;
-}
-
-@implementation AVCaptureDeviceGlue
-
-+ (NSArray*)devices {
- Class avcClass =
- [AVFoundationGlue::AVFoundationBundle() classNamed:@"AVCaptureDevice"];
- SEL selectorDevices = NSSelectorFromString(@"devices");
- if ([avcClass respondsToSelector:selectorDevices]) {
- return [avcClass performSelector:selectorDevices];
- }
- return nil;
-}
-
-+ (BOOL)hasMediaType:(NSString*)mediaType
- forCaptureDevice:(CrAVCaptureDevice*)device {
- SEL selectorHasMediaType = NSSelectorFromString(@"hasMediaType:");
- if ([device respondsToSelector:selectorHasMediaType]) {
- return [device hasMediaType:mediaType];
- }
- return NO;
-}
-
-+ (NSString*)uniqueID:(CrAVCaptureDevice*)device {
- SEL selectorUniqueID = NSSelectorFromString(@"uniqueID");
- if ([device respondsToSelector:selectorUniqueID]) {
- return [device uniqueID];
- }
- return nil;
-}
-
-@end // @implementation AVCaptureDevice