Index: webrtc/modules/audio_coding/codecs/audio_encoder.cc |
diff --git a/webrtc/modules/audio_coding/codecs/audio_encoder.cc b/webrtc/modules/audio_coding/codecs/audio_encoder.cc |
index 956c4e086f0dbf244cb348ad93083d19ad252411..7dee06660bae5f8e30db8afc3d294d79cb726cf3 100644 |
--- a/webrtc/modules/audio_coding/codecs/audio_encoder.cc |
+++ b/webrtc/modules/audio_coding/codecs/audio_encoder.cc |
@@ -12,6 +12,7 @@ |
#include "webrtc/base/checks.h" |
#include "webrtc/base/trace_event.h" |
+#include "webrtc/system_wrappers/include/field_trial.h" |
namespace webrtc { |
@@ -24,6 +25,9 @@ AudioEncoder::EncodedInfo& AudioEncoder::EncodedInfo::operator=( |
AudioEncoder::EncodedInfo& AudioEncoder::EncodedInfo::operator=(EncodedInfo&&) = |
default; |
+AudioEncoder::AudioEncoder() = default; |
+AudioEncoder::~AudioEncoder() = default; |
+ |
int AudioEncoder::RtpTimestampRateHz() const { |
return SampleRateHz(); |
} |
@@ -82,11 +86,26 @@ void AudioEncoder::OnReceivedUplinkPacketLossFraction( |
} |
void AudioEncoder::OnReceivedTargetAudioBitrate(int target_audio_bitrate_bps) { |
- SetTargetBitrate(target_audio_bitrate_bps); |
+ if (webrtc::field_trial::FindFullName("WebRTC-SendSideBwe-WithOverhead") == |
+ "Enabled") { |
+ if (!overhead_bytes_per_packet_) { |
+ // Ignore the target bitrate is overhead is unknown. |
kwiberg-webrtc
2016/11/29 09:46:24
Should the first "is" be "if"?
minyue-webrtc
2016/12/02 10:07:34
I think we should also add log here. see new patch
|
+ return; |
+ } |
+ int overhead_rate = |
+ 8 * 100 * *overhead_bytes_per_packet_ / Num10MsFramesInNextPacket(); |
+ SetTargetBitrate(std::max(0, target_audio_bitrate_bps - overhead_rate)); |
+ } else { |
+ SetTargetBitrate(target_audio_bitrate_bps); |
+ } |
} |
void AudioEncoder::OnReceivedRtt(int rtt_ms) {} |
+void AudioEncoder::OnReceivedOverhead(size_t overhead_bytes_per_packet) { |
+ overhead_bytes_per_packet_ = rtc::Optional<size_t>(overhead_bytes_per_packet); |
+} |
+ |
void AudioEncoder::SetReceiverFrameLengthRange(int min_frame_length_ms, |
int max_frame_length_ms) {} |