rtpdec: Use our own SSRC in the SDES field when sending RRs
authorMartin Storsjö <martin@martin.st>
Sat, 21 Jan 2012 15:20:45 +0000 (17:20 +0200)
committerMartin Storsjö <martin@martin.st>
Sat, 21 Jan 2012 20:18:12 +0000 (22:18 +0200)
The s->ssrc field is the sender's SSRC, we use ssrc + 1 to get
a collision free "unique" SSRC for ourselves in the RR part.
The SDES block in the RTCP packet should describe ourselves,
not the sender.

This was fixed for the RR part in 952139a3226b, but wasn't
fixed for the SDES part until now.

This could cause some Axis cameras to send RTCP BYE packets
to us due to the SSRC collision.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtpdec.c

index 7e8b52a..3442c9b 100644 (file)
@@ -299,7 +299,7 @@ int ff_rtp_check_and_send_back_rr(RTPDemuxContext *s, int count)
     avio_w8(pb, RTCP_SDES);
     len = strlen(s->hostname);
     avio_wb16(pb, (6 + len + 3) / 4); /* length in words - 1 */
-    avio_wb32(pb, s->ssrc);
+    avio_wb32(pb, s->ssrc + 1);
     avio_w8(pb, 0x01);
     avio_w8(pb, len);
     avio_write(pb, s->hostname, len);