Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc

Issue 2469093003: Remove RED/RTX workaround from sender/receiver and VideoEngine2. (Closed)
Patch Set: Fix warning message. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc b/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc
index 283c2846e1bc8fbf70c8d7e90b4ad887412d8040..84b200ccc91589ee78599b5e9d40db2ae7378e39 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc
@@ -23,7 +23,6 @@ RTPPayloadRegistry::RTPPayloadRegistry(RTPPayloadStrategy* rtp_payload_strategy)
last_received_payload_type_(-1),
last_received_media_payload_type_(-1),
rtx_(false),
- rtx_payload_type_(-1),
ssrc_rtx_(0) {}
RTPPayloadRegistry::~RTPPayloadRegistry() {
@@ -234,7 +233,7 @@ bool RTPPayloadRegistry::RestoreOriginalPacket(uint8_t* restored_packet,
const uint8_t* packet,
size_t* packet_length,
uint32_t original_ssrc,
- const RTPHeader& header) const {
+ const RTPHeader& header) {
if (kRtxHeaderSize + header.headerLength + header.paddingLength >
*packet_length) {
return false;
@@ -258,21 +257,22 @@ bool RTPPayloadRegistry::RestoreOriginalPacket(uint8_t* restored_packet,
if (!rtx_)
return true;
- int associated_payload_type;
auto apt_mapping = rtx_payload_type_map_.find(header.payloadType);
- if (apt_mapping == rtx_payload_type_map_.end())
+ if (apt_mapping == rtx_payload_type_map_.end()) {
+ // No associated payload type found. Warn, unless we have already done so.
+ if (payload_types_with_suppressed_warnings_.find(header.payloadType) ==
+ payload_types_with_suppressed_warnings_.end()) {
+ LOG(LS_WARNING)
+ << "No RTX associated payload type mapping was available; "
+ "not able to restore original packet from RTX packet "
+ "with payload type: "
+ << static_cast<int>(header.payloadType) << ". "
+ << "Suppressing further warnings for this payload type.";
+ payload_types_with_suppressed_warnings_.insert(header.payloadType);
+ }
return false;
- associated_payload_type = apt_mapping->second;
- if (red_payload_type_ != -1) {
- // Assume red will be used if it's configured.
- // This is a workaround for a Chrome sdp bug where rtx is associated
- // with the media codec even though media is sent over red.
- // TODO(holmer): Remove once the Chrome versions exposing this bug are
- // old enough, which should be once Chrome Stable reaches M53 as this
- // work-around went into M50.
- associated_payload_type = red_payload_type_;
}
- restored_packet[1] = static_cast<uint8_t>(associated_payload_type);
+ restored_packet[1] = static_cast<uint8_t>(apt_mapping->second);
if (header.markerBit) {
restored_packet[1] |= kRtpMarkerBitMask; // Marker bit is set.
}
@@ -301,7 +301,6 @@ void RTPPayloadRegistry::SetRtxPayloadType(int payload_type,
rtx_payload_type_map_[payload_type] = associated_payload_type;
rtx_ = true;
- rtx_payload_type_ = payload_type;
}
bool RTPPayloadRegistry::IsRed(const RTPHeader& header) const {

Powered by Google App Engine
This is Rietveld 408576698