Index: webrtc/voice_engine/channel.cc |
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc |
index 100832de3adeb2dc986cd255dc271a109ea6bbb7..14c63538279670d5502de2244552bb00d1d63a25 100644 |
--- a/webrtc/voice_engine/channel.cc |
+++ b/webrtc/voice_engine/channel.cc |
@@ -914,6 +914,8 @@ Channel::Channel(int32_t channelId, |
_lastLocalTimeStamp(0), |
_lastPayloadType(0), |
_includeAudioLevelIndication(false), |
+ _transport_overhead_per_packet(0), |
+ _rtp_overhead_per_packet(0), |
_outputSpeechType(AudioFrame::kNormalSpeech), |
restored_packet_in_use_(false), |
rtcp_observer_(new VoERtcpObserver(this)), |
@@ -2878,18 +2880,26 @@ void Channel::SetRtcpRttStats(RtcpRttStats* rtcp_rtt_stats) { |
rtcp_rtt_stats_proxy_->SetRtcpRttStats(rtcp_rtt_stats); |
} |
-void Channel::SetTransportOverhead(int transport_overhead_per_packet) { |
- _rtpRtcpModule->SetTransportOverhead(transport_overhead_per_packet); |
-} |
- |
-void Channel::OnOverheadChanged(size_t overhead_bytes_per_packet) { |
+void Channel::UpdateOverheadForEncoder() { |
audio_coding_->ModifyEncoder([&](std::unique_ptr<AudioEncoder>* encoder) { |
if (*encoder) { |
- (*encoder)->OnReceivedOverhead(overhead_bytes_per_packet); |
+ (*encoder)->OnReceivedOverhead( |
+ _transport_overhead_per_packet + _rtp_overhead_per_packet); |
} |
}); |
} |
+void Channel::SetTransportOverhead(int transport_overhead_per_packet) { |
+ _transport_overhead_per_packet = transport_overhead_per_packet; |
+ UpdateOverheadForEncoder(); |
+} |
+ |
+ |
+void Channel::OnOverheadChanged(size_t overhead_bytes_per_packet) { |
the sun
2016/12/21 10:33:02
Not strictly part of this CL, but... "transport_ov
stefan-webrtc
2016/12/21 11:31:43
It's important for really low bitrates where the o
|
+ _rtp_overhead_per_packet = overhead_bytes_per_packet; |
+ UpdateOverheadForEncoder(); |
+} |
+ |
int Channel::RegisterExternalMediaProcessing(ProcessingTypes type, |
VoEMediaProcess& processObject) { |
WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId), |