mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-02-20 01:40:28 -05:00
Specify "Audio" in gstreamer sink/src metadata to fix autodetect
gst-play uses autoaudiosink by default when playing audio, which iterates over all sinks sorting them by rank. By default, pipewiresink sets the rank to 0, but it can be overridden by setting the GST_PLUGIN_FEATURE_RANK env. var. like this: `GST_PLUGIN_FEATURE_RANK=pipewiresink:268 gst-play-1.0 /usr/share/sounds/alsa/test.wav` But that doesn't work either because the autoaudiosink plugin also filters the available options, testing for "Sink" and "Audio" to appear in the classification metadata (in the strstr comparison in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-good/gst/autodetect/gstautodetect.c?ref_type=heads#L220 klass is what's set by pipewire as classification, self->type_klass is "Sink" and self->media_klass is "Audio") Just adding the word Audio to the classification metadata fixes this and allows pipewiresink to be selected by autoaudiosink. I also set it in the source plugin since looking at the code, autoaudiosrc works exactly the same.
This commit is contained in:
parent
e5c810c0fa
commit
f3b20ae1e2
2 changed files with 4 additions and 4 deletions
|
|
@ -209,8 +209,8 @@ gst_pipewire_sink_class_init (GstPipeWireSinkClass * klass)
|
|||
gstelement_class->change_state = gst_pipewire_sink_change_state;
|
||||
|
||||
gst_element_class_set_static_metadata (gstelement_class,
|
||||
"PipeWire sink", "Sink/Video",
|
||||
"Send video to PipeWire", "Wim Taymans <wim.taymans@gmail.com>");
|
||||
"PipeWire sink", "Sink/Audio/Video",
|
||||
"Send audio/video to PipeWire", "Wim Taymans <wim.taymans@gmail.com>");
|
||||
|
||||
gst_element_class_add_pad_template (gstelement_class,
|
||||
gst_static_pad_template_get (&gst_pipewire_sink_template));
|
||||
|
|
|
|||
|
|
@ -402,8 +402,8 @@ gst_pipewire_src_class_init (GstPipeWireSrcClass * klass)
|
|||
gstelement_class->send_event = gst_pipewire_src_send_event;
|
||||
|
||||
gst_element_class_set_static_metadata (gstelement_class,
|
||||
"PipeWire source", "Source/Video",
|
||||
"Uses PipeWire to create video", "Wim Taymans <wim.taymans@gmail.com>");
|
||||
"PipeWire source", "Source/Audio/Video",
|
||||
"Uses PipeWire to create audio/video", "Wim Taymans <wim.taymans@gmail.com>");
|
||||
|
||||
gst_element_class_add_pad_template (gstelement_class,
|
||||
gst_static_pad_template_get (&gst_pipewire_src_template));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue