| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "media/video/capture/mac/avfoundation_glue.h" | 5 #import "media/video/capture/mac/avfoundation_glue.h" |
| 6 | 6 |
| 7 #include <dlfcn.h> | 7 #include <dlfcn.h> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 {&AVCaptureDeviceWasDisconnectedNotification_, | 38 {&AVCaptureDeviceWasDisconnectedNotification_, |
| 39 "AVCaptureDeviceWasDisconnectedNotification"}, | 39 "AVCaptureDeviceWasDisconnectedNotification"}, |
| 40 {&AVMediaTypeVideo_, "AVMediaTypeVideo"}, | 40 {&AVMediaTypeVideo_, "AVMediaTypeVideo"}, |
| 41 {&AVMediaTypeAudio_, "AVMediaTypeAudio"}, | 41 {&AVMediaTypeAudio_, "AVMediaTypeAudio"}, |
| 42 {&AVMediaTypeMuxed_, "AVMediaTypeMuxed"}, | 42 {&AVMediaTypeMuxed_, "AVMediaTypeMuxed"}, |
| 43 {&AVCaptureSessionRuntimeErrorNotification_, | 43 {&AVCaptureSessionRuntimeErrorNotification_, |
| 44 "AVCaptureSessionRuntimeErrorNotification"}, | 44 "AVCaptureSessionRuntimeErrorNotification"}, |
| 45 {&AVCaptureSessionDidStopRunningNotification_, | 45 {&AVCaptureSessionDidStopRunningNotification_, |
| 46 "AVCaptureSessionDidStopRunningNotification"}, | 46 "AVCaptureSessionDidStopRunningNotification"}, |
| 47 {&AVCaptureSessionErrorKey_, "AVCaptureSessionErrorKey"}, | 47 {&AVCaptureSessionErrorKey_, "AVCaptureSessionErrorKey"}, |
| 48 {&AVCaptureSessionPreset320x240_, "AVCaptureSessionPreset320x240"}, | |
| 49 {&AVCaptureSessionPreset640x480_, "AVCaptureSessionPreset640x480"}, | |
| 50 {&AVCaptureSessionPreset1280x720_, "AVCaptureSessionPreset1280x720"}, | |
| 51 {&AVVideoScalingModeKey_, "AVVideoScalingModeKey"}, | 48 {&AVVideoScalingModeKey_, "AVVideoScalingModeKey"}, |
| 52 {&AVVideoScalingModeResizeAspectFill_, | 49 {&AVVideoScalingModeResizeAspectFill_, |
| 53 "AVVideoScalingModeResizeAspectFill"}, | 50 "AVVideoScalingModeResizeAspectFill"}, |
| 54 }; | 51 }; |
| 55 for (size_t i = 0; i < arraysize(av_strings); ++i) { | 52 for (size_t i = 0; i < arraysize(av_strings); ++i) { |
| 56 *av_strings[i].loaded_string = *reinterpret_cast<NSString**>( | 53 *av_strings[i].loaded_string = *reinterpret_cast<NSString**>( |
| 57 dlsym(library_handle_, av_strings[i].symbol)); | 54 dlsym(library_handle_, av_strings[i].symbol)); |
| 58 DCHECK(*av_strings[i].loaded_string) << dlerror(); | 55 DCHECK(*av_strings[i].loaded_string) << dlerror(); |
| 59 } | 56 } |
| 60 } | 57 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 73 NSString* AVMediaTypeMuxed() const { return AVMediaTypeMuxed_; } | 70 NSString* AVMediaTypeMuxed() const { return AVMediaTypeMuxed_; } |
| 74 NSString* AVCaptureSessionRuntimeErrorNotification() const { | 71 NSString* AVCaptureSessionRuntimeErrorNotification() const { |
| 75 return AVCaptureSessionRuntimeErrorNotification_; | 72 return AVCaptureSessionRuntimeErrorNotification_; |
| 76 } | 73 } |
| 77 NSString* AVCaptureSessionDidStopRunningNotification() const { | 74 NSString* AVCaptureSessionDidStopRunningNotification() const { |
| 78 return AVCaptureSessionDidStopRunningNotification_; | 75 return AVCaptureSessionDidStopRunningNotification_; |
| 79 } | 76 } |
| 80 NSString* AVCaptureSessionErrorKey() const { | 77 NSString* AVCaptureSessionErrorKey() const { |
| 81 return AVCaptureSessionErrorKey_; | 78 return AVCaptureSessionErrorKey_; |
| 82 } | 79 } |
| 83 NSString* AVCaptureSessionPreset320x240() const { | |
| 84 return AVCaptureSessionPreset320x240_; | |
| 85 } | |
| 86 NSString* AVCaptureSessionPreset640x480() const { | |
| 87 return AVCaptureSessionPreset640x480_; | |
| 88 } | |
| 89 NSString* AVCaptureSessionPreset1280x720() const { | |
| 90 return AVCaptureSessionPreset1280x720_; | |
| 91 } | |
| 92 NSString* AVVideoScalingModeKey() const { return AVVideoScalingModeKey_; } | 80 NSString* AVVideoScalingModeKey() const { return AVVideoScalingModeKey_; } |
| 93 NSString* AVVideoScalingModeResizeAspectFill() const { | 81 NSString* AVVideoScalingModeResizeAspectFill() const { |
| 94 return AVVideoScalingModeResizeAspectFill_; | 82 return AVVideoScalingModeResizeAspectFill_; |
| 95 } | 83 } |
| 96 | 84 |
| 97 private: | 85 private: |
| 98 NSBundle* bundle_; | 86 NSBundle* bundle_; |
| 99 void* library_handle_; | 87 void* library_handle_; |
| 100 // The following members are replicas of the respectives in AVFoundation. | 88 // The following members are replicas of the respectives in AVFoundation. |
| 101 NSString* AVCaptureDeviceWasConnectedNotification_; | 89 NSString* AVCaptureDeviceWasConnectedNotification_; |
| 102 NSString* AVCaptureDeviceWasDisconnectedNotification_; | 90 NSString* AVCaptureDeviceWasDisconnectedNotification_; |
| 103 NSString* AVMediaTypeVideo_; | 91 NSString* AVMediaTypeVideo_; |
| 104 NSString* AVMediaTypeAudio_; | 92 NSString* AVMediaTypeAudio_; |
| 105 NSString* AVMediaTypeMuxed_; | 93 NSString* AVMediaTypeMuxed_; |
| 106 NSString* AVCaptureSessionRuntimeErrorNotification_; | 94 NSString* AVCaptureSessionRuntimeErrorNotification_; |
| 107 NSString* AVCaptureSessionDidStopRunningNotification_; | 95 NSString* AVCaptureSessionDidStopRunningNotification_; |
| 108 NSString* AVCaptureSessionErrorKey_; | 96 NSString* AVCaptureSessionErrorKey_; |
| 109 NSString* AVCaptureSessionPreset320x240_; | |
| 110 NSString* AVCaptureSessionPreset640x480_; | |
| 111 NSString* AVCaptureSessionPreset1280x720_; | |
| 112 NSString* AVVideoScalingModeKey_; | 97 NSString* AVVideoScalingModeKey_; |
| 113 NSString* AVVideoScalingModeResizeAspectFill_; | 98 NSString* AVVideoScalingModeResizeAspectFill_; |
| 114 | 99 |
| 115 DISALLOW_COPY_AND_ASSIGN(AVFoundationInternal); | 100 DISALLOW_COPY_AND_ASSIGN(AVFoundationInternal); |
| 116 }; | 101 }; |
| 117 | 102 |
| 118 } // namespace | 103 } // namespace |
| 119 | 104 |
| 120 static base::LazyInstance<AVFoundationInternal> g_avfoundation_handle = | 105 static base::LazyInstance<AVFoundationInternal> g_avfoundation_handle = |
| 121 LAZY_INSTANCE_INITIALIZER; | 106 LAZY_INSTANCE_INITIALIZER; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 | 151 |
| 167 NSString* AVFoundationGlue::AVCaptureSessionDidStopRunningNotification() { | 152 NSString* AVFoundationGlue::AVCaptureSessionDidStopRunningNotification() { |
| 168 return | 153 return |
| 169 g_avfoundation_handle.Get().AVCaptureSessionDidStopRunningNotification(); | 154 g_avfoundation_handle.Get().AVCaptureSessionDidStopRunningNotification(); |
| 170 } | 155 } |
| 171 | 156 |
| 172 NSString* AVFoundationGlue::AVCaptureSessionErrorKey() { | 157 NSString* AVFoundationGlue::AVCaptureSessionErrorKey() { |
| 173 return g_avfoundation_handle.Get().AVCaptureSessionErrorKey(); | 158 return g_avfoundation_handle.Get().AVCaptureSessionErrorKey(); |
| 174 } | 159 } |
| 175 | 160 |
| 176 NSString* AVFoundationGlue::AVCaptureSessionPreset320x240() { | |
| 177 return g_avfoundation_handle.Get().AVCaptureSessionPreset320x240(); | |
| 178 } | |
| 179 | |
| 180 NSString* AVFoundationGlue::AVCaptureSessionPreset640x480() { | |
| 181 return g_avfoundation_handle.Get().AVCaptureSessionPreset640x480(); | |
| 182 } | |
| 183 | |
| 184 NSString* AVFoundationGlue::AVCaptureSessionPreset1280x720() { | |
| 185 return g_avfoundation_handle.Get().AVCaptureSessionPreset1280x720(); | |
| 186 } | |
| 187 | |
| 188 NSString* AVFoundationGlue::AVVideoScalingModeKey() { | 161 NSString* AVFoundationGlue::AVVideoScalingModeKey() { |
| 189 return g_avfoundation_handle.Get().AVVideoScalingModeKey(); | 162 return g_avfoundation_handle.Get().AVVideoScalingModeKey(); |
| 190 } | 163 } |
| 191 | 164 |
| 192 NSString* AVFoundationGlue::AVVideoScalingModeResizeAspectFill() { | 165 NSString* AVFoundationGlue::AVVideoScalingModeResizeAspectFill() { |
| 193 return g_avfoundation_handle.Get().AVVideoScalingModeResizeAspectFill(); | 166 return g_avfoundation_handle.Get().AVVideoScalingModeResizeAspectFill(); |
| 194 } | 167 } |
| 195 | 168 |
| 196 Class AVFoundationGlue::AVCaptureSessionClass() { | 169 Class AVFoundationGlue::AVCaptureSessionClass() { |
| 197 return [AVFoundationBundle() classNamed:@"AVCaptureSession"]; | 170 return [AVFoundationBundle() classNamed:@"AVCaptureSession"]; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 224 @implementation AVCaptureDeviceInputGlue | 197 @implementation AVCaptureDeviceInputGlue |
| 225 | 198 |
| 226 + (CrAVCaptureDeviceInput*)deviceInputWithDevice:(CrAVCaptureDevice*)device | 199 + (CrAVCaptureDeviceInput*)deviceInputWithDevice:(CrAVCaptureDevice*)device |
| 227 error:(NSError**)outError { | 200 error:(NSError**)outError { |
| 228 return [[AVFoundationGlue::AVFoundationBundle() | 201 return [[AVFoundationGlue::AVFoundationBundle() |
| 229 classNamed:@"AVCaptureDeviceInput"] deviceInputWithDevice:device | 202 classNamed:@"AVCaptureDeviceInput"] deviceInputWithDevice:device |
| 230 error:outError]; | 203 error:outError]; |
| 231 } | 204 } |
| 232 | 205 |
| 233 @end // @implementation AVCaptureDeviceInputGlue | 206 @end // @implementation AVCaptureDeviceInputGlue |
| OLD | NEW |