[FFmpeg-devel] [PATCH 03/13] lavc: Use hardware config information in ff_get_format()

Philip Langdale philipl at overt.org
Tue Nov 21 05:56:51 EET 2017


On Sat, 18 Nov 2017 19:15:32 +0000
Mark Thompson <sw at jkqxz.net> wrote:

> On 18/11/17 18:47, Mark Thompson wrote:
> > This removes the dependency that hardware pixel formats previously
> > had on AVHWAccel instances, meaning only those which actually do
> > something need exist after this patch.
> > 
> > Also updates avcodec_default_get_format() to be able to choose
> > hardware formats if either a matching device has been supplied or
> > no additional external configuration is required, and
> > avcodec_get_hw_frames_parameters() to use the hardware config
> > rather than searching the old hwaccel list.
> > 
> > The FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS mechanism is deleted because
> > it no longer does anything (the codec already contains the pointers
> > to the matching hwaccels).
> > ---
> >  libavcodec/avcodec.h  |   7 --
> >  libavcodec/cuviddec.c |   2 -
> >  libavcodec/decode.c   | 285
> > +++++++++++++++++++++++++++++++++++---------------
> > libavcodec/internal.h |  11 +- 4 files changed, 208 insertions(+),
> > 97 deletions(-)
> > 
> > diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> > index a7f1e23fc2..8b2bec1ce9 100644
> > --- a/libavcodec/decode.c
> > +++ b/libavcodec/decode.c
> > ...
> > +        for (i = 0;; i++) {
> > +            hw_config = avctx->codec->hw_configs[i];
> > +            if (!hw_config)
> > +                break;
> > +            if (hw_config->public.pix_fmt == user_choice)
> >                  break;
> > -            }
> >          }  
> 
> This needs to check for avctx->codec->hw_configs being non-NULL, and
> immediately fall into the below case if it isn't.  (Stupidly I was
> only testing with codecs where it's set...)
>
> >  
> > -        if (!setup_hwaccel(avctx, ret, desc->name))
> > +        if (!hw_config) {
> > +            // No config available, so no extra setup required.
> > +            ret = user_choice;
> >              break;
> > +        }  
> 
> Fixed locally.

Looks fine with the fix.

> 
> - Mark
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel




--phil


More information about the ffmpeg-devel mailing list