On 03.12.2014 12:06, Jon bae wrote:
Thanks Ramiro for the correction!
Here is the new patch. (Is it better to post directly the patch, or is ok
as a attachment?)
Attachment is better. But please avoid top-posting in this mailing-list.
2014-12-02 22:19 GMT+01:00 Ramiro Polla <ramiro.po...@gmail.com>:
On 02.12.2014 20:30, Jon bae wrote:
Here is the other patch for decklink_common.cpp. It fix the error:
COM initialization failed
[decklink @ 02e5b520] Could not create DeckLink iterator
dummy: Immediate exit request
From 203eba2fad14dd6d84552d6c22899792e80b53bb Mon Sep 17 00:00:00 2001
From: Jonathan Baecker <jonba...@gmail.com>
Date: Tue, 2 Dec 2014 20:12:38 +0100
Subject: [PATCH 2/2] device list error in decklink_common
Signed-off-by: Jonathan Baecker <jonba...@gmail.com>
---
libavdevice/decklink_common.cpp | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/libavdevice/decklink_common.cpp
b/libavdevice/decklink_common.cpp
index 8eff910..8f7e32a 100644
--- a/libavdevice/decklink_common.cpp
+++ b/libavdevice/decklink_common.cpp
@@ -42,16 +42,20 @@ IDeckLinkIterator *CreateDeckLinkIteratorInstance
(void)
{
IDeckLinkIterator *iter;
- if (CoInitialize(NULL) != S_OK) {
- av_log(NULL, AV_LOG_ERROR, "COM initialization failed.\n");
- return NULL;
- }
-
- if (CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_ALL,
- IID_IDeckLinkIterator, (void**) &iter) != S_OK)
{
- av_log(NULL, AV_LOG_ERROR, "DeckLink drivers not installed.\n");
- return NULL;
- }
+ HRESULT result;
+ /* Initialize COM on this thread */
+ result = CoInitialize(NULL);
+ if (FAILED(result)) {
+ av_log(NULL, AV_LOG_ERROR, "COM initialization failed.\n");
+ return NULL;
+ }
+
+ /* Create an IDeckLinkIterator object to enumerate all DeckLink
cards in the system */
+ result = CoCreateInstance(CLSID_CDeckLinkIterator, NULL,
CLSCTX_ALL, IID_IDeckLinkIterator, (void**)&iter);
+ if (FAILED(result)) {
+ av_log(NULL, AV_LOG_ERROR, "DeckLink drivers not installed.\n");
+ return NULL;
+ }
return iter;
}
--
2.2.0
This code is Copyright (c) Blackmagic Design. Try just changing the check
for CoInitialize(NULL) from "!= S_OK" to "< 0".
From 3c3d5dda659fe30c68a81b0a711cb09bcb5be443 Mon Sep 17 00:00:00 2001
From: Jonathan Baecker <jonba...@gmail.com>
Date: Wed, 3 Dec 2014 12:03:12 +0100
Subject: [PATCH] fix COM initialization failed
Signed-off-by: Jonathan Baecker <jonba...@gmail.com>
---
libavdevice/decklink_common.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavdevice/decklink_common.cpp b/libavdevice/decklink_common.cpp
index 6899bd2..4252552 100644
--- a/libavdevice/decklink_common.cpp
+++ b/libavdevice/decklink_common.cpp
@@ -42,13 +42,13 @@ IDeckLinkIterator *CreateDeckLinkIteratorInstance(void)
{
IDeckLinkIterator *iter;
- if (CoInitialize(NULL) != S_OK) {
+ if (CoInitialize(NULL) < 0) {
av_log(NULL, AV_LOG_ERROR, "COM initialization failed.\n");
return NULL;
}
if (CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_ALL,
- IID_IDeckLinkIterator, (void**) &iter) != S_OK) {
+ IID_IDeckLinkIterator, (void**) &iter) < 0) {
av_log(NULL, AV_LOG_ERROR, "DeckLink drivers not installed.\n");
return NULL;
}
The CoCreateInstance check doesn't need to be changed.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel