Va: Vaav1dec not loaded
We trying to use the va plugins for video decoding. VaH264, vaH265, vaVP8, vaVP9 works as they should. But vaAv1 is missing. I have tried to use gst-inspect-1.0 to check what is loaded and what is part of the plugin so file.
gst-inspect-1.0 --version
gst-inspect-1.0 version 1.20.5
GStreamer 1.20.5
gst-inspect-1.0 /usr/lib/gstreamer-1.0/libgstva.so /usr/lib/gstreamer-1.0/libgstva.so
Plugin Details:
Name va
Description VA-API codecs plugin
Filename /usr/lib/gstreamer-1.0/libgstva.so
Version 1.20.5
License LGPL
Source module gst-plugins-bad
Source release date 2022-12-19
Binary package GStreamer Bad Plug-ins source release
Origin URL Unknown package origin
vadeinterlace: VA-API Deinterlacer
vah264dec: VA-API H.264 Decoder
vah265dec: VA-API H.265 Decoder
vampeg2dec: VA-API Mpeg2 Decoder
vapostproc: VA-API Video Postprocessor
vavp8dec: VA-API VP8 Decoder
vavp9dec: VA-API VP9 Decoder
7 features:
+-- 7 elements
gst-inspect-1.0 | grep av1
videoparsersbad: av1parse: AV1 parser
gst-inspect-1.0 | grep va:
typefindfunctions: video/x-pva: pva
va: vadeinterlace: VA-API Deinterlacer
va: vah264dec: VA-API H.264 Decoder
va: vah265dec: VA-API H.265 Decoder
va: vampeg2dec: VA-API Mpeg2 Decoder
va: vapostproc: VA-API Video Postprocessor
va: vavp8dec: VA-API VP8 Decoder
va: vavp9dec: VA-API VP9 Decoder
I checked the source code for the plugin and there are several #if VA_CHECK_VERSION(1, 8, 0) around the av1 code. We have version 2.14. I have checked with grep for strings inside this block of code and they are present in libgstva.so.
grep AV1 /usr/lib/gstreamer-1.0/libgstva.so /usr/lib/gstreamer-1.0/libgstva.so
/usr/lib/gstreamer-1.0/libgstva.so:Failed to register AV1 decoder: %s
/usr/lib/gstreamer-1.0/libgstva.so:VAProfileAV1Profile0
/usr/lib/gstreamer-1.0/libgstva.so:VAProfileAV1Profile1
/usr/lib/gstreamer-1.0/libgstva.so:VA-API AV1 Decoder in %s
/usr/lib/gstreamer-1.0/libgstva.so:VA-API AV1 Decoder
/usr/lib/gstreamer-1.0/libgstva.so:VA AV1 decoder
/usr/lib/gstreamer-1.0/libgstva.so:GstVa%sAV1Dec
/usr/lib/gstreamer-1.0/libgstva.so:GstVaAV1Dec
/usr/lib/gstreamer-1.0/libgstva.so:VA-API based AV1 video decoder
/usr/lib/gstreamer-1.0/libgstva.so:Failed to register AV1 decoder: %s
/usr/lib/gstreamer-1.0/libgstva.so:VAProfileAV1Profile0
/usr/lib/gstreamer-1.0/libgstva.so:VAProfileAV1Profile1
/usr/lib/gstreamer-1.0/libgstva.so:VA-API AV1 Decoder in %s
/usr/lib/gstreamer-1.0/libgstva.so:VA-API AV1 Decoder
/usr/lib/gstreamer-1.0/libgstva.so:VA AV1 decoder
/usr/lib/gstreamer-1.0/libgstva.so:GstVa%sAV1Dec
/usr/lib/gstreamer-1.0/libgstva.so:GstVaAV1Dec
/usr/lib/gstreamer-1.0/libgstva.so:VA-API based AV1 video decoder
I have also tried to use GST_DEBUG to turn on debug log and checked for any output connected to vaav1 but without any luck.
How do we best debug what is causing vaav1dec to be missing?