// // AVCaptureDevice.Format+isBetterThan.swift // mrousavy // // Created by Marc Rousavy on 19.12.20. // Copyright © 2020 mrousavy. All rights reserved. // import AVFoundation extension AVCaptureDevice.Format { /** Compares the current Format to the given format and returns true if the current format has either: * 1. Higher still image capture dimensions * 2. Higher video format dimensions (iOS 13.0) * 3. Higher FPS */ func isBetterThan(_ other: AVCaptureDevice.Format) -> Bool { // compare still image dimensions let leftDimensions = highResolutionStillImageDimensions let rightDimensions = other.highResolutionStillImageDimensions if leftDimensions.height * leftDimensions.width > rightDimensions.height * rightDimensions.width { return true } // compare video dimensions let leftVideo = videoDimensions let rightVideo = other.videoDimensions if leftVideo.height * leftVideo.width > rightVideo.height * rightVideo.width { return true } // compare max fps if maxFrameRate > other.maxFrameRate { return true } return false } }