[FFmpeg-devel] [PATCH] avutil/hwcontext_videotoolbox: Fix build with older SDKs
Marvin Scholz
epirat07 at gmail.com
Tue Jul 9 17:46:47 EEST 2024
I've accidentally used API not available on the checked version.
Additionally check for the SDK to be new enough to even have the
CVImageBufferCreateColorSpaceFromAttachments API to not fail
the build.
---
libavutil/hwcontext_videotoolbox.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/libavutil/hwcontext_videotoolbox.c b/libavutil/hwcontext_videotoolbox.c
index 953155ce32..ab7556936d 100644
--- a/libavutil/hwcontext_videotoolbox.c
+++ b/libavutil/hwcontext_videotoolbox.c
@@ -588,13 +588,26 @@ static int vt_pixbuf_set_colorspace(void *log_ctx,
} else
CVBufferRemoveAttachment(pixbuf, kCVImageBufferGammaLevelKey);
+#if (TARGET_OS_OSX && __MAC_OS_X_VERSION_MAX_ALLOWED >= 100800) || \
+ (TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000)
if (__builtin_available(macOS 10.8, iOS 10, *)) {
- CFDictionaryRef attachments = CVBufferCopyAttachments(pixbuf, kCVAttachmentMode_ShouldPropagate);
+ CFDictionaryRef attachments = NULL;
+ if (__builtin_available(macOS 12.0, iOS 15.0, *))
+ attachments = CVBufferCopyAttachments(pixbuf, kCVAttachmentMode_ShouldPropagate);
+#if (TARGET_OS_OSX && __MAC_OS_X_VERSION_MIN_REQUIRED <= 120000) || \
+ (TARGET_OS_IOS && __IPHONE_OS_VERSION_MIN_REQUIRED <= 150000)
+ else {
+ CFDictionaryRef tmp = CVBufferGetAttachments(pixbuf, kCVAttachmentMode_ShouldPropagate);
+ if (tmp)
+ attachments = CFDictionaryCreateCopy(NULL, tmp);
+ }
+#endif
if (attachments) {
colorspace = CVImageBufferCreateColorSpaceFromAttachments(attachments);
CFRelease(attachments);
}
}
+#endif
if (colorspace) {
CVBufferSetAttachment(pixbuf, kCVImageBufferCGColorSpaceKey,
base-commit: 9fb8d13d56f20728141fd7070d8a325720727d57
--
2.39.3 (Apple Git-146)
More information about the ffmpeg-devel
mailing list