[FFmpeg-devel] [PATCH v3 1/3] lavc/decode: Warp get_hw_config function
Xiang, Haihao
haihao.xiang at intel.com
Wed Sep 7 11:47:16 EEST 2022
On Wed, 2022-08-31 at 01:20 +0000, Wang, Fei W wrote:
> On Tue, 2022-08-23 at 16:19 +0800, Fei Wang wrote:
> > From: Linjie Fu <linjie.fu at intel.com>
> >
> > Wrap the procedure of getting the hardware config from a pixel format
> > into a function.
> >
> > Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> > Signed-off-by: Fei Wang <fei.w.wang at intel.com>
> > ---
> > libavcodec/decode.c | 31 +++++++++++++++++++------------
> > 1 file changed, 19 insertions(+), 12 deletions(-)
> >
> > diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> > index 75373989c6..3b69426c09 100644
> > --- a/libavcodec/decode.c
> > +++ b/libavcodec/decode.c
> > @@ -1156,6 +1156,24 @@ static void hwaccel_uninit(AVCodecContext
> > *avctx)
> > av_buffer_unref(&avctx->hw_frames_ctx);
> > }
> >
> > +static const AVCodecHWConfigInternal *get_hw_config(AVCodecContext
> > *avctx, enum AVPixelFormat fmt)
> > +{
> > + const AVCodecHWConfigInternal *hw_config;
> > +
> > + if (!ffcodec(avctx->codec)->hw_configs)
> > + return NULL;
> > +
> > + for (int i = 0;; i++) {
> > + hw_config = ffcodec(avctx->codec)->hw_configs[i];
> > + if (!hw_config)
> > + return NULL;
> > + if (hw_config->public.pix_fmt == fmt)
> > + return hw_config;
> > + }
> > +
> > + return NULL;
> > +}
> > +
> > int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat
> > *fmt)
> > {
> > const AVPixFmtDescriptor *desc;
> > @@ -1213,18 +1231,7 @@ int ff_get_format(AVCodecContext *avctx, const
> > enum AVPixelFormat *fmt)
> > break;
> > }
> >
> > - if (ffcodec(avctx->codec)->hw_configs) {
> > - for (i = 0;; i++) {
> > - hw_config = ffcodec(avctx->codec)->hw_configs[i];
> > - if (!hw_config)
> > - break;
> > - if (hw_config->public.pix_fmt == user_choice)
> > - break;
> > - }
> > - } else {
> > - hw_config = NULL;
> > - }
> > -
> > + hw_config = get_hw_config(avctx, user_choice);
> > if (!hw_config) {
> > // No config available, so no extra setup required.
> > ret = user_choice;
>
> Ping, any more comments on V3?
>
The patchset LGTM and works well for me, I'll apply this patchset if no more
comment.
-Haihao
More information about the ffmpeg-devel
mailing list