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 741864 - RTCP is broken (regression)
RTCP is broken (regression)
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal major
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-12-22 14:50 UTC by Marc Leeman
Modified: 2018-10-27 11:46 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
disable collision (1.36 KB, patch)
2015-04-30 13:39 UTC, Marc Leeman
none Details | Review

Description Marc Leeman 2014-12-22 14:50:52 UTC
I've noticed that the RTCP packets in current git code are no longer being sent to a multicast address. 

This is, two of them are sent, then silence.

The setup is that an RTP stream is sent to a MC address

239.1.2.3:1234

and the RTCP packets are sent to port+1

239.1.2.3:1235

When I started debugging, I noticed that rtpsession generates and sends 2 RTCP packets. It also receives the packets it sent to the multicast address.

Since the packets sent and the packets received have the same SSRC, it marks them as a collision and sends an EOS on the RTCP pad.

While the RTP session still generateds RTCP packets, the pad ignores and frees them because of the EOS.

rtpmanager/rtpsession.c check_collision is too strict IMO (since it cannot figure out if it is sent to MC or not).
Comment 1 Marc Leeman 2015-04-30 13:33:07 UTC
I disabled the collision detection on my end to restore RTCP.
Comment 2 Tim-Philipp Müller 2015-04-30 13:35:58 UTC
Could you bisect which commit introduced this?
Comment 3 Marc Leeman 2015-04-30 13:39:15 UTC
Created attachment 302653 [details] [review]
disable collision
Comment 4 Sebastian Dröge (slomo) 2015-04-30 13:41:08 UTC
Also what I asked on IRC already :)

There's supposed to be some loop detection in rtpsession, not sure why that fails here.

Can you provide a testcase to reproduce it? :) and is this with gst-rtsp-server or some other server?
Comment 5 Olivier Crête 2015-04-30 17:47:37 UTC
Does changing the "favor-new" property on rtpsession help ? The most recent change to that code is 2e54d38d from a year ago, but that was fixing something that had been changed shortly before.
Comment 6 Tim-Philipp Müller 2016-02-22 00:27:44 UTC
Marc?
Comment 7 Tim-Philipp Müller 2018-01-25 18:57:50 UTC
Marc, could you provide more info about the exact scenario? See questions above.
Comment 8 Marc Leeman 2018-02-21 10:10:06 UTC
We are still using the patch as submitted, I will disable the patch again and see if we are still in the same situation as 3 years ago.
Comment 9 Marc Leeman 2018-10-27 11:35:44 UTC
Tested with

gst-launch-1.0 videotestsrc ! x264enc ! h264parse ! rtph264pay ! rtpsink uri=rtp://239.1.2.3:1234
sudo tcpdump -i wlp1s0 port 1235


RTCP packets are still flowing, I assume this one got squashed somewhere in the past 4 years.