]> git.sesse.net Git - nageru/commitdiff
Tweak get_available_video_modes() interface.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 4 Mar 2016 00:24:10 +0000 (01:24 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 4 Mar 2016 00:24:10 +0000 (01:24 +0100)
bmusb
decklink_capture.cpp
decklink_capture.h

diff --git a/bmusb b/bmusb
index 753cbaf5cec7411bdfe5171404c8586b8015faec..487a136592e4bd5acda92d35cf52fe4489c69bbf 160000 (submodule)
--- a/bmusb
+++ b/bmusb
@@ -1 +1 @@
-Subproject commit 753cbaf5cec7411bdfe5171404c8586b8015faec
+Subproject commit 487a136592e4bd5acda92d35cf52fe4489c69bbf
index 57d364d0a24404a0aa94830c5166b2787de4f5d6..f2731acae422c9dbe9d259b77917ebe679a30621 100644 (file)
@@ -177,7 +177,6 @@ DeckLinkCapture::DeckLinkCapture(IDeckLink *card, int card_index)
 
        for (IDeckLinkDisplayMode *mode_ptr; mode_it->Next(&mode_ptr) == S_OK; mode_ptr->Release()) {
                VideoMode mode;
-               mode.id = mode_ptr->GetDisplayMode();
 
                const char *mode_name;
                if (mode_ptr->GetName(&mode_name) != S_OK) {
@@ -203,7 +202,8 @@ DeckLinkCapture::DeckLinkCapture(IDeckLink *card, int card_index)
                // TODO: Respect the TFF/BFF flag.
                mode.interlaced = (mode_ptr->GetFieldDominance() == bmdLowerFieldFirst || mode_ptr->GetFieldDominance() == bmdUpperFieldFirst);
 
-               video_modes.push_back(mode);
+               uint32_t id = mode_ptr->GetDisplayMode();
+               video_modes.insert(make_pair(id, mode));
        }
 
        // TODO: Make the user mode selectable.
index 62723bcee7c73c425bdbffbeab7ec07f1a2e03fd..7c2c5a3e138d2062fed19b189d504dce695cfe46 100644 (file)
@@ -75,7 +75,7 @@ public:
        void start_bm_capture() override;
        void stop_dequeue_thread() override;
 
-       std::vector<VideoMode> get_available_video_modes() const override { return video_modes; }
+       std::map<uint32_t, VideoMode> get_available_video_modes() const override { return video_modes; }
        void set_video_mode(uint32_t video_mode_id) override;
 
 private:
@@ -97,7 +97,7 @@ private:
        BMDTimeValue frame_duration;
        BMDTimeScale time_scale;
 
-       std::vector<VideoMode> video_modes;
+       std::map<uint32_t, VideoMode> video_modes;
        BMDDisplayMode current_video_mode;
 };