From: Dan Minor Date: Tue, 27 Mar 2018 15:43:00 -0400 Subject: Bug 1376873 - Disable Mid support in RtpDemuxer; r=mjf The only use of Mid in the current webrtc.org code is in the unit tests. RtpStreamReceiverController only allows adding sinks using SSRCs. Because of this, we'll end up dropping packets in the RtpDemuxer with the current code as none of our Mids will be recognized. Tip of webrtc.org fully supports using Mids, so we'll be able to enable this code again after the next update. Differential Revision: https://phabricator.services.mozilla.com/D7442 Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/b3ba8452e77105c72f6ddbc49cbe5a53dbea1507 --- call/rtp_demuxer.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/call/rtp_demuxer.cc b/call/rtp_demuxer.cc index 841d7e3b94..f5c4186871 100644 --- a/call/rtp_demuxer.cc +++ b/call/rtp_demuxer.cc @@ -285,13 +285,17 @@ RtpPacketSinkInterface* RtpDemuxer::ResolveSink( // RSID and RRID are routed to the same sinks. If an RSID is specified on a // repair packet, it should be ignored and the RRID should be used. std::string packet_mid, packet_rsid; - bool has_mid = use_mid_ && packet.GetExtension(&packet_mid); + //bool has_mid = use_mid_ && packet.GetExtension(&packet_mid); bool has_rsid = packet.GetExtension(&packet_rsid); if (!has_rsid) { has_rsid = packet.GetExtension(&packet_rsid); } uint32_t ssrc = packet.Ssrc(); + // Mid support is half-baked in branch 64. RtpStreamReceiverController only + // supports adding sinks by ssrc, so our mids will never show up in + // known_mids_, causing us to drop packets here. +#if 0 // The BUNDLE spec says to drop any packets with unknown MIDs, even if the // SSRC is known/latched. if (has_mid && known_mids_.find(packet_mid) == known_mids_.end()) { @@ -365,6 +369,7 @@ RtpPacketSinkInterface* RtpDemuxer::ResolveSink( } } +#endif // We trust signaled SSRC more than payload type which is likely to conflict // between streams. const auto ssrc_sink_it = sink_by_ssrc_.find(ssrc);