X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=decklink_capture.h;h=69ab08e3cd48285e399c4a57d0bf5af932060003;hb=0912e41e8f564970ef32acd2db75685e47de1f48;hp=62723bcee7c73c425bdbffbeab7ec07f1a2e03fd;hpb=6ccc929592ef239dc4d011d22facaf19d098567c;p=nageru diff --git a/decklink_capture.h b/decklink_capture.h index 62723bc..69ab08e 100644 --- a/decklink_capture.h +++ b/decklink_capture.h @@ -75,10 +75,21 @@ public: void start_bm_capture() override; void stop_dequeue_thread() override; - std::vector get_available_video_modes() const override { return video_modes; } + std::map get_available_video_modes() const override { return video_modes; } void set_video_mode(uint32_t video_mode_id) override; + uint32_t get_current_video_mode() const override { return current_video_mode; } + + std::map get_available_video_inputs() const override { return video_inputs; } + void set_video_input(uint32_t video_input_id) override; + uint32_t get_current_video_input() const override { return current_video_input; } + + std::map get_available_audio_inputs() const override { return audio_inputs; } + void set_audio_input(uint32_t audio_input_id) override; + uint32_t get_current_audio_input() const override { return current_audio_input; } private: + void set_video_mode_no_restart(uint32_t video_mode_id); + std::atomic refcount{1}; bool done_init = false; std::string description; @@ -93,12 +104,20 @@ private: FrameAllocator *audio_frame_allocator = nullptr; frame_callback_t frame_callback = nullptr; + IDeckLinkConfiguration *config = nullptr; + IDeckLinkInput *input = nullptr; BMDTimeValue frame_duration; BMDTimeScale time_scale; - std::vector video_modes; + std::map video_modes; BMDDisplayMode current_video_mode; + + std::map video_inputs; + BMDVideoConnection current_video_input; + + std::map audio_inputs; + BMDAudioConnection current_audio_input; }; #endif // !defined(_DECKLINK_CAPTURE_H)