[Bug 739265] rtspsrc: teardown usually never happens

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Apr 8 06:32:39 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=739265

Kseniya Vasilchuk <vasilchukkseniia at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vasilchukkseniia at gmail.com

--- Comment #5 from Kseniya Vasilchuk <vasilchukkseniia at gmail.com> ---
(In reply to Wim Taymans from comment #3)
> This is by design, downward state changes should never block or wait. If 
> you want to wait for shutdown you should use the PROGRESS messages.

I had the same situation with TEARDOWN like Aleix so I tried using progress
messages. When EOS happens, I change pipeline state to STATE_PAUSE and wait for
progress messages (this works fine), after I get GST_PROGRESS_TYPE_COMPLETE I
set pipeline to STATE_READY to close connection and wait for progress messages
again, but this time I get no PROGRESS_MESSAGE_COMPLETE.

When a state changes from PAUSE to READY I expect that CMD_CLOSE will be sent
and other commands will be canceled. But after gst_rtspsrc_thread executes
CMD_PAUSE, it changes current command to CMD_LOOP, so it will never be
interrupted and CMD_CLOSE will never be executed because CMD_CLOSE can only
interrupt CMD_PAUSE but not CMD_LOOP.

Aleix's patch (even without GST_RTSP_STREAM_LOCK/UNLOCK) solves this problem
for me so I think it should be submitted.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list