// Call after picking out a frame, so 0 means starvation.
void update_policy(std::chrono::steady_clock::time_point now,
std::chrono::steady_clock::time_point expected_next_frame,
+ int64_t input_frame_duration,
int64_t master_frame_duration,
double max_input_card_jitter_seconds,
double max_master_card_jitter_seconds);
std::vector<uint32_t> mode_scanlist[MAX_VIDEO_CARDS];
unsigned mode_scanlist_index[MAX_VIDEO_CARDS]{ 0 };
std::chrono::steady_clock::time_point last_mode_scan_change[MAX_VIDEO_CARDS];
-
- // Metrics.
- std::atomic<int64_t> metric_frames_output_total{0};
- std::atomic<int64_t> metric_frames_output_dropped{0};
- std::atomic<double> metric_start_time_seconds{0.0 / 0.0};
- std::atomic<int64_t> metrics_memory_used_bytes{0};
- std::atomic<double> metrics_memory_locked_limit_bytes{0.0 / 0.0};
};
extern Mixer *global_mixer;
-extern bool uses_mlock;
#endif // !defined(_MIXER_H)