X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=decklink_capture.h;h=f940241a854f7acc941b1af56d2a35567389458e;hb=d3e48df512d9476d3849227067792a3537bb094e;hp=0a9c37b0494539c3cc5c3bc3f8964793cefa6a77;hpb=08a992d58c34da8d8bbd70226f7e85c9f30d9514;p=nageru diff --git a/decklink_capture.h b/decklink_capture.h index 0a9c37b..f940241 100644 --- a/decklink_capture.h +++ b/decklink_capture.h @@ -5,12 +5,18 @@ #include #include #include +#include +#include +#include #include +#include "DeckLinkAPIModes.h" +#include "DeckLinkAPITypes.h" +#include "LinuxCOM.h" #include "bmusb/bmusb.h" class IDeckLink; -class IDeckLinkDisplayMode; +class IDeckLinkConfiguration; // TODO: Adjust CaptureInterface to be a little less bmusb-centric. // There are too many member functions here that don't really do anything. @@ -88,6 +94,14 @@ public: void set_video_mode(uint32_t video_mode_id) override; uint32_t get_current_video_mode() const override { return current_video_mode; } + std::set get_available_pixel_formats() const override { + return std::set{ bmusb::PixelFormat_8BitYCbCr, bmusb::PixelFormat_10BitYCbCr }; + } + void set_pixel_format(bmusb::PixelFormat pixel_format) override; + bmusb::PixelFormat get_current_pixel_format() const override { + return current_pixel_format; + } + 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; } @@ -121,9 +135,13 @@ private: IDeckLinkInput *input = nullptr; BMDTimeValue frame_duration; BMDTimeScale time_scale; + BMDFieldDominance field_dominance; + bool running = false; + bool supports_autodetect = false; std::map video_modes; BMDDisplayMode current_video_mode; + bmusb::PixelFormat current_pixel_format = bmusb::PixelFormat_8BitYCbCr; std::map video_inputs; BMDVideoConnection current_video_input;