Message ID | 20211113210916.49167-11-rcombs@rcombs.me |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,01/15] lavu/pixfmt: add high-bit-depth semi-planar 4:2:2/4:4:4 formats | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | fail | Make fate failed |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | fail | Make fate failed |
On 13 Nov 2021, at 22:09, rcombs wrote: > This is required for VP9 to work. > --- > libavcodec/videotoolbox.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c > index 18cc589d2a..0666446dbd 100644 > --- a/libavcodec/videotoolbox.c > +++ b/libavcodec/videotoolbox.c > @@ -32,6 +32,7 @@ > #include "h264dec.h" > #include "hevcdec.h" > #include "mpegvideo.h" > +#include <Availability.h> > #include <TargetConditionals.h> > > #ifndef > kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder > @@ -864,6 +865,12 @@ static int videotoolbox_start(AVCodecContext > *avctx) > break; > } > > +#ifdef __MAC_10_11 > + if (__builtin_available(macOS 10.11, *)) { > + > VTRegisterSupplementalVideoDecoderIfAvailable(videotoolbox->cm_codec_type); > + } > +#endif > + The VTRegisterSupplementalVideoDecoderIfAvailable is available since macOS 11 according to the header annotations: VT_EXPORT void VTRegisterSupplementalVideoDecoderIfAvailable( CMVideoCodecType codecType ) API_AVAILABLE(macosx(11.0)) API_UNAVAILABLE(ios, watchos, tvos); I guess you meant to check for macOS 11 here but accidentally used 10.11? Additionally a more reliable/correct way for the SDK preprocessor check would be: #if (!TARGET_OS_IPHONE && MAC_OS_X_VERSION_MAX_ALLOWED >= 110000) > decoder_spec = > videotoolbox_decoder_config_create(videotoolbox->cm_codec_type, > avctx); > > if (!decoder_spec) { > -- > 2.33.1 > > _______________________________________________ > 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 Nov 13, 2021, at 18:38, Marvin Scholz <epirat07@gmail.com> wrote: > > On 13 Nov 2021, at 22:09, rcombs wrote: > >> This is required for VP9 to work. >> --- >> libavcodec/videotoolbox.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c >> index 18cc589d2a..0666446dbd 100644 >> --- a/libavcodec/videotoolbox.c >> +++ b/libavcodec/videotoolbox.c >> @@ -32,6 +32,7 @@ >> #include "h264dec.h" >> #include "hevcdec.h" >> #include "mpegvideo.h" >> +#include <Availability.h> >> #include <TargetConditionals.h> >> >> #ifndef kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder >> @@ -864,6 +865,12 @@ static int videotoolbox_start(AVCodecContext *avctx) >> break; >> } >> >> +#ifdef __MAC_10_11 >> + if (__builtin_available(macOS 10.11, *)) { >> + VTRegisterSupplementalVideoDecoderIfAvailable(videotoolbox->cm_codec_type); >> + } >> +#endif >> + > > The VTRegisterSupplementalVideoDecoderIfAvailable is available since macOS 11 according to the > header annotations: > > VT_EXPORT void VTRegisterSupplementalVideoDecoderIfAvailable( CMVideoCodecType codecType ) API_AVAILABLE(macosx(11.0)) API_UNAVAILABLE(ios, watchos, tvos); > > I guess you meant to check for macOS 11 here but accidentally used 10.11? Ah, good catch! Fixed. > > Additionally a more reliable/correct way for the SDK preprocessor check would be: > > #if (!TARGET_OS_IPHONE && MAC_OS_X_VERSION_MAX_ALLOWED >= 110000) How's this, using AvailabilityMacros.h? #if defined(MAC_OS_VERSION_11_0) && !TARGET_OS_IPHONE && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0) (And same for the 10.9 check) > >> decoder_spec = videotoolbox_decoder_config_create(videotoolbox->cm_codec_type, avctx); >> >> if (!decoder_spec) { >> -- >> 2.33.1 >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel <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 <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".
On 14 Nov 2021, at 3:40, Ridley Combs wrote: >> On Nov 13, 2021, at 18:38, Marvin Scholz <epirat07@gmail.com> wrote: >> >> On 13 Nov 2021, at 22:09, rcombs wrote: >> >>> This is required for VP9 to work. >>> --- >>> libavcodec/videotoolbox.c | 7 +++++++ >>> 1 file changed, 7 insertions(+) >>> >>> diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c >>> index 18cc589d2a..0666446dbd 100644 >>> --- a/libavcodec/videotoolbox.c >>> +++ b/libavcodec/videotoolbox.c >>> @@ -32,6 +32,7 @@ >>> #include "h264dec.h" >>> #include "hevcdec.h" >>> #include "mpegvideo.h" >>> +#include <Availability.h> >>> #include <TargetConditionals.h> >>> >>> #ifndef >>> kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder >>> @@ -864,6 +865,12 @@ static int videotoolbox_start(AVCodecContext >>> *avctx) >>> break; >>> } >>> >>> +#ifdef __MAC_10_11 >>> + if (__builtin_available(macOS 10.11, *)) { >>> + >>> VTRegisterSupplementalVideoDecoderIfAvailable(videotoolbox->cm_codec_type); >>> + } >>> +#endif >>> + >> >> The VTRegisterSupplementalVideoDecoderIfAvailable is available since >> macOS 11 according to the >> header annotations: >> >> VT_EXPORT void VTRegisterSupplementalVideoDecoderIfAvailable( >> CMVideoCodecType codecType ) API_AVAILABLE(macosx(11.0)) >> API_UNAVAILABLE(ios, watchos, tvos); >> >> I guess you meant to check for macOS 11 here but accidentally used >> 10.11? > > Ah, good catch! Fixed. > >> >> Additionally a more reliable/correct way for the SDK preprocessor >> check would be: >> >> #if (!TARGET_OS_IPHONE && MAC_OS_X_VERSION_MAX_ALLOWED >= 110000) > > How's this, using AvailabilityMacros.h? > > #if defined(MAC_OS_VERSION_11_0) && !TARGET_OS_IPHONE && > (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0) > > (And same for the 10.9 check) Sure, good idea. > >> >>> decoder_spec = >>> videotoolbox_decoder_config_create(videotoolbox->cm_codec_type, >>> avctx); >>> >>> if (!decoder_spec) { >>> -- >>> 2.33.1 >>> >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org> >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> <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 >> <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 > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
On Sun, Nov 14, 2021 at 3:40 AM Ridley Combs <rcombs@rcombs.me> wrote: > > > > > On Nov 13, 2021, at 18:38, Marvin Scholz <epirat07@gmail.com> wrote: > > > > On 13 Nov 2021, at 22:09, rcombs wrote: > > > >> This is required for VP9 to work. > >> --- > >> libavcodec/videotoolbox.c | 7 +++++++ > >> 1 file changed, 7 insertions(+) > >> > >> diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c > >> index 18cc589d2a..0666446dbd 100644 > >> --- a/libavcodec/videotoolbox.c > >> +++ b/libavcodec/videotoolbox.c > >> @@ -32,6 +32,7 @@ > >> #include "h264dec.h" > >> #include "hevcdec.h" > >> #include "mpegvideo.h" > >> +#include <Availability.h> > >> #include <TargetConditionals.h> > >> > >> #ifndef kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder > >> @@ -864,6 +865,12 @@ static int videotoolbox_start(AVCodecContext *avctx) > >> break; > >> } > >> > >> +#ifdef __MAC_10_11 > >> + if (__builtin_available(macOS 10.11, *)) { > >> + VTRegisterSupplementalVideoDecoderIfAvailable(videotoolbox->cm_codec_type); > >> + } > >> +#endif > >> + > > > > The VTRegisterSupplementalVideoDecoderIfAvailable is available since macOS 11 according to the > > header annotations: > > > > VT_EXPORT void VTRegisterSupplementalVideoDecoderIfAvailable( CMVideoCodecType codecType ) API_AVAILABLE(macosx(11.0)) API_UNAVAILABLE(ios, watchos, tvos); > > > > I guess you meant to check for macOS 11 here but accidentally used 10.11? > > Ah, good catch! Fixed. > > > > > Additionally a more reliable/correct way for the SDK preprocessor check would be: > > > > #if (!TARGET_OS_IPHONE && MAC_OS_X_VERSION_MAX_ALLOWED >= 110000) > > How's this, using AvailabilityMacros.h? > > #if defined(MAC_OS_VERSION_11_0) && !TARGET_OS_IPHONE && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0) > MAX_ALLOWED seems like the wrong variable to use for me. Shouldn't this be MAC_OS_X_VERSION_MIN_REQUIRED (or, both), so that I can still target 10.15 or whatever with -mmacosx-version-min=10.15 without linking in unavailable functions? - Hendrik
> On Nov 14, 2021, at 02:41, Hendrik Leppkes <h.leppkes@gmail.com> wrote: > > On Sun, Nov 14, 2021 at 3:40 AM Ridley Combs <rcombs@rcombs.me <mailto:rcombs@rcombs.me>> wrote: >> >> >> >>> On Nov 13, 2021, at 18:38, Marvin Scholz <epirat07@gmail.com> wrote: >>> >>> On 13 Nov 2021, at 22:09, rcombs wrote: >>> >>>> This is required for VP9 to work. >>>> --- >>>> libavcodec/videotoolbox.c | 7 +++++++ >>>> 1 file changed, 7 insertions(+) >>>> >>>> diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c >>>> index 18cc589d2a..0666446dbd 100644 >>>> --- a/libavcodec/videotoolbox.c >>>> +++ b/libavcodec/videotoolbox.c >>>> @@ -32,6 +32,7 @@ >>>> #include "h264dec.h" >>>> #include "hevcdec.h" >>>> #include "mpegvideo.h" >>>> +#include <Availability.h> >>>> #include <TargetConditionals.h> >>>> >>>> #ifndef kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder >>>> @@ -864,6 +865,12 @@ static int videotoolbox_start(AVCodecContext *avctx) >>>> break; >>>> } >>>> >>>> +#ifdef __MAC_10_11 >>>> + if (__builtin_available(macOS 10.11, *)) { >>>> + VTRegisterSupplementalVideoDecoderIfAvailable(videotoolbox->cm_codec_type); >>>> + } >>>> +#endif >>>> + >>> >>> The VTRegisterSupplementalVideoDecoderIfAvailable is available since macOS 11 according to the >>> header annotations: >>> >>> VT_EXPORT void VTRegisterSupplementalVideoDecoderIfAvailable( CMVideoCodecType codecType ) API_AVAILABLE(macosx(11.0)) API_UNAVAILABLE(ios, watchos, tvos); >>> >>> I guess you meant to check for macOS 11 here but accidentally used 10.11? >> >> Ah, good catch! Fixed. >> >>> >>> Additionally a more reliable/correct way for the SDK preprocessor check would be: >>> >>> #if (!TARGET_OS_IPHONE && MAC_OS_X_VERSION_MAX_ALLOWED >= 110000) >> >> How's this, using AvailabilityMacros.h? >> >> #if defined(MAC_OS_VERSION_11_0) && !TARGET_OS_IPHONE && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0) >> > > MAX_ALLOWED seems like the wrong variable to use for me. Shouldn't > this be MAC_OS_X_VERSION_MIN_REQUIRED (or, both), so that I can still > target 10.15 or whatever with -mmacosx-version-min=10.15 without > linking in unavailable functions? The calls are behind __builtin_available, so they'll be weak-linked and only execute on macOS versions that include the relevant functions. MAX_ALLOWED is meant to indicate the latest version you want to even weakly link functions from (it doesn't actually mean the maximum supported version). > > - Hendrik > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel <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/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c index 18cc589d2a..0666446dbd 100644 --- a/libavcodec/videotoolbox.c +++ b/libavcodec/videotoolbox.c @@ -32,6 +32,7 @@ #include "h264dec.h" #include "hevcdec.h" #include "mpegvideo.h" +#include <Availability.h> #include <TargetConditionals.h> #ifndef kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder @@ -864,6 +865,12 @@ static int videotoolbox_start(AVCodecContext *avctx) break; } +#ifdef __MAC_10_11 + if (__builtin_available(macOS 10.11, *)) { + VTRegisterSupplementalVideoDecoderIfAvailable(videotoolbox->cm_codec_type); + } +#endif + decoder_spec = videotoolbox_decoder_config_create(videotoolbox->cm_codec_type, avctx); if (!decoder_spec) {