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

Unified Diff: webrtc/modules/video_capture/ios/device_info_ios_objc.mm

Issue 2381853002: Revert of Unify the macOS and iOS capturer implementations (Closed)
Patch Set: Created 4 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: webrtc/modules/video_capture/ios/device_info_ios_objc.mm
diff --git a/webrtc/modules/video_capture/ios/device_info_ios_objc.mm b/webrtc/modules/video_capture/ios/device_info_ios_objc.mm
new file mode 100644
index 0000000000000000000000000000000000000000..818f8624c787091a4d956dd199fd7b35a1d3eeb6
--- /dev/null
+++ b/webrtc/modules/video_capture/ios/device_info_ios_objc.mm
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+#import <AVFoundation/AVFoundation.h>
+
+#import "webrtc/modules/video_capture/ios/device_info_ios_objc.h"
+#include "webrtc/modules/video_capture/video_capture_config.h"
+
+@implementation DeviceInfoIosObjC
+
++ (int)captureDeviceCount {
+ return [[AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo] count];
+}
+
++ (AVCaptureDevice*)captureDeviceForIndex:(int)index {
+ return [[AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]
+ objectAtIndex:index];
+}
+
++ (AVCaptureDevice*)captureDeviceForUniqueId:(NSString*)uniqueId {
+ for (AVCaptureDevice* device in
+ [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]) {
+ if ([uniqueId isEqual:device.uniqueID]) {
+ return device;
+ }
+ }
+
+ return nil;
+}
+
++ (NSString*)deviceNameForIndex:(int)index {
+ return [DeviceInfoIosObjC captureDeviceForIndex:index].localizedName;
+}
+
++ (NSString*)deviceUniqueIdForIndex:(int)index {
+ return [DeviceInfoIosObjC captureDeviceForIndex:index].uniqueID;
+}
+
++ (NSString*)deviceNameForUniqueId:(NSString*)uniqueId {
+ return [[AVCaptureDevice deviceWithUniqueID:uniqueId] localizedName];
+}
+
++ (webrtc::VideoCaptureCapability)capabilityForPreset:(NSString*)preset {
+ webrtc::VideoCaptureCapability capability;
+
+ // TODO(tkchin): Maybe query AVCaptureDevice for supported formats, and
+ // then get the dimensions / frame rate from each supported format
+ if ([preset isEqualToString:AVCaptureSessionPreset352x288]) {
+ capability.width = 352;
+ capability.height = 288;
+ capability.maxFPS = 30;
+ capability.expectedCaptureDelay =
+ webrtc::videocapturemodule::kDefaultCaptureDelay;
+ capability.rawType = webrtc::kVideoNV12;
+ capability.codecType = webrtc::kVideoCodecUnknown;
+ capability.interlaced = false;
+ } else if ([preset isEqualToString:AVCaptureSessionPreset640x480]) {
+ capability.width = 640;
+ capability.height = 480;
+ capability.maxFPS = 30;
+ capability.expectedCaptureDelay =
+ webrtc::videocapturemodule::kDefaultCaptureDelay;
+ capability.rawType = webrtc::kVideoNV12;
+ capability.codecType = webrtc::kVideoCodecUnknown;
+ capability.interlaced = false;
+ } else if ([preset isEqualToString:AVCaptureSessionPreset1280x720]) {
+ capability.width = 1280;
+ capability.height = 720;
+ capability.maxFPS = 30;
+ capability.expectedCaptureDelay =
+ webrtc::videocapturemodule::kDefaultCaptureDelay;
+ capability.rawType = webrtc::kVideoNV12;
+ capability.codecType = webrtc::kVideoCodecUnknown;
+ capability.interlaced = false;
+ } else if ([preset isEqualToString:AVCaptureSessionPreset1920x1080]) {
+ capability.width = 1920;
+ capability.height = 1080;
+ capability.maxFPS = 30;
+ capability.expectedCaptureDelay =
+ webrtc::videocapturemodule::kDefaultCaptureDelay;
+ capability.rawType = webrtc::kVideoNV12;
+ capability.codecType = webrtc::kVideoCodecUnknown;
+ capability.interlaced = false;
+ }
+
+ return capability;
+}
+
+@end
« no previous file with comments | « webrtc/modules/video_capture/ios/device_info_ios_objc.h ('k') | webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698