Message ID | D2L39E9Q06Y8.33NN74KBGJMVU@gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] avutil/hwcontext_videotoolbox: Fix build with older SDKs | expand |
Context | Check | Description |
---|---|---|
andriy/configure_x86 | warning | Failed to apply patch |
yinshiyou/configure_loongarch64 | warning | Failed to apply patch |
> On Jul 9, 2024, at 22:46, Marvin Scholz <epirat07@gmail.com> wrote: > > 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, Rebase and applied, thanks. > > base-commit: 9fb8d13d56f20728141fd7070d8a325720727d57 > -- > 2.39.3 (Apple Git-146) > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Hi Marvin, On Tue, Jul 9, 2024, 10:47 Marvin Scholz <epirat07@gmail.com> wrote: > 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) > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > Should this have fixed the Apple M1 FATE node [1]? It seems to be still failing. -- Sean McGovern [1] https://fate.ffmpeg.org/history.cgi?slot=aarch64-osx-clang-1200.0.32.29 >
> On Jul 22, 2024, at 06:04, Sean McGovern <gseanmcg@gmail.com> wrote: > > Hi Marvin, > > > On Tue, Jul 9, 2024, 10:47 Marvin Scholz <epirat07@gmail.com> wrote: > >> 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) >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >> > > Should this have fixed the Apple M1 FATE node [1]? It seems to be still > failing. > > -- Sean McGovern > > [1] https://fate.ffmpeg.org/history.cgi?slot=aarch64-osx-clang-1200.0.32.29 I sent another patch that does the availability check at configure time which should fix the fate CI: https://ffmpeg.org//pipermail/ffmpeg-devel/2024-July/331496.html > >> > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> On Jul 22, 2024, at 06:45, Gnattu OC via ffmpeg-devel <ffmpeg-devel@ffmpeg.org> wrote: > > > >> On Jul 22, 2024, at 06:04, Sean McGovern <gseanmcg@gmail.com> wrote: >> >> Hi Marvin, >> >> >> On Tue, Jul 9, 2024, 10:47 Marvin Scholz <epirat07@gmail.com> wrote: >> >>> 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) >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >>> To unsubscribe, visit link above, or email >>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >>> >> >> Should this have fixed the Apple M1 FATE node [1]? It seems to be still >> failing. >> >> -- Sean McGovern >> >> [1] https://fate.ffmpeg.org/history.cgi?slot=aarch64-osx-clang-1200.0.32.29 > > I sent another patch that does the availability check at configure time which should fix the fate CI: > https://ffmpeg.org//pipermail/ffmpeg-devel/2024-July/331496.html > Sorry, should be this one: https://ffmpeg.org//pipermail/ffmpeg-devel/2024-July/331499.html >> >>> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org <mailto:ffmpeg-devel-request@ffmpeg.org> with subject "unsubscribe". > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org <mailto:ffmpeg-devel-request@ffmpeg.org> with subject "unsubscribe".
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,