From 1e345baff0561978d0082b128244dd5f7f3ea39a Mon Sep 17 00:00:00 2001 From: ewired Date: Tue, 24 Feb 2026 23:31:06 -0500 Subject: [PATCH] Improve robustness of playback pipeline --- .../modules/playbackManager.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/yetanotherradio@io.github.buddysirjava/modules/playbackManager.js b/yetanotherradio@io.github.buddysirjava/modules/playbackManager.js index 911da2d..3cf25ef 100644 --- a/yetanotherradio@io.github.buddysirjava/modules/playbackManager.js +++ b/yetanotherradio@io.github.buddysirjava/modules/playbackManager.js @@ -62,9 +62,9 @@ export default class PlaybackManager { this._initGst(); - this._player = Gst.ElementFactory.make('playbin', 'radio-player'); + this._player = Gst.ElementFactory.make('playbin3', 'radio-player'); if (!this._player) { - throw new Error('GStreamer playbin plugin missing'); + throw new Error('GStreamer playbin3 plugin missing'); } const volume = (this._settings.get_int('volume') ?? 100) / 100.0; @@ -73,6 +73,16 @@ export default class PlaybackManager { const fakeVideoSink = Gst.ElementFactory.make('fakesink', 'fake-video-sink'); this._player.set_property('video-sink', fakeVideoSink); + const audioSink = Gst.ElementFactory.make('pulsesink', 'audio-sink'); + if (audioSink) { + audioSink.set_property('buffer-time', 1000000); + audioSink.set_property('latency-time', 50000); + this._player.set_property('audio-sink', audioSink); + } + + this._player.set_property('buffer-size', 5242880); + this._player.set_property('use-buffering', true); + this._bus = this._player.get_bus(); this._bus.add_signal_watch(); this._busHandlerId = this._bus.connect('message', (b, message) => this._handleBusMessage(message));