X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=decklink_capture.h;h=322adb5b0d6c62352f0397c4a357c7c66fc837ec;hb=96943efedcea66dab5ab6500358951e9f249aef2;hp=c591cdc9867424fb84e58271f26afa4402e18679;hpb=e3bb32331aa8f0c63a43fb5434082134a6fbed12;p=nageru diff --git a/decklink_capture.h b/decklink_capture.h index c591cdc..322adb5 100644 --- a/decklink_capture.h +++ b/decklink_capture.h @@ -71,15 +71,22 @@ public: return description; } - void configure_card() override {} + void configure_card() override; void start_bm_capture() override; void stop_dequeue_thread() override; + 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; } + private: + void set_video_mode_no_restart(uint32_t video_mode_id); + std::atomic refcount{1}; bool done_init = false; std::string description; uint16_t timecode = 0; + int card_index; bool has_dequeue_callbacks = false; std::function dequeue_init_callback = nullptr; @@ -92,6 +99,9 @@ private: IDeckLinkInput *input = nullptr; BMDTimeValue frame_duration; BMDTimeScale time_scale; + + std::map video_modes; + BMDDisplayMode current_video_mode; }; #endif // !defined(_DECKLINK_CAPTURE_H)