Base overhead calculation for audio priority rate on available data.
This improves the accuracy of the priority bitrate on IPv6 networks and when the min frame length is longer than 20 ms. Unless either of those are true, there's no significant change in behavior. Bug: webrtc:11001 Change-Id: I29530655cb607a8e7e8186431cd9362ca397910b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155521 Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29375}
This commit is contained in:
parent
78c82a4040
commit
0429f78992
@ -877,17 +877,23 @@ void AudioSendStream::ConfigureBitrateObserver() {
|
||||
// TODO(srte): Add overhead compensation here.
|
||||
auto constraints = GetMinMaxBitrateConstraints();
|
||||
|
||||
DataRate max_overhead = DataRate::Zero();
|
||||
DataRate priority_bitrate = allocation_settings_.priority_bitrate;
|
||||
if (send_side_bwe_with_overhead_) {
|
||||
// TODO(srte): Respect |use_legacy_overhead_calculation_| here as well.
|
||||
// OverheadPerPacket = Ipv4(20B) + UDP(8B) + SRTP(10B) + RTP(12)
|
||||
constexpr int kOverheadPerPacket = 20 + 8 + 10 + 12;
|
||||
const TimeDelta kMinPacketDuration = TimeDelta::ms(20);
|
||||
max_overhead = DataSize::bytes(kOverheadPerPacket) / kMinPacketDuration;
|
||||
if (use_legacy_overhead_calculation_) {
|
||||
// OverheadPerPacket = Ipv4(20B) + UDP(8B) + SRTP(10B) + RTP(12)
|
||||
constexpr int kOverheadPerPacket = 20 + 8 + 10 + 12;
|
||||
const TimeDelta kMinPacketDuration = TimeDelta::ms(20);
|
||||
DataRate max_overhead =
|
||||
DataSize::bytes(kOverheadPerPacket) / kMinPacketDuration;
|
||||
priority_bitrate += max_overhead;
|
||||
} else {
|
||||
RTC_DCHECK(frame_length_range_);
|
||||
const DataSize kOverheadPerPacket =
|
||||
DataSize::bytes(total_packet_overhead_bytes_);
|
||||
DataRate max_overhead = kOverheadPerPacket / frame_length_range_->first;
|
||||
priority_bitrate += max_overhead;
|
||||
}
|
||||
}
|
||||
DataRate priority_bitrate =
|
||||
allocation_settings_.priority_bitrate + max_overhead;
|
||||
|
||||
if (allocation_settings_.priority_bitrate_raw)
|
||||
priority_bitrate = *allocation_settings_.priority_bitrate_raw;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user