[FFmpeg-devel] [PATCH v2 1/4] fftools/qsv: enabling d3d11va/dxva2 device selection

Steve Lhomme robux4 at ycbcr.xyz
Tue Apr 21 13:25:23 EEST 2020


Hi,

On 2020-04-15 15:07, artem.galin at gmail.com wrote:
> From: Artem Galin <artem.galin at intel.com>
> 
> child_device_type argument is responsible for selection.
> 
> Usage examples: -init_hw_device qsv:hw,child_device_type=d3d11va
>                  -init_hw_device qsv:hw,child_device_type=dxva2
> 
> Signed-off-by: Artem Galin <artem.galin at intel.com>
> ---
>   fftools/ffmpeg_opt.c | 12 +++++++++++-
>   1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
> index 95001a963f..82232c60b3 100644
> --- a/fftools/ffmpeg_opt.c
> +++ b/fftools/ffmpeg_opt.c
> @@ -568,7 +568,17 @@ static int opt_init_hw_device(void *optctx, const char *opt, const char *arg)
>           printf("\n");
>           exit_program(0);
>       } else {
> -        return hw_device_init_from_string(arg, NULL);
> +        HWDevice *dev;
> +        int err;
> +        if (!arg)
> +            return AVERROR(ENOMEM);
> +        err = hw_device_init_from_string(arg, &dev);
> +        if (err < 0)
> +            return err;
> +        hw_device_ctx = av_buffer_ref(dev->device_ref);
> +        if (!hw_device_ctx)
> +            return AVERROR(ENOMEM);
> +        return 0;

This is very similar to what is done in opt_vaapi_device().

Maybe you could modify the "qsv_device" handling to support this ? It 
will be ifdef'ed out when QSV is not enabled.

There might also be some side effects for other hardware devices. 
Especially the hw_device_ctx reference doesn't seem to be released (but 
it's the same in opt_vaapi_device so I might be missing something).

>       }
>   }
>   
> -- 
> 2.26.0
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 


More information about the ffmpeg-devel mailing list