[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