[gstreamer-bugs] [Bug 475784] New: rtspsrc has race condition between loop_interleaved() and _pause()

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Tue Sep 11 02:50:26 PDT 2007


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=475784

  GStreamer | gst-plugins-good | Ver: HEAD CVS
           Summary: rtspsrc has race condition between loop_interleaved()
                    and _pause()
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: ext-tommi.myohanen at nokia.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


There is a possibility that following happens in rtspsrc element (in TCP mode):

1. In gst_rtspsrc_loop_interleaved() the function
gst_rtspsrc_connection_receive() has just returned with data message.

2. State change PLAYING_TO_PAUSED happens
  --> gst_rtsp_connection_flush(TRUE) is called to interrupt reading from RTSP
      connection, but there is no pending read -> this does nothing

3. gst_rtspsrc_pause() is called
  --> It gets the CONN_LOCK since no-one is holding it at that moment
  --> this calls gst_rtsp_connection_flush(FALSE) -> interrupt message is
      removed from internal message passing pipeline

4. _loop_interleaved() pushes the buffer and exits

5. _loop_interleaved() is called again, since the GstTask is not paused. It 
   does have no idea that playback has been paused.

To put the GstTask properly to paused, there should be a check about this
before calling gst_rtspsrc_connection_receive().


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=475784.




More information about the Gstreamer-bugs mailing list