X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fmixer.h;h=49afa7f1f2f7a0e1ce7254e05e0bef3b2b6f8027;hb=8206e97bbc404b36e67b981d63e761ab9ce07c4f;hp=69b28f58826bb7c4603107d3f7efa668b97e196c;hpb=f8da8feaff269b75480625e1384951c20c3a529d;p=nageru diff --git a/nageru/mixer.h b/nageru/mixer.h index 69b28f5..49afa7f 100644 --- a/nageru/mixer.h +++ b/nageru/mixer.h @@ -23,6 +23,7 @@ #include #include +#include #include #include "audio_mixer.h" @@ -288,6 +289,11 @@ public: theme->set_wb(channel, r, g, b); } + std::string format_status_line(const std::string &disk_space_left_text, double file_length_seconds) + { + return theme->format_status_line(disk_space_left_text, file_length_seconds); + } + // Note: You can also get this through the global variable global_audio_mixer. AudioMixer *get_audio_mixer() { return audio_mixer.get(); } const AudioMixer *get_audio_mixer() const { return audio_mixer.get(); } @@ -532,6 +538,7 @@ private: std::function upload_func; // Needs to be called to actually upload the texture to OpenGL. unsigned dropped_frames = 0; // Number of dropped frames before this one. std::chrono::steady_clock::time_point received_timestamp = std::chrono::steady_clock::time_point::min(); + movit::RGBTriplet neutral_color{1.0f, 1.0f, 1.0f}; // Used for MJPEG encoding. (upload_func packs everything it needs // into the functor, but would otherwise also use these.) @@ -570,6 +577,7 @@ private: JitterHistory output_jitter_history; CaptureCard cards[MAX_VIDEO_CARDS]; // Protected by . YCbCrInterpretation ycbcr_interpretation[MAX_VIDEO_CARDS]; // Protected by . + movit::RGBTriplet last_received_neutral_color[MAX_VIDEO_CARDS]; // Used by the mixer thread only. Constructor-initialiezd. std::unique_ptr audio_mixer; // Same as global_audio_mixer (see audio_mixer.h). bool input_card_is_master_clock(unsigned card_index, unsigned master_card_index) const; struct OutputFrameInfo {