[FFmpeg-cvslog] avdevice/decklink: warn about too old decklink API version
Marton Balint
git at videolan.org
Thu Dec 3 19:57:12 EET 2020
ffmpeg | branch: master | Marton Balint <cus at passwd.hu> | Thu Oct 8 21:31:24 2020 +0200| [a6f6726a815922f14723440029a96bdc93ea15a1] | committer: Marton Balint
avdevice/decklink: warn about too old decklink API version
Signed-off-by: Marton Balint <cus at passwd.hu>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a6f6726a815922f14723440029a96bdc93ea15a1
---
libavdevice/decklink_common.cpp | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/libavdevice/decklink_common.cpp b/libavdevice/decklink_common.cpp
index 8b58ede1ef..24aa9b1d13 100644
--- a/libavdevice/decklink_common.cpp
+++ b/libavdevice/decklink_common.cpp
@@ -70,9 +70,30 @@ static IDeckLinkIterator *decklink_create_iterator(AVFormatContext *avctx)
#else
iter = CreateDeckLinkIteratorInstance();
#endif
- if (!iter)
+ if (!iter) {
av_log(avctx, AV_LOG_ERROR, "Could not create DeckLink iterator. "
"Make sure you have DeckLink drivers " BLACKMAGIC_DECKLINK_API_VERSION_STRING " or newer installed.\n");
+ } else {
+ IDeckLinkAPIInformation *api;
+ int64_t version;
+#ifdef _WIN32
+ if (CoCreateInstance(CLSID_CDeckLinkAPIInformation, NULL, CLSCTX_ALL,
+ IID_IDeckLinkAPIInformation, (void**) &api) != S_OK) {
+ api = NULL;
+ }
+#else
+ api = CreateDeckLinkAPIInformationInstance();
+#endif
+ if (api && api->GetInt(BMDDeckLinkAPIVersion, &version) == S_OK) {
+ if (version < BLACKMAGIC_DECKLINK_API_VERSION)
+ av_log(avctx, AV_LOG_WARNING, "Installed DeckLink drivers are too old and may be incompatible with the SDK this module was built against. "
+ "Make sure you have DeckLink drivers " BLACKMAGIC_DECKLINK_API_VERSION_STRING " or newer installed.\n");
+ } else {
+ av_log(avctx, AV_LOG_ERROR, "Failed to check installed DeckLink API version.\n");
+ }
+ if (api)
+ api->Release();
+ }
return iter;
}
More information about the ffmpeg-cvslog
mailing list