Replace BundleFilter with RtpDemuxer in RtpTransport.
BundleFilter is replaced by RtpDemuxer in RtpTransport for payload
type-based demuxing. RtpTransport will support MID-based demuxing later.
Each BaseChannel has its own RTP demuxing criteria and when connecting
to the RtpTransport, BaseChannel will register itself as a demuxer sink.
The inheritance model is changed. New inheritance chain:
DtlsSrtpTransport->SrtpTransport->RtpTranpsort
The JsepTransport2 is renamed to JsepTransport.
NOTE:
When RTCP packets are received, Call::DeliverRtcp will be called for
multiple times (webrtc:9035) which is an existing issue. With this CL,
it will become more of a problem and should be fixed.
Bug: webrtc:8587
Change-Id: Ibd880e7b744bd912336a691309950bc18e42cf62
Reviewed-on: https://webrtc-review.googlesource.com/65786
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22867}
diff --git a/pc/channel_unittest.cc b/pc/channel_unittest.cc
index c398f07..0d8fdc3 100644
--- a/pc/channel_unittest.cc
+++ b/pc/channel_unittest.cc
@@ -42,6 +42,8 @@
const cricket::DataCodec kGoogleDataCodec(101, "google-data");
const uint32_t kSsrc1 = 0x1111;
const uint32_t kSsrc2 = 0x2222;
+const uint32_t kSsrc3 = 0x3333;
+const uint32_t kSsrc4 = 0x4444;
const int kAudioPts[] = {0, 8};
const int kVideoPts[] = {97, 99};
enum class NetworkIsWorker { Yes, No };
@@ -239,13 +241,6 @@
if (flags2 & SSRC_MUX) {
AddLegacyStreamInContent(kSsrc2, flags2, &remote_media_content2_);
}
-
- if (!(flags1 & DTLS)) {
- channel1_->DisableEncryption(true);
- }
- if (!(flags2 & DTLS)) {
- channel2_->DisableEncryption(true);
- }
}
std::unique_ptr<typename T::Channel> CreateChannel(
rtc::Thread* worker_thread,
@@ -289,9 +284,8 @@
std::unique_ptr<webrtc::RtpTransport> CreateUnencryptedTransport(
rtc::PacketTransportInternal* rtp_packet_transport,
rtc::PacketTransportInternal* rtcp_packet_transport) {
- bool rtcp_mux_enabled = (rtcp_packet_transport == nullptr);
auto rtp_transport =
- rtc::MakeUnique<webrtc::RtpTransport>(rtcp_mux_enabled);
+ rtc::MakeUnique<webrtc::RtpTransport>(rtcp_packet_transport == nullptr);
rtp_transport->SetRtpPacketTransport(rtp_packet_transport);
if (rtcp_packet_transport) {
@@ -303,11 +297,8 @@
std::unique_ptr<webrtc::DtlsSrtpTransport> CreateDtlsSrtpTransport(
cricket::DtlsTransportInternal* rtp_dtls_transport,
cricket::DtlsTransportInternal* rtcp_dtls_transport) {
- bool rtcp_mux_enabled = (rtcp_dtls_transport == nullptr);
- auto srtp_transport =
- rtc::MakeUnique<webrtc::SrtpTransport>(rtcp_mux_enabled);
- auto dtls_srtp_transport =
- rtc::MakeUnique<webrtc::DtlsSrtpTransport>(std::move(srtp_transport));
+ auto dtls_srtp_transport = rtc::MakeUnique<webrtc::DtlsSrtpTransport>(
+ rtcp_dtls_transport == nullptr);
dtls_srtp_transport->SetDtlsTransports(rtp_dtls_transport,
rtcp_dtls_transport);
@@ -1177,10 +1168,6 @@
CreateChannels(flags, flags);
EXPECT_TRUE(SendInitiate());
EXPECT_TRUE(SendAccept());
- EXPECT_TRUE(channel1_->HandlesPayloadType(pl_type1));
- EXPECT_TRUE(channel2_->HandlesPayloadType(pl_type1));
- EXPECT_FALSE(channel1_->HandlesPayloadType(pl_type2));
- EXPECT_FALSE(channel2_->HandlesPayloadType(pl_type2));
// Both channels can receive pl_type1 only.
SendCustomRtp1(kSsrc1, ++sequence_number1_1, pl_type1);
@@ -1191,11 +1178,11 @@
EXPECT_TRUE(CheckNoRtp1());
EXPECT_TRUE(CheckNoRtp2());
- SendCustomRtp1(kSsrc1, ++sequence_number1_1, pl_type2);
- SendCustomRtp2(kSsrc2, ++sequence_number2_2, pl_type2);
+ SendCustomRtp1(kSsrc3, ++sequence_number1_1, pl_type2);
+ SendCustomRtp2(kSsrc4, ++sequence_number2_2, pl_type2);
WaitForThreads();
- EXPECT_FALSE(CheckCustomRtp2(kSsrc1, sequence_number1_1, pl_type2));
- EXPECT_FALSE(CheckCustomRtp1(kSsrc2, sequence_number2_2, pl_type2));
+ EXPECT_FALSE(CheckCustomRtp2(kSsrc3, sequence_number1_1, pl_type2));
+ EXPECT_FALSE(CheckCustomRtp1(kSsrc4, sequence_number2_2, pl_type2));
// RTCP test
SendCustomRtcp1(kSsrc1);