[Bug 660156] New: [gstrtpbin] free_stream() does not remove the stream reference from the associated client's stream list

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Sep 26 10:19:49 PDT 2011

  GStreamer | gst-plugins-good | 0.10.x

           Summary: [gstrtpbin] free_stream() does not remove the stream
                    reference from the associated client's stream list
    Classification: Platform
           Product: GStreamer
           Version: 0.10.x
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: sdatar at cisco.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

In free_stream() function, the stream is freed, but the stream reference is not
removed from  the client->streams list and the client->nstreams counter is not
decremented.The stream cleanup logic exists in free_session(). But there are
cases when free_stream() is called without removing the session. One such case
is when the "autoremove" property is set on gstrtpbin. If this property is set,
the rtpjitterbuffer and the ptdemuxer associated with the stream is cleaned up,
but the session might still be receiving media from another SSRC. Now if a new
stream is received from the same client (same cname) as which was removed, the
client->nstreams counter is incremented and now refelcts incorrect number of
streams belonging to this client. As a result in gst_rtp_bin_associate() while
walking the client->streams list, the stale stream is operated upon, causing
assertion failures downstream since the stream's jitterbuffer has already been
cleaned up and is no longer a valid GObject.

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