[Sumover-dev] [svn commit] r4631 - vic/branches/mpeg4/video

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Sun Feb 21 02:50:26 GMT 2010


Author: douglask
Date: Sun Feb 21 02:50:25 2010
New Revision: 4631

Modified:
   vic/branches/mpeg4/video/grabber-decklink.cpp

Log:
Needed to add call to Grabber::timeout() for Windows DeckLink grabber, otherwise the grabber thread would terminate.

Modified: vic/branches/mpeg4/video/grabber-decklink.cpp
==============================================================================
--- vic/branches/mpeg4/video/grabber-decklink.cpp	(original)
+++ vic/branches/mpeg4/video/grabber-decklink.cpp	Sun Feb 21 02:50:25 2010
@@ -241,19 +241,19 @@
     HRESULT result;
 
 #if defined(_WIN32) || defined(_WIN64) 
-	// Initialize COM on this thread
-	result = CoInitializeEx(NULL,COINIT_MULTITHREADED);
-	if (FAILED(result)) {
-		debug_msg("DeckLinkScanner: Failed COM subsystem initialisation.\n");
-		return;
-	}
+    // Initialize COM on this thread
+    result = CoInitializeEx(NULL,COINIT_MULTITHREADED);
+    if (FAILED(result)) {
+        debug_msg("DeckLinkScanner: Failed COM subsystem initialisation.\n");
+        return;
+    }
 
     CComPtr<IDeckLinkIterator> deckLinkIterator = NULL;
-	if (CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_ALL, IID_IDeckLinkIterator, (void**)&deckLinkIterator) != S_OK || deckLinkIterator == NULL) {
+    if (CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_INPROC_SERVER, IID_IDeckLinkIterator, (void**)&deckLinkIterator) != S_OK || deckLinkIterator == NULL) {
         debug_msg("DeckLinkScanner: DeckLink iterator instance could not be created\n");
         CoUninitialize();
         return;
-	}
+    }
 #else
     IDeckLinkIterator* deckLinkIterator;
     deckLinkIterator = CreateDeckLinkIteratorInstance();
@@ -272,16 +272,16 @@
         CComBSTR cardNameBSTR;
 
         result = deckLink->GetModelName(&cardNameBSTR);
-	    if (result == S_OK) {
+        if (result == S_OK) {
             CW2A tmpstr1(cardNameBSTR);
             strncpy_s(deviceNameString, sizeof(deviceNameString), tmpstr1, _TRUNCATE);
-	    }
+        }
 #elif __APPLE__
         char deviceNameString[64] = {};
         CFStringRef modelName;
 
         result = deckLink->GetModelName(&modelName);
-                
+
         if (result == S_OK) {
             CFStringGetCString(modelName, deviceNameString, sizeof(deviceNameString), kCFStringEncodingASCII);
         }
@@ -313,7 +313,7 @@
         }
     }
 #if defined(_WIN32) || defined(_WIN64) 
-	CoUninitialize();
+    CoUninitialize();
 #endif
 }
 
@@ -390,10 +390,10 @@
         CComBSTR displayModeNameBSTR;
 
         result = displayMode->GetName(&displayModeNameBSTR);
-	    if (result == S_OK) {
+        if (result == S_OK) {
             CW2A tmpstr1(displayModeNameBSTR);
             strncpy_s(displayModeString, sizeof(displayModeString), tmpstr1, _TRUNCATE);
-	    }
+        }
 #elif __APPLE__
         char displayModeString[64] = {};
 
@@ -565,10 +565,10 @@
                 CComBSTR displayModeNameBSTR;
 
                 result = displayMode->GetName(&displayModeNameBSTR);
-	            if (result == S_OK) {
+                if (result == S_OK) {
                     CW2A tmpstr1(displayModeNameBSTR);
                     strncpy_s(displayModeString, sizeof(displayModeString), tmpstr1, _TRUNCATE);
-	            }
+                }
 #elif __APPLE__
                 char displayModeString[64] = {};
 
@@ -694,6 +694,9 @@
     fprintf(stderr, "Grabber::start()\n");
     Grabber::start();
     running_ = 1;
+#if defined(_WIN32) || defined(_WIN64)
+    Grabber::timeout();
+#endif
 }
 
 void DeckLinkGrabber::stop()



More information about the Sumover-dev mailing list