#include <movit/flat_input.h>
#include <zita-resampler/resampler.h>
#include <atomic>
+#include <chrono>
#include <condition_variable>
#include <cstddef>
#include <functional>
gain_staging_db = gain_db;
}
+ float get_gain_staging_db() const
+ {
+ std::unique_lock<std::mutex> lock(compressor_mutex);
+ return gain_staging_db;
+ }
+
void set_gain_staging_auto(bool enabled)
{
std::unique_lock<std::mutex> lock(compressor_mutex);
final_makeup_gain_auto = enabled;
}
+ bool get_final_makeup_gain_auto() const
+ {
+ std::unique_lock<std::mutex> lock(compressor_mutex);
+ return final_makeup_gain_auto;
+ }
+
void schedule_cut()
{
should_cut = true;
return cards[card_index].capture->get_description();
}
- std::map<uint32_t, VideoMode> get_available_video_modes(unsigned card_index) const {
+ std::map<uint32_t, bmusb::VideoMode> get_available_video_modes(unsigned card_index) const {
assert(card_index < num_cards);
return cards[card_index].capture->get_available_video_modes();
}
}
private:
- void configure_card(unsigned card_index, CaptureInterface *capture, bool is_fake_capture);
+ void configure_card(unsigned card_index, bmusb::CaptureInterface *capture, bool is_fake_capture);
void bm_frame(unsigned card_index, uint16_t timecode,
- FrameAllocator::Frame video_frame, size_t video_offset, VideoFormat video_format,
- FrameAllocator::Frame audio_frame, size_t audio_offset, AudioFormat audio_format);
+ bmusb::FrameAllocator::Frame video_frame, size_t video_offset, bmusb::VideoFormat video_format,
+ bmusb::FrameAllocator::Frame audio_frame, size_t audio_offset, bmusb::AudioFormat audio_format);
void bm_hotplug_add(libusb_device *dev);
void bm_hotplug_remove(unsigned card_index);
void place_rectangle(movit::Effect *resample_effect, movit::Effect *padding_effect, float x0, float y0, float x1, float y1);
std::mutex bmusb_mutex;
bool has_bmusb_thread = false;
struct CaptureCard {
- CaptureInterface *capture = nullptr;
+ bmusb::CaptureInterface *capture = nullptr;
bool is_fake_capture;
std::unique_ptr<PBOFrameAllocator> frame_allocator;
bool is_mode_scanning[MAX_CARDS]{ false };
std::vector<uint32_t> mode_scanlist[MAX_CARDS];
unsigned mode_scanlist_index[MAX_CARDS]{ 0 };
- timespec last_mode_scan_change[MAX_CARDS];
+ std::chrono::steady_clock::time_point last_mode_scan_change[MAX_CARDS];
};
extern Mixer *global_mixer;