From 39cd8cfb4ce73d6127cfbc3f18ff5dea61dd5338 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 6 May 2024 09:25:06 +0800 Subject: [PATCH] Camera: fix deprecation warning for macOS 14.0 hopefully Fix #860 --- src/detection/camera/camera_apple.m | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/detection/camera/camera_apple.m b/src/detection/camera/camera_apple.m index a3da90540..66e18a7d6 100644 --- a/src/detection/camera/camera_apple.m +++ b/src/detection/camera/camera_apple.m @@ -3,10 +3,27 @@ #import +// warning: 'AVCaptureDeviceTypeExternalUnknown' is deprecated +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + const char* ffDetectCamera(FFlist* result) { FF_SUPPRESS_IO(); // #822 - AVCaptureDeviceDiscoverySession* session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCaptureDeviceTypeExternalUnknown] + + AVCaptureDeviceType deviceType; + + #ifdef MAC_OS_VERSION_14_0 + if (@available(macOS 14.0, *)) + { + deviceType = AVCaptureDeviceTypeExternal; + } + else + #endif + { + deviceType = AVCaptureDeviceTypeExternalUnknown; + } + + AVCaptureDeviceDiscoverySession* session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera, deviceType] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified]; if (!session)