[FFmpeg-devel] [PATCH v1 1/3] lavc/decode: Add get_hw_config function

Anton Khirnov anton at khirnov.net
Tue Aug 16 14:22:37 EEST 2022


The commit message is misleading - you are not adding code, you are
moving code.

Quoting Fei Wang (2022-08-12 14:55:43)
> 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 | 33 +++++++++++++++++++++------------
>  1 file changed, 21 insertions(+), 12 deletions(-)
> 
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index 75373989c6..d66d5a4160 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -1156,6 +1156,26 @@ 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;
> +    int i;

Should be declared in the loop

> +    if (ffcodec(avctx->codec)->hw_configs) {
> +        for (i = 0;; i++) {
> +            hw_config = ffcodec(avctx->codec)->hw_configs[i];
> +            if (!hw_config)
> +                break;

return NULL;

> +            if (hw_config->public.pix_fmt == fmt)
> +                break;

return hw_config;

> +        }
> +    } else {
> +        hw_config = NULL;
> +    }

You can save one level of indentation by starting with

if (!ffcodec(avctx->codec)->hw_configs)
    return NULL;

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list