[FFmpeg-devel] [PATCH v3 3/3] Update QSV after adding support for VAAPI on Windows:

Hendrik Leppkes h.leppkes at gmail.com
Wed Apr 12 19:18:11 EEST 2023


On Wed, Apr 12, 2023 at 2:28 PM Sil Vilerino
<sivileri-at-microsoft.com at ffmpeg.org> wrote:
>
> - qsv_internal.h: Remove unnecessary include va_drm.h
> - qsv_internal.h: Enable AVCODEC_QSV_LINUX_SESSION_HANDLE on Linux/VA only
> - hwcontext_qsv.c: Do not allow child_device_type VAAPI for Windows until support is added, keep D3D11/DXVA2 as more prioritary defaults.
>
> Initial review at https://github.com/intel-media-ci/ffmpeg/pull/619/
> Reviewed-by: Dmitry Rogozhkin <dmitry.v.rogozhkin at intel.com>
> Reviewed-by: Wu, Tong1 <tong1.wu at intel.com>
> ---
>  libavcodec/qsv_internal.h |  5 ++---
>  libavutil/hwcontext_qsv.c | 14 ++++++++++++--
>  2 files changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/libavcodec/qsv_internal.h b/libavcodec/qsv_internal.h
> index 5119ef4dff..df5e1e05ca 100644
> --- a/libavcodec/qsv_internal.h
> +++ b/libavcodec/qsv_internal.h
> @@ -23,9 +23,9 @@
>
>  #include "config.h"
>
> -#if CONFIG_VAAPI
> +#if CONFIG_VAAPI && !_WIN32 // Do not enable for libva-win32 on Windows

Shouldn't this be defined(_WIN32), same below?

>  #define AVCODEC_QSV_LINUX_SESSION_HANDLE
> -#endif //CONFIG_VAAPI
> +#endif //CONFIG_VAAPI && !_WIN32
>
>  #ifdef AVCODEC_QSV_LINUX_SESSION_HANDLE
>  #include <stdio.h>
> @@ -35,7 +35,6 @@
>  #endif
>  #include <fcntl.h>
>  #include <va/va.h>
> -#include <va/va_drm.h>
>  #include "libavutil/hwcontext_vaapi.h"
>  #endif
>
> diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
> index 6780428875..71212b177a 100644
> --- a/libavutil/hwcontext_qsv.c
> +++ b/libavutil/hwcontext_qsv.c
> @@ -2126,8 +2126,6 @@ static int qsv_device_create(AVHWDeviceContext *ctx, const char *device,
>                     "\"%s\".\n", e->value);
>              return AVERROR(EINVAL);
>          }
> -    } else if (CONFIG_VAAPI) {
> -        child_device_type = AV_HWDEVICE_TYPE_VAAPI;
>  #if QSV_ONEVPL
>      } else if (CONFIG_D3D11VA) {  // Use D3D11 by default if d3d11va is enabled
>          av_log(ctx, AV_LOG_VERBOSE,
> @@ -2147,11 +2145,23 @@ static int qsv_device_create(AVHWDeviceContext *ctx, const char *device,
>      } else if (CONFIG_D3D11VA) {
>          child_device_type = AV_HWDEVICE_TYPE_D3D11VA;
>  #endif
> +    } else if (CONFIG_VAAPI) {
> +        child_device_type = AV_HWDEVICE_TYPE_VAAPI;
>      } else {
>          av_log(ctx, AV_LOG_ERROR, "No supported child device type is enabled\n");
>          return AVERROR(ENOSYS);
>      }
>
> +#if CONFIG_VAAPI && _WIN32
> +    /* AV_HWDEVICE_TYPE_VAAPI on Windows/Libva-win32 not supported */
> +    /* Reject user specified child_device_type or CONFIG_VAAPI on Windows */
> +    if (child_device_type == AV_HWDEVICE_TYPE_VAAPI) {
> +        av_log(ctx, AV_LOG_ERROR, "VAAPI child device type not supported for oneVPL on Windows"
> +                "\"%s\".\n", e->value);
> +        return AVERROR(EINVAL);
> +    }
> +#endif
> +
>      child_device_opts = NULL;
>      switch (child_device_type) {
>  #if CONFIG_VAAPI
> --
> 2.39.2.vfs.0.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