After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 746814 - rtpsession: Always wait with sending RTCP until we have something to report
rtpsession: Always wait with sending RTCP until we have something to report
Status: RESOLVED DUPLICATE of bug 795139
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
unspecified
Other All
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-03-26 14:09 UTC by Sebastian Dröge (slomo)
Modified: 2018-05-06 15:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtpsession: Always wait with sending RTCP until we have something to report (1.68 KB, patch)
2015-03-26 14:10 UTC, Sebastian Dröge (slomo)
none Details | Review

Description Sebastian Dröge (slomo) 2015-03-26 14:09:56 UTC
See commit message. This breaks the unit test currently because it depends on
rtpsession requesting a clock id from the very beginning for the timeouts...
which now only happens once we received something.
Comment 1 Sebastian Dröge (slomo) 2015-03-26 14:10:02 UTC
Created attachment 300356 [details] [review]
rtpsession: Always wait with sending RTCP until we have something to report

This change should not have any effect at all but makes the code a bit
simpler. There are two cases to consider here:
1) The receiving part of the RTP session will only ever start reporting
something once it received an RTP or RTCP packet. Before that the RTCP sending
thread will not have anything to report anyway. We unlock the RTCP sending
thread once we received the first RTP or RTCP packet.
2) The sending part of the RTP session should only start sending sender
reports once it actually has RTP data to send. Before that all sender
reports are going to be rather useless and just wasting bandwidth. We
unlock the RTCP sending thread once we have the first RTP packet to send.
Comment 2 Håvard Graff (hgr) 2015-10-30 13:27:58 UTC
Here is a test you can use:

GST_START_TEST (test_dont_send_rtcp_while_idle)
{
  GstHarness * h_rtcp = gst_harness_new_with_padnames (
      "rtpsession", "recv_rtcp_sink", "send_rtcp_src");

  GstHarness * h_send = gst_harness_new_with_element (
      h_rtcp->element, "send_rtp_sink", "send_rtp_src");

  g_object_set (h_send->element, "rtcp-min-interval", 1, NULL);

  g_usleep (G_USEC_PER_SEC * 1);

  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h_rtcp));

  gst_harness_teardown (h_send);
  gst_harness_teardown (h_rtcp);
}
GST_END_TEST;
Comment 3 Sebastian Dröge (slomo) 2018-05-06 15:22:13 UTC

*** This bug has been marked as a duplicate of bug 795139 ***