036856aed5
* Move everything into package * Remove .DS_Store * Move scripts and eslintrc to package * Create CODE_OF_CONDUCT.md * fix some links * Update all links (I think) * Update generated docs * Update notice-yarn-changes.yml * Update validate-android.yml * Update validate-cpp.yml * Delete notice-yarn-changes.yml * Update validate-cpp.yml * Update validate-cpp.yml * Update validate-js.yml * Update validate-cpp.yml * Update validate-cpp.yml * wrong c++ style * Revert "wrong c++ style" This reverts commit 55a3575589c6f13f8b05134d83384f55e0601ab2.
64 lines
1.2 KiB
Swift
64 lines
1.2 KiB
Swift
//
|
|
// PixelFormat.swift
|
|
// VisionCamera
|
|
//
|
|
// Created by Marc Rousavy on 17.08.23.
|
|
// Copyright © 2023 mrousavy. All rights reserved.
|
|
//
|
|
|
|
import AVFoundation
|
|
import Foundation
|
|
|
|
enum PixelFormat {
|
|
case yuv
|
|
case rgb
|
|
case dng
|
|
case native
|
|
case unknown
|
|
|
|
var unionValue: String {
|
|
switch self {
|
|
case .yuv:
|
|
return "yuv"
|
|
case .rgb:
|
|
return "rgb"
|
|
case .dng:
|
|
return "dng"
|
|
case .native:
|
|
return "native"
|
|
case .unknown:
|
|
return "unknown"
|
|
}
|
|
}
|
|
|
|
init(unionValue: String) throws {
|
|
switch unionValue {
|
|
case "yuv":
|
|
self = .yuv
|
|
case "rgb":
|
|
self = .rgb
|
|
case "dng":
|
|
self = .dng
|
|
case "native":
|
|
self = .native
|
|
case "unknown":
|
|
self = .unknown
|
|
default:
|
|
throw CameraError.parameter(.invalid(unionName: "pixelFormat", receivedValue: unionValue))
|
|
}
|
|
}
|
|
|
|
init(mediaSubType: OSType) {
|
|
switch mediaSubType {
|
|
case kCVPixelFormatType_420YpCbCr8BiPlanarFullRange:
|
|
self = .yuv
|
|
case kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange:
|
|
self = .yuv
|
|
case kCVPixelFormatType_32BGRA:
|
|
self = .rgb
|
|
default:
|
|
self = .unknown
|
|
}
|
|
}
|
|
}
|