Blocking state change with lost NAS connection

Diederik Pattyn diederik.pattyn at basalte.be
Tue Feb 16 14:56:01 UTC 2021


Hi everyone

I'm currently working on a music application, which should be able to play music stored on a NAS.
The application and the pipeline work well under normal circumstances, but problems occur when I disconnect the NAS from the network and want to start another song from an http source.
First, the pipeline is set to READY and afterwards I can change the uri of the uridecodebin to the new desired location.
However, changing the state to READY seems to block for quite some time (several minutes).
There are also no error messages posted on the GstBus like e.g. souphttpsrc does when there is a network issue.

I was able to reproduce the issue in some form with a simplified pipeline and gst-launch.
When the pipeline starts playing, I disconnect the NAS and wait until the music stops playing to interrupt the process with ctrl-c.
Here as well, the process seems to block for some time when changing to READY.
➜  ~ gst-launch-1.0 uridecodebin uri="smb://raspberrypi.local/share/test.mp3" ! audioconvert ! autoaudiosink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstPulseSinkClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:01:06.536854616
Setting pipeline to PAUSED ...
Setting pipeline to READY ...     <- stuck here for +/- one minute
Setting pipeline to NULL ...
Freeing pipeline ...
Does anyone have a suggestion to deal with sudden connection issues with a NAS?

Kind regards
Diederik Pattyn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210216/f472a316/attachment-0001.htm>


More information about the gstreamer-devel mailing list