12 #ifndef ROC_AUDIO_WATCHDOG_H_
13 #define ROC_AUDIO_WATCHDOG_H_
117 void update_blank_timeout_(
const Frame& frame,
119 bool check_blank_timeout_()
const;
121 void update_drops_timeout_(
const Frame& frame,
123 bool check_drops_timeout_();
125 void update_warmup_();
127 void update_status_(
const Frame& frame);
128 void flush_status_();
145 unsigned curr_window_flags_;
Sample specification. Describes sample rate and channels.
virtual bool read(Frame &frame)
Read audio frame.
bool is_valid() const
Check if object is successfully constructed.
bool is_alive() const
Check if stream is still alive.
Watchdog(IFrameReader &reader, const SampleSpec &sample_spec, const WatchdogConfig &config, core::IArena &arena)
Initialize.
Base class for non-copyable objects.
int64_t nanoseconds_t
Nanoseconds.
uint32_t stream_timestamp_t
Packet stream timestamp.
core::nanoseconds_t choppy_playback_window
Window size of detecting stuttering, nanoseconds.
WatchdogConfig()
Initialize config with default values.
void deduce_defaults(const core::nanoseconds_t target_latency)
Automatically fill missing settings.
core::nanoseconds_t choppy_playback_timeout
Timeout for frequent stuttering, nanoseconds.
size_t frame_status_window
Frame status window size for logging, number of frames.
core::nanoseconds_t no_playback_timeout
Timeout for the lack of packets, nanoseconds.
core::nanoseconds_t warmup_duration
Duration of the warmup phase in the beginning, nanoseconds.
Various units used in packets.