[Bug 738279] rtsp-server : Async done message handling in pause and play case

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Oct 29 08:43:54 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=738279
  GStreamer | gst-rtsp-server | 1.4.3

--- Comment #2 from Srimanta Panda <panda_srimanta at yahoo.co.in> 2014-10-29 15:43:52 UTC ---
More explaination on the issue:

In scenario when server is loaded, if you perform pause and play (with range)
during playback mode , rtsp-server play response contains range starting from
0.


Reason:

During the pause, multiudpsink performs a async state change. And later after
the committing the state in basesink element it sends an async done message to
the bus.

But if pause and play is quick enough, before async message arrives to bus, the
play is executed. In rtsp-client.c file it tries to perform
gst_rtsp_media_seek(). And this seek event tries to perform flush-start and
flush-stop and segment events.

But suppose after flush-stop and before newsegment event, the async done
message arrives on rtsp-media bus. Then handle_message() tries to perform
collect_media_stat() and fails on query position because segment event is not
executed yet. This resets the range start to zero.
That's why the we get range starting from zero on play response.

Also inside rtsp_media_seek() the wait_preroll() ends because of the delayed
async done message from the pause (although it should wait for the second async
done from the seek event).

Solution:

Before returning from pause, we should wait for async done message.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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