Gstreamer
Tested a binary that uses gstreamer, but it just segfaulted.
gdb and strace didn’t help much, but setting GST_DEBUG=4
showed a lot what was going on.
To learn something about a certain gstreamer plugin:
$ gst-inspect-1.0 vaapi
Plugin Details:
Name vaapi
Description VA-API based elements
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so
Version 1.20.1
License LGPL
Source module gstreamer-vaapi
Source release date 2022-03-14
Binary package gstreamer-vaapi
Origin URL https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues
vaapidecodebin: VA-API Decode Bin
vaapih264dec: VA-API H264 decoder
vaapih264enc: VA-API H264 encoder
vaapih265dec: VA-API H265 decoder
vaapijpegdec: VA-API JPEG decoder
vaapijpegenc: VA-API JPEG encoder
vaapimpeg2dec: VA-API MPEG2 decoder
vaapipostproc: VA-API video postprocessing
vaapisink: VA-API sink
vaapivp8dec: VA-API VP8 decoder
vaapivp9dec: VA-API VP9 decoder
11 features:
+-- 11 elements
If the plugin is present, but there are 0 elements: this might also be caused by blacklisting of drivers:
$ gst-inspect-1.0 vaapi
Plugin Details:
Name vaapi
Description VA-API based elements
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so
Version 1.16.0
License LGPL
Source module gstreamer-vaapi
Source release date 2019-04-19
Binary package gstreamer-vaapi
Origin URL http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
0 features:
To verify it is just the blacklist, use this variable:
$ GST_VAAPI_ALL_DRIVERS=all gst-inspect-1.0 vaapi
Plugin Details:
Name vaapi
Description VA-API based elements
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so
Version 1.16.0
License LGPL
Source module gstreamer-vaapi
Source release date 2019-04-19
Binary package gstreamer-vaapi
Origin URL http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
vaapih264enc: VA-API H264 encoder
vaapijpegenc: VA-API JPEG encoder
vaapisink: VA-API sink
vaapidecodebin: VA-API Decode Bin
vaapipostproc: VA-API video postprocessing
vaapih265dec: VA-API H265 decoder
vaapivp9dec: VA-API VP9 decoder
vaapivp8dec: VA-API VP8 decoder
vaapih264dec: VA-API H264 decoder
vaapimpeg2dec: VA-API MPEG2 decoder
vaapijpegdec: VA-API JPEG decoder
11 features:
+-- 11 elements
Other codecs that can do H.264 encoding are openh264:
$ gst-inspect-1.0 openh264
Plugin Details:
Name openh264
Description OpenH264 encoder/decoder plugin
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopenh264.so
Version 1.16.0
License BSD
Source module gst-plugins-bad
Source release date 2019-04-19
Binary package GStreamer Bad Plugins (Ubuntu)
Origin URL https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad1.0
openh264enc: OpenH264 video encoder
openh264dec: OpenH264 video decoder
2 features:
+-- 2 elements
x264, but that is from “ugly”:
$ gst-inspect-1.0 x264
Plugin Details:
Name x264
Description libx264-based H.264 encoder plugin
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstx264.so
Version 1.20.1
License GPL
Source module gst-plugins-ugly
Source release date 2022-03-14
Binary package GStreamer Ugly Plugins (Ubuntu)
Origin URL https://launchpad.net/distros/ubuntu/+source/gst-plugins-ugly1.0
x264enc: x264 H.264 Encoder
1 features:
+-- 1 elements
Fluendo codecs: fluvah264enc and, fluh264enc. But I don’t have them.