Bug 1221160

Summary: GStreamer: proper support for pipewire
Product: [openSUSE] openSUSE Tumbleweed Reporter: Jiri Slaby <jslaby>
Component: SoundAssignee: Antonio Larrosa <alarrosa>
Status: NEW --- QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: pipeline from the gst-play-1.0

Description Jiri Slaby 2024-03-08 07:24:58 UTC
Created attachment 873327 [details]
pipeline from the gst-play-1.0

So Antinio pushed:
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1932/

To support GST_PLUGIN_FEATURE_RANK=pipewiresink:267 or similar.

But it looks like PulseSink is still selected as output:
LANG=en GST_PLUGIN_FEATURE_RANK=pipewiresink:267 GST_DEBUG_DUMP_DOT_DIR=/tmp  gst-play-1.0 /tmp/a.mp3 ; dot -T pdf `ls -rt /tmp/*dot|tail -1`  >/tmp/a.pdf
Comment 1 Jiri Slaby 2024-03-08 07:32:21 UTC
With export GST_PLUGIN_FEATURE_RANK=pipewiresink:267, I correctly see:
$ for a in alsasink pulsesink pipewiresink ; do echo $a; gst-inspect-1.0 $a|grep Rank; done
alsasink
  Rank                     primary (256)
pulsesink
  Rank                     primary + 10 (266)
pipewiresink
  Rank                     primary + 11 (267)
Comment 2 Antonio Larrosa 2024-03-08 08:45:20 UTC
Have you removed the gstreamer cache to be sure the ranks are correctly recalculated? Try doing:

rm ~/.cache/gstreamer-1.0/registry.x86_64.bin

And then test gst-play again.

Also, I'm preparing another patch that adds a configuration file for the pipewire gstreamer plugin so that the rank can be increased automatically by the pipewire-pulseaudio package by dropping a configuration file that modifies the default configuration without setting any environment variable.
Comment 3 Jiri Slaby 2024-03-08 12:03:30 UTC
(In reply to Antonio Larrosa from comment #2)
> Have you removed the gstreamer cache to be sure the ranks are correctly
> recalculated? Try doing:
> 
> rm ~/.cache/gstreamer-1.0/registry.x86_64.bin

Ah, no.

> And then test gst-play again.

Then I see (once):
(gst-play-1.0:20950): GStreamer-WARNING **: 13:02:08.182: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though.


And it still selects pulsesink.
Comment 4 Jiri Slaby 2024-05-17 08:21:36 UTC
So gstreamer is fixed WRT GST_PLUGIN_FEATURE_RANK=pipewiresink:267 in TW already.

Do you plan on setting that by default?