Can't pause the pipeline, when phone has lost network connection

Dmytro Kabyshev dkabyshev at gmail.com
Mon Feb 9 07:46:31 PST 2015


Hello,

I’ve faced with a following issue, while testing different network connectivity scenarios: 
If iPhone has lost network connection while Pipeline was running, it is impossible to stop such pipeline.
The test was performed by simple going into “Airplane mode” while streaming (Camera->RTMP). After that, calling to gst_element_set_state(pipeline, GST_STATE_PAUSED) causes a mutex lock, that wouldn’t be released until network is recovered. 

Target scenario: Pause a pipeline if network was lost, wait (30s), stop it and release, if network is still unreachable after timeout.

I’d really appreciate any help with this one.

This issue appears with GStreamer 1.4.5, iOS 8.1.2
Here’s a pipeline: 
avfvideosrc ! video/x-raw,format=NV12,width=960,height=540,framerate=30/1 ! tee name=tp tp. ! queue ! autovideosink tp. ! queue ! videoconvert ! vtenc_h264 bitrate=2500 max-keyframe-interval-duration=2000000000 max-keyframe-interval=60 allow-frame-reordering=false realtime=true quality=0.5 ! h264parse ! video/x-h264,framerate=30/1,width=960,height=540,stream-format=(string)avc,level=(string)3.1,profile=(string)main ! queue ! mux. autoaudiosrc ! audioconvert ! voaacenc bitrate=64000 ! aacparse ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! flvmux streamable=true name=mux ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! rtmpsink location=‘%url_was_here% live=1’

From what I see, if I pause the execution:
g_mutex_lock <- locks here
gst_base_sink_change_state
gst_element_change_state
gst_element_set_state_func
gst_bin_element_set_state[inlined]
gst_bin_change_state_func
gst_pipeline_change_state
gst_element_change_state
gst_element_set_state_func

Thanks,
Dmytro Kabyshev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150209/6b60a2b7/attachment.html>


More information about the gstreamer-devel mailing list