summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2019-07-11 19:08:49 +0300
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2019-07-12 12:51:18 +0300
commite0ab5e6b815ab7a063321ce333540bac57dd5823 (patch)
tree78d8bab3bd749c85def96e562b6f6e7e1e89391d
parentfb88a1aad8654810e51c04c918468b623ac9e92e (diff)
radio: gstreamer: use pwaudiosink instead of alsasinkhalibut_7.99.3halibut/7.99.37.99.3
This native pipewire sink has better performance and allows 1) properly selecting the role of the app 2) proper handling of the situation where another app with higher priority has taken over the audio stream Bug-AGL: SPEC-2634 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I9d0ea9ff475817c0944dd7c2b6d153f149abc957
-rw-r--r--binding/radio_output_gstreamer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/binding/radio_output_gstreamer.c b/binding/radio_output_gstreamer.c
index f492bb5..6b938fd 100644
--- a/binding/radio_output_gstreamer.c
+++ b/binding/radio_output_gstreamer.c
@@ -61,7 +61,7 @@ int radio_output_open()
queue = gst_element_factory_make("queue", "queue");
convert = gst_element_factory_make("audioconvert", "convert");
resample = gst_element_factory_make("audioresample", "resample");
- sink = gst_element_factory_make("alsasink", "sink");
+ sink = gst_element_factory_make("pwaudiosink", "sink");
if(!(pipeline && appsrc && queue && convert && resample && sink)) {
fprintf(stderr, "pipeline element construction failed!\n");
}
@@ -73,6 +73,7 @@ int radio_output_open()
"layout", G_TYPE_STRING, "interleaved",
"channel-mask", G_TYPE_UINT64, 3,
NULL), NULL);
+ gst_util_set_object_arg(sink, "stream-properties", "p,media.role=Multimedia");
if((p = getenv("RADIO_OUTPUT"))) {
fprintf(stderr, "Using output device %s\n", p);