I’m just looking at the bug https://trac.ffmpeg.org/ticket/8789
And I found that in this case, VTDecompressionSessionCreate will fail and 
return  kVTVideoDecoderNotAvailableNowErr

While according to the document of [VTDecompressionSessionCreate], it is 
possible to give a null
And let videotoolbox to choose a decoder.
https://developer.apple.com/documentation/videotoolbox/1536134-vtdecompressionsessioncreate?language=occ

So I think it is worth to have a second try(if we fail to create decode session 
in the first time).
On Aug 1, 2020, 11:50 PM +0800, Mark Thompson <s...@jkqxz.net>, wrote:
> On 01/08/2020 16:25, Wang Chuan wrote:
> > If we fail to create a decoder specified by ourself, then try to
> > let VideoToolbox pick a proper one for us.
> >
> > Signed-off-by: Wang Chuan <ouchu...@outlook.com>
> > ---
> > libavcodec/videotoolbox.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
> > index 8773de3393..9077647e25 100644
> > --- a/libavcodec/videotoolbox.c
> > +++ b/libavcodec/videotoolbox.c
> > @@ -837,6 +837,10 @@ static int videotoolbox_start(AVCodecContext *avctx)
> > &decoder_cb, // outputCallback
> > &videotoolbox->session); // decompressionSessionOut
> >
> > + // if we cannot create a decode session specified by ourself, then that 
> > videotoolbox pick one for us
> > + if (status == kVTVideoDecoderNotAvailableNowErr)
> > + status = VTDecompressionSessionCreate(NULL, videotoolbox->cm_fmt_desc, 
> > NULL, buf_attr, &decoder_cb, &videotoolbox->session);
> > +
> > if (decoder_spec)
> > CFRelease(decoder_spec);
> > if (buf_attr)
> >
>
> Can you explain why?
>
> Looking at the code, it seems like the main consequence of this is to allow 
> decoders to be created which have not been given the extradata header, and 
> that isn't obviously a positive change. (Does
> decoding a stream with a global header still work if this path is taken?)
>
> - Mark
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-requ...@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-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to