Add support for the vp9_vaapi encoder
The vp9_vaapi encoder mostly just copies settings from the libvpx-vp9 encoder wherever it was straight forward to do so.
Depends on !90 (merged)
I am unable to test this patch because my integrated AMD GPU does not support VP9 encoding.
Newer Intel GPUs may support VP9. https://www.intel.com/content/www/us/en/docs/onevpl/developer-reference-media-intel-hardware/1-0/overview.html
It seems like AMD GPUs support at most H.264, H.265 and AV1, although I couldn't find a page for AMD that was as clear as the Intel one. https://www.amd.com/en/technologies/software-gaming-media
To see what your GPU supports, install libva-utils and run vainfo
. Codec profiles with VAEntrypointEncSlice
are codecs you can encode with.
❯ vainfo
Trying display: wayland
libva info: VA-API version 1.19.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_19
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.19 (libva 2.19.0)
vainfo: Driver version: Mesa Gallium driver 23.1.8 for AMD Radeon Graphics (renoir, LLVM 17.0.1, DRM 3.54, 6.5.4-1-default)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc