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

Unified Diff: media/base/mac/avfoundation_glue.mm

Issue 2529493002: mac: Remove more media/base/mac glue unneeded now that we target 10.9 (Closed)
Patch Set: . Created 4 years, 1 month 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
« no previous file with comments | « media/base/mac/avfoundation_glue.h ('k') | media/base/mac/coremedia_glue.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/mac/avfoundation_glue.mm
diff --git a/media/base/mac/avfoundation_glue.mm b/media/base/mac/avfoundation_glue.mm
deleted file mode 100644
index 4bd6d72ab92dd0c6f10c8db803b49667e3e33cd3..0000000000000000000000000000000000000000
--- a/media/base/mac/avfoundation_glue.mm
+++ /dev/null
@@ -1,203 +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/base/mac/avfoundation_glue.h"
-
-#import <AVFoundation/AVFoundation.h>
-#include <dlfcn.h>
-#include <stddef.h>
-
-#include "base/command_line.h"
-#include "base/lazy_instance.h"
-#include "base/mac/mac_util.h"
-#include "base/macros.h"
-#include "base/metrics/histogram.h"
-#include "base/trace_event/trace_event.h"
-#include "media/base/media_switches.h"
-
-namespace {
-// This class is used to retrieve AVFoundation NSBundle and library handle. It
-// must be used as a LazyInstance so that it is initialised once and in a
-// thread-safe way. Normally no work is done in constructors: LazyInstance is
-// an exception.
-class AVFoundationInternal {
- public:
- AVFoundationInternal() {
- bundle_ = [NSBundle
- bundleWithPath:@"/System/Library/Frameworks/AVFoundation.framework"];
- }
-
- NSBundle* bundle() const { return bundle_; }
-
- NSString* AVCaptureDeviceWasConnectedNotification() const {
- return AVCaptureDeviceWasConnectedNotification_;
- }
- NSString* AVCaptureDeviceWasDisconnectedNotification() const {
- return AVCaptureDeviceWasDisconnectedNotification_;
- }
- NSString* AVMediaTypeVideo() const { return AVMediaTypeVideo_; }
- NSString* AVMediaTypeAudio() const { return AVMediaTypeAudio_; }
- NSString* AVMediaTypeMuxed() const { return AVMediaTypeMuxed_; }
- NSString* AVCaptureSessionRuntimeErrorNotification() const {
- return AVCaptureSessionRuntimeErrorNotification_;
- }
- NSString* AVCaptureSessionDidStopRunningNotification() const {
- return AVCaptureSessionDidStopRunningNotification_;
- }
- NSString* AVCaptureSessionErrorKey() const {
- return AVCaptureSessionErrorKey_;
- }
- NSString* AVVideoScalingModeKey() const { return AVVideoScalingModeKey_; }
- NSString* AVVideoScalingModeResizeAspectFill() const {
- return AVVideoScalingModeResizeAspectFill_;
- }
-
- private:
- NSBundle* bundle_;
- // The following members are replicas of the respectives in AVFoundation.
- NSString* AVCaptureDeviceWasConnectedNotification_ =
- ::AVCaptureDeviceWasConnectedNotification;
- NSString* AVCaptureDeviceWasDisconnectedNotification_ =
- ::AVCaptureDeviceWasDisconnectedNotification;
- NSString* AVMediaTypeVideo_ = ::AVMediaTypeVideo;
- NSString* AVMediaTypeAudio_ = ::AVMediaTypeAudio;
- NSString* AVMediaTypeMuxed_ = ::AVMediaTypeMuxed;
- NSString* AVCaptureSessionRuntimeErrorNotification_ =
- ::AVCaptureSessionRuntimeErrorNotification;
- NSString* AVCaptureSessionDidStopRunningNotification_ =
- ::AVCaptureSessionDidStopRunningNotification;
- NSString* AVCaptureSessionErrorKey_ = ::AVCaptureSessionErrorKey;
- NSString* AVVideoScalingModeKey_ = ::AVVideoScalingModeKey;
- NSString* AVVideoScalingModeResizeAspectFill_ =
- ::AVVideoScalingModeResizeAspectFill;
-
- DISALLOW_COPY_AND_ASSIGN(AVFoundationInternal);
-};
-
-static base::ThreadLocalStorage::StaticSlot g_avfoundation_handle =
- TLS_INITIALIZER;
-
-void TlsCleanup(void* value) {
- delete static_cast<AVFoundationInternal*>(value);
-}
-
-AVFoundationInternal* GetAVFoundationInternal() {
- return static_cast<AVFoundationInternal*>(g_avfoundation_handle.Get());
-}
-
-// This contains the logic of checking whether AVFoundation is supported.
-// It's called only once and the results are cached in a static bool.
-bool LoadAVFoundationInternal() {
- g_avfoundation_handle.Initialize(TlsCleanup);
- g_avfoundation_handle.Set(new AVFoundationInternal());
- const bool ret = [AVFoundationGlue::AVFoundationBundle() load];
- CHECK(ret);
- return ret;
-}
-
-enum {
- INITIALIZE_NOT_CALLED = 0,
- AVFOUNDATION_IS_SUPPORTED,
- AVFOUNDATION_NOT_SUPPORTED
-} static g_avfoundation_initialization = INITIALIZE_NOT_CALLED;
-
-} // namespace
-
-void AVFoundationGlue::InitializeAVFoundation() {
- TRACE_EVENT0("video", "AVFoundationGlue::InitializeAVFoundation");
- CHECK([NSThread isMainThread]);
- if (g_avfoundation_initialization != INITIALIZE_NOT_CALLED)
- return;
- g_avfoundation_initialization = LoadAVFoundationInternal() ?
- AVFOUNDATION_IS_SUPPORTED : AVFOUNDATION_NOT_SUPPORTED;
-}
-
-NSBundle const* AVFoundationGlue::AVFoundationBundle() {
- return GetAVFoundationInternal()->bundle();
-}
-
-NSString* AVFoundationGlue::AVCaptureDeviceWasConnectedNotification() {
- return GetAVFoundationInternal()->AVCaptureDeviceWasConnectedNotification();
-}
-
-NSString* AVFoundationGlue::AVCaptureDeviceWasDisconnectedNotification() {
- return GetAVFoundationInternal()
- ->AVCaptureDeviceWasDisconnectedNotification();
-}
-
-NSString* AVFoundationGlue::AVMediaTypeVideo() {
- return GetAVFoundationInternal()->AVMediaTypeVideo();
-}
-
-NSString* AVFoundationGlue::AVMediaTypeAudio() {
- return GetAVFoundationInternal()->AVMediaTypeAudio();
-}
-
-NSString* AVFoundationGlue::AVMediaTypeMuxed() {
- return GetAVFoundationInternal()->AVMediaTypeMuxed();
-}
-
-NSString* AVFoundationGlue::AVCaptureSessionRuntimeErrorNotification() {
- return GetAVFoundationInternal()->AVCaptureSessionRuntimeErrorNotification();
-}
-
-NSString* AVFoundationGlue::AVCaptureSessionDidStopRunningNotification() {
- return GetAVFoundationInternal()
- ->AVCaptureSessionDidStopRunningNotification();
-}
-
-NSString* AVFoundationGlue::AVCaptureSessionErrorKey() {
- return GetAVFoundationInternal()->AVCaptureSessionErrorKey();
-}
-
-NSString* AVFoundationGlue::AVVideoScalingModeKey() {
- return GetAVFoundationInternal()->AVVideoScalingModeKey();
-}
-
-NSString* AVFoundationGlue::AVVideoScalingModeResizeAspectFill() {
- return GetAVFoundationInternal()->AVVideoScalingModeResizeAspectFill();
-}
-
-Class AVFoundationGlue::AVCaptureSessionClass() {
- return [AVFoundationBundle() classNamed:@"AVCaptureSession"];
-}
-
-Class AVFoundationGlue::AVCaptureVideoDataOutputClass() {
- return [AVFoundationBundle() classNamed:@"AVCaptureVideoDataOutput"];
-}
-
-Class AVFoundationGlue::AVCaptureStillImageOutputClass() {
- return [AVFoundationBundle() classNamed:@"AVCaptureStillImageOutput"];
-}
-
-@implementation AVCaptureDeviceGlue
-
-+ (NSArray*)devices {
- Class avcClass =
- [AVFoundationGlue::AVFoundationBundle() classNamed:@"AVCaptureDevice"];
- if ([avcClass respondsToSelector:@selector(devices)]) {
- return [avcClass performSelector:@selector(devices)];
- }
- return nil;
-}
-
-+ (CrAVCaptureDevice*)deviceWithUniqueID:(NSString*)deviceUniqueID {
- Class avcClass =
- [AVFoundationGlue::AVFoundationBundle() classNamed:@"AVCaptureDevice"];
- return [avcClass performSelector:@selector(deviceWithUniqueID:)
- withObject:deviceUniqueID];
-}
-
-@end // @implementation AVCaptureDeviceGlue
-
-@implementation AVCaptureDeviceInputGlue
-
-+ (CrAVCaptureDeviceInput*)deviceInputWithDevice:(CrAVCaptureDevice*)device
- error:(NSError**)outError {
- return [[AVFoundationGlue::AVFoundationBundle()
- classNamed:@"AVCaptureDeviceInput"] deviceInputWithDevice:device
- error:outError];
-}
-
-@end // @implementation AVCaptureDeviceInputGlue
« no previous file with comments | « media/base/mac/avfoundation_glue.h ('k') | media/base/mac/coremedia_glue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698