From 6a7683fc4425e8d8faf9c29b0f7f18cd9a9cb06f Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 4 Mar 2016 01:24:10 +0100 Subject: [PATCH] Tweak get_available_video_modes() interface. --- bmusb | 2 +- decklink_capture.cpp | 4 ++-- decklink_capture.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bmusb b/bmusb index 753cbaf..487a136 160000 --- a/bmusb +++ b/bmusb @@ -1 +1 @@ -Subproject commit 753cbaf5cec7411bdfe5171404c8586b8015faec +Subproject commit 487a136592e4bd5acda92d35cf52fe4489c69bbf diff --git a/decklink_capture.cpp b/decklink_capture.cpp index 57d364d..f2731ac 100644 --- a/decklink_capture.cpp +++ b/decklink_capture.cpp @@ -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. diff --git a/decklink_capture.h b/decklink_capture.h index 62723bc..7c2c5a3 100644 --- a/decklink_capture.h +++ b/decklink_capture.h @@ -75,7 +75,7 @@ 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; private: @@ -97,7 +97,7 @@ private: BMDTimeValue frame_duration; BMDTimeScale time_scale; - std::vector video_modes; + std::map video_modes; BMDDisplayMode current_video_mode; }; -- 2.39.2