va: Fails to negotiate with dvdspu
Describe your issue
Trying to play any video containing subpicture/x-dvd
data, va decoders fail to negotiate with dvdspu
element. Currently dvdspu
does not support overlays, thus probably system memory should be negotiated (this happens and works with vaapidecodebin
).
Tested on GStreamer 1.20.2, GNOME Shell, Wayland session (with both Intel and AMD GPUs in different machines).
Attaching a sample that reproduces issue: sample.mkv
Steps to reproduce the bug
GST_PLUGIN_FEATURE_RANK=vah264dec:300 gst-play-1.0 --videosink=glimagesink 'sample.mkv'
Solutions you have tried
Disabling subtitles works (only video+audio flags):
GST_PLUGIN_FEATURE_RANK=vah264dec:300 gst-play-1.0 --videosink=glimagesink 'sample.mkv' --flags=video+audio
Also old vaapi
plugin and avdec_h264
work (both negotiate system memory):
GST_PLUGIN_FEATURE_RANK=vaapidecodebin:300 gst-play-1.0 --videosink=glimagesink 'sample.mkv'
Expected behaviour
va is able to negotiate and works with DVD subtitles like vaapi plugin does
Actual behaviour
Error: streaming stopped, reason not-negotiated (-4)
Related non-duplicate issues
Related issue for lack of GstVideoOverlayComposition
support in dvdspu
: gst-plugins-bad#78 (moved)