#include "timebase.h"
#include "stereocompressor.h"
#include "filter.h"
+#include "input_state.h"
class H264Encoder;
class QSurface;
bool should_quit = false;
RefCountedFrame new_frame;
int64_t new_frame_length; // In TIMEBASE units.
+ bool new_frame_interlaced;
+ unsigned new_frame_field; // Which field (0 or 1) of the frame to use. Always 0 for progressive.
GLsync new_data_ready_fence; // Whether new_frame is ready for rendering.
std::condition_variable new_data_ready_changed; // Set whenever new_data_ready is changed.
unsigned dropped_frames = 0; // Before new_frame.
};
CaptureCard cards[MAX_CARDS]; // protected by <bmusb_mutex>
- RefCountedFrame bmusb_current_rendering_frame[MAX_CARDS];
+ InputState input_state;
class OutputChannel {
public:
std::atomic<bool> should_quit{false};
audio_level_callback_t audio_level_callback = nullptr;
- Ebu_r128_proc r128;
+ std::mutex r128_mutex;
+ Ebu_r128_proc r128; // Under r128_mutex.
Resampler peak_resampler;
std::atomic<float> peak{0.0f};