Blocking state change with lost NAS connection

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Blocking state change with lost NAS connection

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

gstreamer-devel mailing list
[hidden email]