[PR] avdevice/avfoundation: fix build with deployment targets below macOS 12 (PR #24034)

Gabriel Balaich via ffmpeg-devel <[email protected]>
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178604131897.59.7979778196809413392@29965ddac10e>
PR #24034 opened by Gabriel Balaich (ninbura)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24034
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24034.patch

# Summary of changes

Fixes the build regression from c2802e520a reported on ffmpeg-devel mailing list:
https://lists.ffmpeg.org/archives/list/[email protected]/thread/S7PGVSGNLIZ2WRYV6VOBAD3RWYUNWA3H/

The IOKit port guard checked the SDK version (__MAC_OS_X_VERSION_MAX_ALLOWED) instead of the deployment target (__MAC_OS_X_VERSION_MIN_REQUIRED), so any macOS 12+ SDK selected kIOMainPortDefault even when targeting older releases, which no longer compiles.



>From 058a3e204fd4c31dfc76e37e5591c44d3c94bea9 Mon Sep 17 00:00:00 2001
From: Gabriel Balaich <[email protected]>
Date: Thu, 6 Aug 2026 12:21:37 -0600
Subject: [PATCH] avdevice/avfoundation: fix build with deployment targets
 below macOS 12

c2802e520a selected kIOMainPortDefault whenever the SDK is new enough
(__MAC_OS_X_VERSION_MAX_ALLOWED), but that symbol is only available
since macOS 12, so building with a newer SDK against an older
deployment target failed with -Wunguarded-availability-new.

Check the deployment target (__MAC_OS_X_VERSION_MIN_REQUIRED) instead
and keep using the equivalent kIOMasterPortDefault when targeting
older releases.

See: https://lists.ffmpeg.org/archives/list/[email protected]/thread/S7PGVSGNLIZ2WRYV6VOBAD3RWYUNWA3H/
Reported-by: Helmut K. C. Tessarek <[email protected]>
Signed-off-by: Gabriel Balaich <[email protected]>
---
 libavdevice/avfoundation.m | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m
index 88b814ecf1..4516388dd4 100644
--- a/libavdevice/avfoundation.m
+++ b/libavdevice/avfoundation.m
@@ -30,8 +30,9 @@
 #import <AVFoundation/AVFoundation.h>
 #if HAVE_IOKIT
 #   import <IOKit/IOKitLib.h>
-    /* kIOMainPortDefault replaced kIOMasterPortDefault in the macOS 12 SDK. */
-#   if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 120000
+    /* kIOMainPortDefault is only available since macOS 12; fall back to the
+     * equivalent kIOMasterPortDefault when targeting older releases. */
+#   if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 120000
 #       define AVF_IO_MAIN_PORT_DEFAULT kIOMainPortDefault
 #   else
 #       define AVF_IO_MAIN_PORT_DEFAULT kIOMasterPortDefault
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.