| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | |
| 3 * | |
| 4 * Use of this source code is governed by a BSD-style license | |
| 5 * that can be found in the LICENSE file in the root of the source | |
| 6 * tree. An additional intellectual property rights grant can be found | |
| 7 * in the file PATENTS. All contributing project authors may | |
| 8 * be found in the AUTHORS file in the root of the source tree. | |
| 9 */ | |
| 10 | |
| 11 #if !defined(__has_feature) || !__has_feature(objc_arc) | |
| 12 #error "This file requires ARC support." | |
| 13 #endif | |
| 14 | |
| 15 #import <AVFoundation/AVFoundation.h> | |
| 16 | |
| 17 #import "webrtc/modules/video_capture/ios/device_info_ios_objc.h" | |
| 18 #include "webrtc/modules/video_capture/video_capture_config.h" | |
| 19 | |
| 20 @implementation DeviceInfoIosObjC | |
| 21 | |
| 22 + (int)captureDeviceCount { | |
| 23 return [[AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo] count]; | |
| 24 } | |
| 25 | |
| 26 + (AVCaptureDevice*)captureDeviceForIndex:(int)index { | |
| 27 return [[AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo] | |
| 28 objectAtIndex:index]; | |
| 29 } | |
| 30 | |
| 31 + (AVCaptureDevice*)captureDeviceForUniqueId:(NSString*)uniqueId { | |
| 32 for (AVCaptureDevice* device in | |
| 33 [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]) { | |
| 34 if ([uniqueId isEqual:device.uniqueID]) { | |
| 35 return device; | |
| 36 } | |
| 37 } | |
| 38 | |
| 39 return nil; | |
| 40 } | |
| 41 | |
| 42 + (NSString*)deviceNameForIndex:(int)index { | |
| 43 return [DeviceInfoIosObjC captureDeviceForIndex:index].localizedName; | |
| 44 } | |
| 45 | |
| 46 + (NSString*)deviceUniqueIdForIndex:(int)index { | |
| 47 return [DeviceInfoIosObjC captureDeviceForIndex:index].uniqueID; | |
| 48 } | |
| 49 | |
| 50 + (NSString*)deviceNameForUniqueId:(NSString*)uniqueId { | |
| 51 return [[AVCaptureDevice deviceWithUniqueID:uniqueId] localizedName]; | |
| 52 } | |
| 53 | |
| 54 + (webrtc::VideoCaptureCapability)capabilityForPreset:(NSString*)preset { | |
| 55 webrtc::VideoCaptureCapability capability; | |
| 56 | |
| 57 // TODO(tkchin): Maybe query AVCaptureDevice for supported formats, and | |
| 58 // then get the dimensions / frame rate from each supported format | |
| 59 if ([preset isEqualToString:AVCaptureSessionPreset352x288]) { | |
| 60 capability.width = 352; | |
| 61 capability.height = 288; | |
| 62 capability.maxFPS = 30; | |
| 63 capability.expectedCaptureDelay = | |
| 64 webrtc::videocapturemodule::kDefaultCaptureDelay; | |
| 65 capability.rawType = webrtc::kVideoNV12; | |
| 66 capability.codecType = webrtc::kVideoCodecUnknown; | |
| 67 capability.interlaced = false; | |
| 68 } else if ([preset isEqualToString:AVCaptureSessionPreset640x480]) { | |
| 69 capability.width = 640; | |
| 70 capability.height = 480; | |
| 71 capability.maxFPS = 30; | |
| 72 capability.expectedCaptureDelay = | |
| 73 webrtc::videocapturemodule::kDefaultCaptureDelay; | |
| 74 capability.rawType = webrtc::kVideoNV12; | |
| 75 capability.codecType = webrtc::kVideoCodecUnknown; | |
| 76 capability.interlaced = false; | |
| 77 } else if ([preset isEqualToString:AVCaptureSessionPreset1280x720]) { | |
| 78 capability.width = 1280; | |
| 79 capability.height = 720; | |
| 80 capability.maxFPS = 30; | |
| 81 capability.expectedCaptureDelay = | |
| 82 webrtc::videocapturemodule::kDefaultCaptureDelay; | |
| 83 capability.rawType = webrtc::kVideoNV12; | |
| 84 capability.codecType = webrtc::kVideoCodecUnknown; | |
| 85 capability.interlaced = false; | |
| 86 } else if ([preset isEqualToString:AVCaptureSessionPreset1920x1080]) { | |
| 87 capability.width = 1920; | |
| 88 capability.height = 1080; | |
| 89 capability.maxFPS = 30; | |
| 90 capability.expectedCaptureDelay = | |
| 91 webrtc::videocapturemodule::kDefaultCaptureDelay; | |
| 92 capability.rawType = webrtc::kVideoNV12; | |
| 93 capability.codecType = webrtc::kVideoCodecUnknown; | |
| 94 capability.interlaced = false; | |
| 95 } | |
| 96 | |
| 97 return capability; | |
| 98 } | |
| 99 | |
| 100 @end | |
| OLD | NEW |