Add iOS
This commit is contained in:
51
ios/Extensions/AVCaptureDevice.Format+toDictionary.swift
Normal file
51
ios/Extensions/AVCaptureDevice.Format+toDictionary.swift
Normal file
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// AVCaptureDevice.Format+toDictionary.swift
|
||||
// Cuvent
|
||||
//
|
||||
// Created by Marc Rousavy on 15.01.21.
|
||||
// Copyright © 2021 Facebook. All rights reserved.
|
||||
//
|
||||
|
||||
import AVFoundation
|
||||
|
||||
private func getAllVideoStabilizationModes() -> [AVCaptureVideoStabilizationMode] {
|
||||
var modes: [AVCaptureVideoStabilizationMode] = [.auto, .cinematic, .off, .standard]
|
||||
if #available(iOS 13, *) {
|
||||
modes.append(.cinematicExtended)
|
||||
}
|
||||
return modes
|
||||
}
|
||||
|
||||
extension AVCaptureDevice.Format {
|
||||
var videoStabilizationModes: [AVCaptureVideoStabilizationMode] {
|
||||
return getAllVideoStabilizationModes().filter { self.isVideoStabilizationModeSupported($0) }
|
||||
}
|
||||
|
||||
func toDictionary() -> [String: Any] {
|
||||
var dict: [String: Any] = [
|
||||
"videoStabilizationModes": videoStabilizationModes.map { $0.descriptor },
|
||||
"autoFocusSystem": autoFocusSystem.descriptor,
|
||||
"photoHeight": highResolutionStillImageDimensions.height,
|
||||
"photoWidth": highResolutionStillImageDimensions.width,
|
||||
"maxISO": maxISO,
|
||||
"minISO": minISO,
|
||||
"fieldOfView": videoFieldOfView,
|
||||
"maxZoom": videoMaxZoomFactor,
|
||||
"colorSpaces": supportedColorSpaces.map { $0.descriptor },
|
||||
"supportsVideoHDR": isVideoHDRSupported,
|
||||
"supportsPhotoHDR": false,
|
||||
"frameRateRanges": videoSupportedFrameRateRanges.map {
|
||||
[
|
||||
"minFrameRate": $0.minFrameRate,
|
||||
"maxFrameRate": $0.maxFrameRate,
|
||||
]
|
||||
},
|
||||
]
|
||||
if #available(iOS 13.0, *) {
|
||||
dict["isHighestPhotoQualitySupported"] = self.isHighestPhotoQualitySupported
|
||||
dict["videoHeight"] = self.formatDescription.presentationDimensions().height
|
||||
dict["videoWidth"] = self.formatDescription.presentationDimensions().width
|
||||
}
|
||||
return dict
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user