Reverse |rtx_payload_types| map, and rename.
New name is |rtx_associated_payload_types|.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3000273002
Cr-Original-Commit-Position: refs/heads/master@{#19514}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 26e3abbb40d5fc24642ed61ca226810713084dec
diff --git a/call/call.cc b/call/call.cc
index cee0036..b1f56d3 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -86,6 +86,14 @@
return UseSendSideBwe(config.rtp_header_extensions, config.transport_cc);
}
+const int* FindKeyByValue(const std::map<int, int>& m, int v) {
+ for (const auto& kv : m) {
+ if (kv.second == v)
+ return &kv.first;
+ }
+ return nullptr;
+}
+
rtclog::StreamConfig CreateRtcLogStreamConfig(
const VideoReceiveStream::Config& config) {
rtclog::StreamConfig rtclog_config;
@@ -97,10 +105,10 @@
rtclog_config.rtp_extensions = config.rtp.extensions;
for (const auto& d : config.decoders) {
- auto search = config.rtp.rtx_payload_types.find(d.payload_type);
- rtclog_config.codecs.emplace_back(
- d.payload_name, d.payload_type,
- search != config.rtp.rtx_payload_types.end() ? search->second : 0);
+ const int* search =
+ FindKeyByValue(config.rtp.rtx_associated_payload_types, d.payload_type);
+ rtclog_config.codecs.emplace_back(d.payload_name, d.payload_type,
+ search ? *search : 0);
}
return rtclog_config;
}
diff --git a/call/rampup_tests.cc b/call/rampup_tests.cc
index cfb5117..ed44dad 100644
--- a/call/rampup_tests.cc
+++ b/call/rampup_tests.cc
@@ -215,8 +215,8 @@
if (rtx_) {
recv_config.rtp.rtx_ssrc = video_rtx_ssrcs_[i];
recv_config.rtp
- .rtx_payload_types[send_config->encoder_settings.payload_type] =
- send_config->rtp.rtx.payload_type;
+ .rtx_associated_payload_types[send_config->rtp.rtx.payload_type] =
+ send_config->encoder_settings.payload_type;
}
++i;
}
diff --git a/call/video_receive_stream.cc b/call/video_receive_stream.cc
index bc65869..ef6c608 100644
--- a/call/video_receive_stream.cc
+++ b/call/video_receive_stream.cc
@@ -113,8 +113,8 @@
ss << ", ulpfec: " << ulpfec.ToString();
ss << ", rtx_ssrc: " << rtx_ssrc;
ss << ", rtx_payload_types: {";
- for (auto& kv : rtx_payload_types) {
- ss << kv.first << " (apt) -> " << kv.second << " (pt), ";
+ for (auto& kv : rtx_associated_payload_types) {
+ ss << kv.first << " (pt) -> " << kv.second << " (apt), ";
}
ss << '}';
ss << ", extensions: [";
diff --git a/call/video_receive_stream.h b/call/video_receive_stream.h
index bd4b997..18e904d 100644
--- a/call/video_receive_stream.h
+++ b/call/video_receive_stream.h
@@ -168,14 +168,15 @@
// Set if the stream is protected using FlexFEC.
bool protected_by_flexfec = false;
- // Map from video payload type (apt) -> RTX payload type (pt).
+ // Map from rtx payload type -> media payload type.
// For RTX to be enabled, both an SSRC and this mapping are needed.
- std::map<int, int> rtx_payload_types;
+ std::map<int, int> rtx_associated_payload_types;
// TODO(nisse): This is a temporary accessor function to enable
// reversing and renaming of the rtx_payload_types mapping.
void AddRtxBinding(int rtx_payload_type, int media_payload_type) {
- rtx_payload_types[media_payload_type] = rtx_payload_type;
+ rtx_associated_payload_types[rtx_payload_type] = media_payload_type;
}
+
// RTP header extensions used for the received stream.
std::vector<RtpExtension> extensions;
} rtp;
diff --git a/media/engine/webrtcvideoengine.cc b/media/engine/webrtcvideoengine.cc
index 8a23ae8..6808f2c 100644
--- a/media/engine/webrtcvideoengine.cc
+++ b/media/engine/webrtcvideoengine.cc
@@ -2219,10 +2219,10 @@
config_.decoders.push_back(decoder);
}
- config_.rtp.rtx_payload_types.clear();
+ config_.rtp.rtx_associated_payload_types.clear();
for (const VideoCodecSettings& recv_codec : recv_codecs) {
- config_.rtp.rtx_payload_types[recv_codec.codec.id] =
- recv_codec.rtx_payload_type;
+ config_.rtp.rtx_associated_payload_types[recv_codec.rtx_payload_type] =
+ recv_codec.codec.id;
}
config_.rtp.ulpfec = recv_codecs.front().ulpfec;
diff --git a/media/engine/webrtcvideoengine_unittest.cc b/media/engine/webrtcvideoengine_unittest.cc
index 3af7ef4..c6adfd3 100644
--- a/media/engine/webrtcvideoengine_unittest.cc
+++ b/media/engine/webrtcvideoengine_unittest.cc
@@ -111,6 +111,16 @@
media_config.video.enable_cpu_overuse_detection = false;
return media_config;
}
+
+// TODO(nisse): Duplicated in call.cc.
+const int* FindKeyByValue(const std::map<int, int>& m, int v) {
+ for (const auto& kv : m) {
+ if (kv.second == v)
+ return &kv.first;
+ }
+ return nullptr;
+}
+
} // namespace
namespace cricket {
@@ -1304,9 +1314,10 @@
// Receiver side.
FakeVideoReceiveStream* recv_stream = AddRecvStream(
cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
- EXPECT_FALSE(recv_stream->GetConfig().rtp.rtx_payload_types.empty());
+ EXPECT_FALSE(
+ recv_stream->GetConfig().rtp.rtx_associated_payload_types.empty());
EXPECT_EQ(recv_stream->GetConfig().decoders.size(),
- recv_stream->GetConfig().rtp.rtx_payload_types.size())
+ recv_stream->GetConfig().rtp.rtx_associated_payload_types.size())
<< "RTX should be mapped for all decoders/payload types.";
EXPECT_EQ(rtx_ssrcs[0], recv_stream->GetConfig().rtp.rtx_ssrc);
}
@@ -3142,11 +3153,11 @@
ASSERT_EQ(1U, fake_call_->GetVideoReceiveStreams().size());
const webrtc::VideoReceiveStream::Config& config_before =
fake_call_->GetVideoReceiveStreams()[0]->GetConfig();
- EXPECT_EQ(1U, config_before.rtp.rtx_payload_types.size());
- auto it_before =
- config_before.rtp.rtx_payload_types.find(GetEngineCodec("VP8").id);
- ASSERT_NE(it_before, config_before.rtp.rtx_payload_types.end());
- EXPECT_EQ(kUnusedPayloadType1, it_before->second);
+ EXPECT_EQ(1U, config_before.rtp.rtx_associated_payload_types.size());
+ const int* payload_type_before = FindKeyByValue(
+ config_before.rtp.rtx_associated_payload_types, GetEngineCodec("VP8").id);
+ ASSERT_NE(payload_type_before, nullptr);
+ EXPECT_EQ(kUnusedPayloadType1, *payload_type_before);
EXPECT_EQ(kRtxSsrcs1[0], config_before.rtp.rtx_ssrc);
// Change payload type for RTX.
@@ -3155,11 +3166,11 @@
ASSERT_EQ(1U, fake_call_->GetVideoReceiveStreams().size());
const webrtc::VideoReceiveStream::Config& config_after =
fake_call_->GetVideoReceiveStreams()[0]->GetConfig();
- EXPECT_EQ(1U, config_after.rtp.rtx_payload_types.size());
- auto it_after =
- config_after.rtp.rtx_payload_types.find(GetEngineCodec("VP8").id);
- ASSERT_NE(it_after, config_after.rtp.rtx_payload_types.end());
- EXPECT_EQ(kUnusedPayloadType2, it_after->second);
+ EXPECT_EQ(1U, config_after.rtp.rtx_associated_payload_types.size());
+ const int* payload_type_after = FindKeyByValue(
+ config_after.rtp.rtx_associated_payload_types, GetEngineCodec("VP8").id);
+ ASSERT_NE(payload_type_after, nullptr);
+ EXPECT_EQ(kUnusedPayloadType2, *payload_type_after);
EXPECT_EQ(kRtxSsrcs1[0], config_after.rtp.rtx_ssrc);
}
@@ -3783,9 +3794,10 @@
ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size())
<< "AddRecvStream should have reconfigured, not added a new receiver.";
recv_stream = fake_call_->GetVideoReceiveStreams()[0];
- EXPECT_FALSE(recv_stream->GetConfig().rtp.rtx_payload_types.empty());
+ EXPECT_FALSE(
+ recv_stream->GetConfig().rtp.rtx_associated_payload_types.empty());
EXPECT_EQ(recv_stream->GetConfig().decoders.size(),
- recv_stream->GetConfig().rtp.rtx_payload_types.size())
+ recv_stream->GetConfig().rtp.rtx_associated_payload_types.size())
<< "RTX should be mapped for all decoders/payload types.";
EXPECT_EQ(rtx_ssrcs[0], recv_stream->GetConfig().rtp.rtx_ssrc);
}
diff --git a/video/end_to_end_tests.cc b/video/end_to_end_tests.cc
index 7e62f6d..fbc852f 100644
--- a/video/end_to_end_tests.cc
+++ b/video/end_to_end_tests.cc
@@ -865,8 +865,9 @@
(*receive_configs)[0].rtp.rtx_ssrc = test::CallTest::kSendRtxSsrcs[0];
(*receive_configs)[0]
- .rtp.rtx_payload_types[test::CallTest::kVideoSendPayloadType] =
- test::CallTest::kSendRtxPayloadType;
+ .rtp
+ .rtx_associated_payload_types[test::CallTest::kSendRtxPayloadType] =
+ test::CallTest::kVideoSendPayloadType;
}
}
@@ -1182,8 +1183,9 @@
send_config->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[0]);
send_config->rtp.rtx.payload_type = kSendRtxPayloadType;
(*receive_configs)[0].rtp.rtx_ssrc = kSendRtxSsrcs[0];
- (*receive_configs)[0].rtp.rtx_payload_types[payload_type_] =
- kSendRtxPayloadType;
+ (*receive_configs)[0]
+ .rtp.rtx_associated_payload_types[kSendRtxPayloadType] =
+ payload_type_;
}
// Configure encoding and decoding with VP8, since generic packetization
// doesn't support FEC with NACK.
@@ -2773,8 +2775,9 @@
send_config->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[0]);
send_config->rtp.rtx.payload_type = kSendRtxPayloadType;
(*receive_configs)[0].rtp.rtx_ssrc = kSendRtxSsrcs[0];
- (*receive_configs)[0].rtp.rtx_payload_types[kFakeVideoSendPayloadType] =
- kSendRtxPayloadType;
+ (*receive_configs)[0]
+ .rtp.rtx_associated_payload_types[kSendRtxPayloadType] =
+ kFakeVideoSendPayloadType;
}
// RTT needed for RemoteNtpTimeEstimator for the receive stream.
(*receive_configs)[0].rtp.rtcp_xr.receiver_reference_time_report = true;
@@ -3540,8 +3543,9 @@
(*receive_configs)[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
(*receive_configs)[i].rtp.rtx_ssrc = kSendRtxSsrcs[i];
- (*receive_configs)[i].rtp.rtx_payload_types[kFakeVideoSendPayloadType] =
- kSendRtxPayloadType;
+ (*receive_configs)[i]
+ .rtp.rtx_associated_payload_types[kSendRtxPayloadType] =
+ kFakeVideoSendPayloadType;
}
for (size_t i = 0; i < kNumSsrcs; ++i)
@@ -4323,8 +4327,9 @@
CreateMatchingReceiveConfigs(receive_transport.get());
video_receive_configs_[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
video_receive_configs_[0].rtp.rtx_ssrc = kSendRtxSsrcs[0];
- video_receive_configs_[0].rtp.rtx_payload_types[kVideoSendPayloadType] =
- kSendRtxPayloadType;
+ video_receive_configs_[0]
+ .rtp.rtx_associated_payload_types[kSendRtxPayloadType] =
+ kVideoSendPayloadType;
// The matching FlexFEC receive config is not created by
// CreateMatchingReceiveConfigs since this is not a test::BaseTest.
@@ -4824,7 +4829,7 @@
<< "RTCP XR settings require rtcp-xr to be negotiated.";
EXPECT_EQ(0U, default_receive_config.rtp.rtx_ssrc)
<< "Enabling RTX requires ssrc-group: FID negotiation";
- EXPECT_TRUE(default_receive_config.rtp.rtx_payload_types.empty())
+ EXPECT_TRUE(default_receive_config.rtp.rtx_associated_payload_types.empty())
<< "Enabling RTX requires rtpmap: rtx negotiation.";
EXPECT_TRUE(default_receive_config.rtp.extensions.empty())
<< "Enabling RTP extensions require negotiation.";
diff --git a/video/replay.cc b/video/replay.cc
index 736db44..b1e7f3b 100644
--- a/video/replay.cc
+++ b/video/replay.cc
@@ -238,8 +238,8 @@
receive_config.rtp.remote_ssrc = flags::Ssrc();
receive_config.rtp.local_ssrc = kReceiverLocalSsrc;
receive_config.rtp.rtx_ssrc = flags::SsrcRtx();
- receive_config.rtp.rtx_payload_types[flags::PayloadType()] =
- flags::PayloadTypeRtx();
+ receive_config.rtp.rtx_associated_payload_types[flags::PayloadTypeRtx()] =
+ flags::PayloadType();
receive_config.rtp.ulpfec.ulpfec_payload_type = flags::FecPayloadType();
receive_config.rtp.ulpfec.red_payload_type = flags::RedPayloadType();
receive_config.rtp.nack.rtp_history_ms = 1000;
diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc
index 01cb4dc..4678b8f 100644
--- a/video/rtp_video_stream_receiver.cc
+++ b/video/rtp_video_stream_receiver.cc
@@ -148,9 +148,9 @@
if (config_.rtp.rtx_ssrc) {
rtp_payload_registry_.SetRtxSsrc(config_.rtp.rtx_ssrc);
- for (const auto& kv : config_.rtp.rtx_payload_types) {
- RTC_DCHECK(kv.second != 0);
- rtp_payload_registry_.SetRtxPayloadType(kv.second, kv.first);
+ for (const auto& kv : config_.rtp.rtx_associated_payload_types) {
+ RTC_DCHECK_NE(kv.first, 0);
+ rtp_payload_registry_.SetRtxPayloadType(kv.first, kv.second);
}
}
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index 7cacf29..3882f71 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -1484,8 +1484,8 @@
for (size_t i = 0; i < num_video_streams; ++i) {
video_receive_configs_[i].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
video_receive_configs_[i].rtp.rtx_ssrc = kSendRtxSsrcs[i];
- video_receive_configs_[i].rtp.rtx_payload_types[payload_type] =
- kSendRtxPayloadType;
+ video_receive_configs_[i]
+ .rtp.rtx_associated_payload_types[kSendRtxPayloadType] = payload_type;
video_receive_configs_[i].rtp.transport_cc = params_.call.send_side_bwe;
video_receive_configs_[i].rtp.remb = !params_.call.send_side_bwe;
// Enable RTT calculation so NTP time estimator will work.
@@ -1627,8 +1627,8 @@
thumbnail_receive_config.rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
thumbnail_receive_config.rtp.rtx_ssrc = kThumbnailRtxSsrcStart + i;
- thumbnail_receive_config.rtp.rtx_payload_types[kPayloadTypeVP8] =
- kSendRtxPayloadType;
+ thumbnail_receive_config.rtp
+ .rtx_associated_payload_types[kSendRtxPayloadType] = kPayloadTypeVP8;
thumbnail_receive_config.rtp.transport_cc = params_.call.send_side_bwe;
thumbnail_receive_config.rtp.remb = !params_.call.send_side_bwe;