X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mixer.h;h=05471d6d61ae550af47a8ceb03faebfbc29697ca;hb=08a992d58c34da8d8bbd70226f7e85c9f30d9514;hp=1d6d0308ca5570ee926b2bab0fa4b44f8b58835a;hpb=79e3f6d7dfe2528d38e84564fcaf181e8f1bf5a9;p=nageru diff --git a/mixer.h b/mixer.h index 1d6d030..05471d6 100644 --- a/mixer.h +++ b/mixer.h @@ -301,6 +301,12 @@ public: gain_staging_db = gain_db; } + float get_gain_staging_db() const + { + std::unique_lock lock(compressor_mutex); + return gain_staging_db; + } + void set_gain_staging_auto(bool enabled) { std::unique_lock lock(compressor_mutex); @@ -326,6 +332,12 @@ public: final_makeup_gain_auto = enabled; } + bool get_final_makeup_gain_auto() const + { + std::unique_lock lock(compressor_mutex); + return final_makeup_gain_auto; + } + void schedule_cut() { should_cut = true; @@ -340,7 +352,7 @@ public: return cards[card_index].capture->get_description(); } - std::map get_available_video_modes(unsigned card_index) const { + std::map get_available_video_modes(unsigned card_index) const { assert(card_index < num_cards); return cards[card_index].capture->get_available_video_modes(); } @@ -387,11 +399,15 @@ public: cards[card_index].capture->set_audio_input(input); } + void change_x264_bitrate(unsigned rate_kbit) { + video_encoder->change_x264_bitrate(rate_kbit); + } + 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); @@ -428,7 +444,7 @@ private: 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 frame_allocator;