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

Mark Thompson sw at jkqxz.net
Sun Apr 26 21:20:27 EEST 2020


On 24/04/2020 15:52, 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 680f0f1dfb..de5bc51bee 100644
> --- a/fftools/ffmpeg_opt.c
> +++ b/fftools/ffmpeg_opt.c
> @@ -565,7 +565,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;
>      }
>  }

I fixed the setup which was making you want to hack devices like this.  See <http://git.videolan.org/?p=ffmpeg.git;a=commit;h=8abd3b202821e9c491f44d097686402aafdda7c5>.

- Mark


More information about the ffmpeg-devel mailing list