12 #ifndef ROC_AUDIO_LATENCY_MONITOR_H_
13 #define ROC_AUDIO_LATENCY_MONITOR_H_
76 size_t input_sample_rate,
77 size_t output_sample_rate);
91 float trim_scaling_(
float scaling)
const;
93 bool init_resampler_(
size_t input_sample_rate,
size_t output_sample_rate);
107 bool has_update_pos_;
113 const float max_scaling_delta_;
114 float sample_rate_coeff_;
Evaluates sender's frequency to receivers's frequency ratio.
bool valid() const
Check if the object was initialized successfully.
bool update(packet::timestamp_t time)
Update latency.
LatencyMonitor(const packet::SortedQueue &queue, const Depacketizer &depacketizer, ResamplerReader *resampler, const LatencyMonitorConfig &config, core::nanoseconds_t target_latency, size_t input_sample_rate, size_t output_sample_rate)
Constructor.
Resamples audio stream with non-integer dynamically changing factor.
Base class for non-copyable objects.
const nanoseconds_t Millisecond
One millisecond represented in nanoseconds.
int64_t nanoseconds_t
Nanoseconds.
uint32_t timestamp_t
Audio packet timestamp.
int32_t timestamp_diff_t
Audio packet timestamps difference.
Various units used in packets.
Parameters for latency monitor.
float max_scaling_delta
Maximum allowed freq_coeff delta around one. If the scaling goes out of bounds, it is trimmed....
core::nanoseconds_t max_latency
Maximum allowed latency, nanoseconds. If the latency goes out of bounds, the session is terminated.
core::nanoseconds_t min_latency
Minimum allowed latency, nanoseconds. If the latency goes out of bounds, the session is terminated.
core::nanoseconds_t fe_update_interval
FreqEstimator update interval, nanoseconds. How often to run FreqEstimator and update Resampler scali...