[Bug 739985] New: rtpsession: feedback rtcp queue grows indefinitely until session end

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Nov 11 13:26:19 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=739985
  GStreamer | gst-plugins-good | 1.4.4

           Summary: rtpsession:  feedback rtcp queue grows indefinitely
                    until session end
    Classification: Platform
           Product: GStreamer
           Version: 1.4.4
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: jlitzinger at control4.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


In short, when an rtcp feedback packet is received, it is queued based on the
value of rtcp_feedback_retention_window, which defaults to 2 seconds.  The
queue is pruned periodically in rtp_source_timeout() according to:

   while ((pkt = g_queue_peek_tail (src->retained_feedback)) &&
      GST_BUFFER_TIMESTAMP (pkt) < feedback_retention_window)
    gst_buffer_unref (g_queue_pop_tail (src->retained_feedback));

The problem is that the buffer timestamp, set when queued, comes from the
packet info's running time field:

rtp_session_process_feedback():
<snip>
  rtp_source_retain_rtcp_packet (src, packet, pinfo->running_time)

And is initialized in rtp_session_process_rtcp() with -1:

  update_packet_info (sess, &pinfo, FALSE, FALSE, FALSE, buffer, current_time,
      -1, ntpnstime);

In a setup with a high quantity of NACKs, this results in a queue of
significant size.

It seems like pinfo->current_time might be a better field to use for the buffer
timestamp, but that's speculation on my part.

-- 
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