react-native-vision-camera/ios/Parsers/AVVideoCodecType+descriptor.swift
Marc Rousavy 00c8970366 Add iOS
2021-02-19 16:28:05 +01:00

94 lines
1.8 KiB
Swift

//
// AVVideoCodecType+descriptor.swift
// Cuvent
//
// Created by Marc Rousavy on 15.12.20.
// Copyright © 2020 Facebook. All rights reserved.
//
import AVFoundation
import Foundation
extension AVVideoCodecType {
init?(withString string: String) {
switch string {
case "h264":
self = .h264
return
case "hevc":
self = .hevc
return
case "hevc-alpha":
if #available(iOS 13.0, *) {
self = .hevcWithAlpha
return
} else {
return nil
}
case "jpeg":
self = .jpeg
return
case "pro-res-422":
self = .proRes422
return
case "pro-res-422-hq":
if #available(iOS 13.0, *) {
self = .proRes422HQ
return
} else {
return nil
}
case "pro-res-422-lt":
if #available(iOS 13.0, *) {
self = .proRes422LT
return
} else {
return nil
}
case "pro-res-422-proxy":
if #available(iOS 13.0, *) {
self = .proRes422Proxy
return
} else {
return nil
}
case "pro-res-4444":
self = .proRes4444
return
default:
return nil
}
}
var descriptor: String {
if #available(iOS 13.0, *) {
switch self {
case .hevcWithAlpha:
return "hevc-alpha"
case .proRes422HQ:
return "pro-res-422-hq"
case .proRes422LT:
return "pro-res-422-lt"
case .proRes422Proxy:
return "pro-res-422-proxy"
default:
break
}
}
switch self {
case .h264:
return "h264"
case .hevc:
return "hevc"
case .jpeg:
return "jpeg"
case .proRes422:
return "pro-res-422"
case .proRes4444:
return "pro-res-4444"
default:
fatalError("AVVideoCodecType has unknown state.")
}
}
}