]> git.sesse.net Git - nageru/blobdiff - nageru/decklink_util.cpp
Fix a Clang 19 warning.
[nageru] / nageru / decklink_util.cpp
index 33a7933a033e26c08d91d59e1f4919a0717d55b6..1686389d291b8d7a02b44983a0d6f0dcae050014 100644 (file)
@@ -1,7 +1,17 @@
-#include <DeckLinkAPI.h>
-#include <DeckLinkAPIModes.h>
+#include "DeckLinkAPI.h"
+#include "DeckLinkAPIDiscovery.h"
+#include "DeckLinkAPIModes.h"
+#include "DeckLinkAPITypes.h"
+#include "LinuxCOM.h"
 
 #include <assert.h>
+#include <bmusb/bmusb.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <map>
+#include <stdlib.h>
+#include <utility>
 
 #include "decklink_util.h"
 #include "flags.h"
@@ -90,3 +100,22 @@ BMDVideoConnection pick_default_video_connection(IDeckLink *card, BMDDeckLinkAtt
                return connection_mask & (-connection_mask);
        }
 }
+
+bool decklink_card_is_active(IDeckLink *card, unsigned card_index)
+{
+       IDeckLinkStatus *status;
+       if (card->QueryInterface(IID_IDeckLinkStatus, (void**)&status) != S_OK) {
+               fprintf(stderr, "Card %u has no status interface\n", card_index);
+               abort();
+       }
+
+       int64_t duplex_mode;
+       if (status->GetInt(bmdDeckLinkStatusDuplexMode, &duplex_mode) != S_OK) {
+               fprintf(stderr, "Could not query duplex mode for card %u\n", card_index);
+               abort();
+       }
+
+       status->Release();
+
+       return (duplex_mode != bmdDuplexStatusInactive);
+}