Index: webrtc/modules/rtp_rtcp/interface/rtp_payload_registry.h |
diff --git a/webrtc/modules/rtp_rtcp/interface/rtp_payload_registry.h b/webrtc/modules/rtp_rtcp/interface/rtp_payload_registry.h |
index bcafdfb7f600f81a395fe2f88cd4b95f4e1c5e5f..a60a6c5e73c0e54feb07a7affb0bb98dd3564d6b 100644 |
--- a/webrtc/modules/rtp_rtcp/interface/rtp_payload_registry.h |
+++ b/webrtc/modules/rtp_rtcp/interface/rtp_payload_registry.h |
@@ -83,7 +83,7 @@ class RTPPayloadRegistry { |
bool IsRtx(const RTPHeader& header) const; |
- bool RestoreOriginalPacket(uint8_t** restored_packet, |
+ bool RestoreOriginalPacket(uint8_t* restored_packet, |
const uint8_t* packet, |
size_t* packet_length, |
uint32_t original_ssrc, |
@@ -138,6 +138,16 @@ class RTPPayloadRegistry { |
return last_received_media_payload_type_; |
}; |
+ bool use_rtx_payload_mapping_on_restore() const { |
+ CriticalSectionScoped cs(crit_sect_.get()); |
+ return use_rtx_payload_mapping_on_restore_; |
+ } |
+ |
+ void set_use_rtx_payload_mapping_on_restore(bool val) { |
+ CriticalSectionScoped cs(crit_sect_.get()); |
+ use_rtx_payload_mapping_on_restore_ = val; |
+ } |
+ |
private: |
// Prunes the payload type map of the specific payload type, if it exists. |
void DeregisterAudioCodecOrRedTypeRegardlessOfPayloadType( |
@@ -163,6 +173,9 @@ class RTPPayloadRegistry { |
int rtx_payload_type_; |
// Mapping rtx_payload_type_map_[rtx] = associated. |
std::map<int, int> rtx_payload_type_map_; |
+ // When true, use rtx_payload_type_map_ when restoring RTX packets to get the |
+ // correct payload type. |
+ bool use_rtx_payload_mapping_on_restore_; |
uint32_t ssrc_rtx_; |
}; |