3 #include "decklink.h"
\r
4 #include "util/util.h"
\r
6 #include "consumer/decklink_consumer.h"
\r
7 #include "producer/decklink_producer.h"
\r
9 #include <core/consumer/frame_consumer.h>
\r
10 #include <core/producer/frame_producer.h>
\r
12 #include "interop/DeckLinkAPI_h.h"
\r
14 #pragma warning(push)
\r
15 #pragma warning(disable : 4996)
\r
17 #include <atlbase.h>
\r
20 #include <atlhost.h>
\r
22 #pragma warning(push)
\r
26 void init_decklink()
\r
28 core::register_consumer_factory(create_decklink_consumer);
\r
29 core::register_producer_factory(create_decklink_producer);
\r
32 std::wstring get_decklink_version()
\r
34 std::wstring version = L"Unknown";
\r
36 ::CoInitialize(nullptr);
\r
39 CComPtr<IDeckLinkIterator> pDecklinkIterator;
\r
40 if(SUCCEEDED(pDecklinkIterator.CoCreateInstance(CLSID_CDeckLinkIterator)))
\r
41 version = get_version(pDecklinkIterator);
\r
49 std::vector<std::wstring> get_decklink_device_list()
\r
51 std::vector<std::wstring> devices;
\r
53 ::CoInitialize(nullptr);
\r
56 CComPtr<IDeckLinkIterator> pDecklinkIterator;
\r
57 if(SUCCEEDED(pDecklinkIterator.CoCreateInstance(CLSID_CDeckLinkIterator)))
\r
59 CComPtr<IDeckLink> decklink;
\r
60 for(int n = 1; pDecklinkIterator->Next(&decklink) == S_OK; ++n)
\r
62 BSTR model_name = L"Unknown";
\r
63 decklink->GetModelName(&model_name);
\r
64 devices.push_back(L"[" + boost::lexical_cast<std::wstring>(n) + L"] " + model_name);
\r