| Index: webrtc/call/rtp_demuxer_unittest.cc
|
| diff --git a/webrtc/call/rtp_demuxer_unittest.cc b/webrtc/call/rtp_demuxer_unittest.cc
|
| index 56bfe3c65f59a6c163a3e58f855322aa6ddc0206..6d61f57894d9128b0e4f51df450f0913626f6d89 100644
|
| --- a/webrtc/call/rtp_demuxer_unittest.cc
|
| +++ b/webrtc/call/rtp_demuxer_unittest.cc
|
| @@ -381,18 +381,22 @@ TEST(RtpDemuxerTest, FirstSsrcAssociatedWithAnRsidIsNotForgotten) {
|
| EXPECT_CALL(sink_a, OnRtpPacket(SamePacketAs(*packet_a))).Times(1);
|
| EXPECT_TRUE(demuxer.OnRtpPacket(*packet_a));
|
|
|
| - // Second, a packet with |rsid_b| is received. Its RSID is ignored.
|
| + // Second, a packet with |rsid_b| is received. We guarantee that |sink_a|
|
| + // would receive it, and make no guarantees about |sink_b|.
|
| auto packet_b = CreateRtpPacketReceivedWithRsid(rsid_b, shared_ssrc, 20);
|
| EXPECT_CALL(sink_a, OnRtpPacket(SamePacketAs(*packet_b))).Times(1);
|
| + EXPECT_CALL(sink_b, OnRtpPacket(SamePacketAs(*packet_b))).Times(AtLeast(0));
|
| EXPECT_TRUE(demuxer.OnRtpPacket(*packet_b));
|
|
|
| // Known edge-case; adding a new RSID association makes us re-examine all
|
| // SSRCs. |sink_b| may or may not be associated with the SSRC now; we make
|
| // no promises on that. We do however still guarantee that |sink_a| still
|
| // receives the new packets.
|
| - MockRtpPacketSink sink_ignored;
|
| - demuxer.AddSink("ignored", &sink_ignored);
|
| - auto packet_c = CreateRtpPacketReceivedWithRsid(rsid_b, shared_ssrc, 30);
|
| + MockRtpPacketSink sink_c;
|
| + const std::string rsid_c = "c";
|
| + constexpr uint32_t some_other_ssrc = shared_ssrc + 1;
|
| + demuxer.AddSink(some_other_ssrc, &sink_c);
|
| + auto packet_c = CreateRtpPacketReceivedWithRsid(rsid_c, shared_ssrc, 30);
|
| EXPECT_CALL(sink_a, OnRtpPacket(SamePacketAs(*packet_c))).Times(1);
|
| EXPECT_CALL(sink_b, OnRtpPacket(SamePacketAs(*packet_c))).Times(AtLeast(0));
|
| EXPECT_TRUE(demuxer.OnRtpPacket(*packet_c));
|
| @@ -400,7 +404,7 @@ TEST(RtpDemuxerTest, FirstSsrcAssociatedWithAnRsidIsNotForgotten) {
|
| // Test tear-down
|
| demuxer.RemoveSink(&sink_a);
|
| demuxer.RemoveSink(&sink_b);
|
| - demuxer.RemoveSink(&sink_ignored);
|
| + demuxer.RemoveSink(&sink_c);
|
| }
|
|
|
| TEST(RtpDemuxerTest, MultipleRsidsOnSameSink) {
|
| @@ -518,34 +522,6 @@ TEST(RtpDemuxerTest, RsidObserversInformedOfResolutions) {
|
| }
|
| }
|
|
|
| -// Normally, we only produce one notification per resolution (though no such
|
| -// guarantee is made), but when a new observer is added, we reset
|
| -// this suppression - we "re-resolve" associations for the benefit of the
|
| -// new observer..
|
| -TEST(RtpDemuxerTest, NotificationSuppressionResetWhenNewObserverAdded) {
|
| - RtpDemuxer demuxer;
|
| -
|
| - constexpr uint32_t ssrc = 111;
|
| - const std::string rsid = "a";
|
| -
|
| - // First observer registered, then gets a notification.
|
| - NiceMock<MockRsidResolutionObserver> first_observer;
|
| - demuxer.RegisterRsidResolutionObserver(&first_observer);
|
| - demuxer.OnRtpPacket(*CreateRtpPacketReceivedWithRsid(rsid, ssrc));
|
| -
|
| - // Second observer registered, then gets a notification. No guarantee is made
|
| - // about whether the first observer would get an additional notification.
|
| - MockRsidResolutionObserver second_observer;
|
| - demuxer.RegisterRsidResolutionObserver(&second_observer);
|
| - EXPECT_CALL(first_observer, OnRsidResolved(rsid, ssrc)).Times(AtLeast(0));
|
| - EXPECT_CALL(second_observer, OnRsidResolved(rsid, ssrc)).Times(1);
|
| - demuxer.OnRtpPacket(*CreateRtpPacketReceivedWithRsid(rsid, ssrc));
|
| -
|
| - // Test tear-down
|
| - demuxer.DeregisterRsidResolutionObserver(&first_observer);
|
| - demuxer.DeregisterRsidResolutionObserver(&second_observer);
|
| -}
|
| -
|
| TEST(RtpDemuxerTest, DeregisteredRsidObserversNotInformedOfResolutions) {
|
| RtpDemuxer demuxer;
|
|
|
|
|