[FFmpeg-devel] [PATCH V2] lavu/qsv: remove the redundant libmfx init code

Mark Thompson sw at jkqxz.net
Wed Sep 11 01:33:56 EEST 2019


On 05/09/2019 06:24, Zhong Li wrote:
> Signed-off-by: Zhong Li <zhong.li at intel.com>
> ---
>  libavutil/hwcontext_qsv.c | 24 ++----------------------
>  1 file changed, 2 insertions(+), 22 deletions(-)
> 
> diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
> index 0329a81..1c0e4ff 100644
> --- a/libavutil/hwcontext_qsv.c
> +++ b/libavutil/hwcontext_qsv.c
> @@ -1145,27 +1145,6 @@ static int qsv_device_derive_from_child(AVHWDeviceContext *ctx,
>  
>      err = MFXInit(implementation, &ver, &hwctx->session);
>      if (err != MFX_ERR_NONE) {
> -        av_log(ctx, AV_LOG_ERROR, "Error initializing an MFX session: "
> -               "%d.\n", err);
> -        ret = AVERROR_UNKNOWN;
> -        goto fail;
> -    }
> -
> -    err = MFXQueryVersion(hwctx->session, &ver);
> -    if (err != MFX_ERR_NONE) {
> -        av_log(ctx, AV_LOG_ERROR, "Error querying an MFX session: %d.\n", err);
> -        ret = AVERROR_UNKNOWN;
> -        goto fail;
> -    }
> -
> -    av_log(ctx, AV_LOG_VERBOSE,
> -           "Initialize MFX session: API version is %d.%d, implementation version is %d.%d\n",
> -           MFX_VERSION_MAJOR, MFX_VERSION_MINOR, ver.Major, ver.Minor);
> -
> -    MFXClose(hwctx->session);
> -
> -    err = MFXInit(implementation, &ver, &hwctx->session);
> -    if (err != MFX_ERR_NONE) {
>          av_log(ctx, AV_LOG_ERROR,
>                 "Error initializing an MFX session: %d.\n", err);
>          ret = AVERROR_UNKNOWN;
> @@ -1182,7 +1161,8 @@ static int qsv_device_derive_from_child(AVHWDeviceContext *ctx,
>  
>      ret = MFXQueryVersion(hwctx->session,&ver);
>      if (ret == MFX_ERR_NONE) {
> -        av_log(ctx, AV_LOG_VERBOSE, "MFX compile/runtime API: %d.%d/%d.%d\n",
> +        av_log(ctx, AV_LOG_VERBOSE,
> +               "Initialize MFX session: API version is %d.%d, implementation version is %d.%d\n",
>                 MFX_VERSION_MAJOR, MFX_VERSION_MINOR, ver.Major, ver.Minor);
>      }
>      return 0;
> 

Can you add some more explanation?  The extra session checking the version is not obviously redundant, and the commit log does indicate that the setup was deliberate:

commit ccbb31c14b766ef666ef2daa8c467e478183a957
Author: Luca Barbato <lu_zero at gentoo.org>
Date:   Mon Sep 25 09:57:30 2017 +0000

    qsv: Make sure the session is set with the latest version
    
    It is needed to have the calls to MFXJoinSession succeed.


- Mark


More information about the ffmpeg-devel mailing list