[FFmpeg-devel] [PATCH] libavdevice/avfoundation.m Add missing type AVMediaType for macOS < 10.13.

Martin Storsjö martin at martin.st
Mon Jan 1 23:47:40 EET 2024


On Mon, 1 Jan 2024, David Bohman wrote:

> This is a build failure in the master branch as a result of commit
> e37b15e26fbc7bc31a86a4a2c7c798e20d4f4c2c:
>
> There is no type AVMediaType prior to macOS 10.13.
> ---
> libavdevice/avfoundation.m | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m
> index 6a57163eb7..5fc5cb61c5 100644
> --- a/libavdevice/avfoundation.m
> +++ b/libavdevice/avfoundation.m
> @@ -761,6 +761,10 @@ static int get_audio_config(AVFormatContext *s)
>     return 0;
> }
>
> +#if TARGET_OS_OSX && __MAC_OS_X_VERSION_MIN_REQUIRED < 101300
> +typedef NSString *AVMediaType;
> +#endif
> +

Checking the min required version of the SDK is the wrong check here.

If you use a recent macOS SDK but target an older version of macOS, this 
typedef is still available; check the AVMediaFormat.h header - there's no 
ifdef around the AVMediaType typedef.

Therefore, the availability of this type is connected to the SDK version, 
not the runtime target version. Therefore, use 
MAC_OS_X_VERSION_MAX_ALLOWED or something similar to check the actual SDK 
version, not the target version (as set by e.g. -mmacosx-version-min).

// Martin



More information about the ffmpeg-devel mailing list