Add PeerConnection option to configure minimum audio jitter buffer delay.
Note that this value will override the minimum delay that is used for audio/video sync. Bug: webrtc:10053 Change-Id: Ia129f6c9ee9da5d00a3d955afaaa6e8f0c2bee33 Reviewed-on: https://webrtc-review.googlesource.com/c/112121 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25805}
This commit is contained in:
committed by
Commit Bot
parent
c7f1a0af92
commit
10403ae87c
@ -62,6 +62,7 @@ absl::optional<int> GetForcedLimitProbability() {
|
||||
namespace webrtc {
|
||||
|
||||
DelayManager::DelayManager(size_t max_packets_in_buffer,
|
||||
int base_min_target_delay_ms,
|
||||
DelayPeakDetector* peak_detector,
|
||||
const TickTimer* tick_timer)
|
||||
: first_packet_received_(false),
|
||||
@ -69,13 +70,14 @@ DelayManager::DelayManager(size_t max_packets_in_buffer,
|
||||
iat_vector_(kMaxIat + 1, 0),
|
||||
iat_factor_(0),
|
||||
tick_timer_(tick_timer),
|
||||
base_min_target_delay_ms_(base_min_target_delay_ms),
|
||||
base_target_level_(4), // In Q0 domain.
|
||||
target_level_(base_target_level_ << 8), // In Q8 domain.
|
||||
packet_len_ms_(0),
|
||||
streaming_mode_(false),
|
||||
last_seq_no_(0),
|
||||
last_timestamp_(0),
|
||||
minimum_delay_ms_(0),
|
||||
minimum_delay_ms_(base_min_target_delay_ms_),
|
||||
maximum_delay_ms_(target_level_),
|
||||
iat_cumulative_sum_(0),
|
||||
max_iat_cumulative_sum_(0),
|
||||
@ -85,6 +87,8 @@ DelayManager::DelayManager(size_t max_packets_in_buffer,
|
||||
field_trial::IsEnabled("WebRTC-Audio-NetEqFramelengthExperiment")),
|
||||
forced_limit_probability_(GetForcedLimitProbability()) {
|
||||
assert(peak_detector); // Should never be NULL.
|
||||
RTC_DCHECK_GE(base_min_target_delay_ms_, 0);
|
||||
RTC_DCHECK_LE(minimum_delay_ms_, maximum_delay_ms_);
|
||||
|
||||
Reset();
|
||||
}
|
||||
@ -485,7 +489,7 @@ bool DelayManager::SetMinimumDelay(int delay_ms) {
|
||||
static_cast<int>(3 * max_packets_in_buffer_ * packet_len_ms_ / 4))) {
|
||||
return false;
|
||||
}
|
||||
minimum_delay_ms_ = delay_ms;
|
||||
minimum_delay_ms_ = std::max(delay_ms, base_min_target_delay_ms_);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user