diff options
author | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2019-07-11 19:08:49 +0300 |
---|---|---|
committer | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2019-07-12 12:51:18 +0300 |
commit | e0ab5e6b815ab7a063321ce333540bac57dd5823 (patch) | |
tree | 78d8bab3bd749c85def96e562b6f6e7e1e89391d /binding | |
parent | fb88a1aad8654810e51c04c918468b623ac9e92e (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
Diffstat (limited to 'binding')
-rw-r--r-- | binding/radio_output_gstreamer.c | 3 |
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); |