Changeset 4661
- Timestamp:
- 03/02/10 12:44:50 (3 years ago)
- Location:
- vic/branches/mpeg4
- Files:
-
- 2 modified
-
vic.2008.vcproj (modified) (4 diffs)
-
video/grabber-decklink.cpp (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
vic/branches/mpeg4/vic.2008.vcproj
r4576 r4661 75 75 <Tool 76 76 Name="VCLinkerTool" 77 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib"77 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib" 78 78 LinkIncremental="2" 79 79 AdditionalLibraryDirectories="C:\Tcl\lib;"$(DXSDK_DIR)\Lib\x86";"$(SolutionDir)Debug"" … … 158 158 <Tool 159 159 Name="VCLinkerTool" 160 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib"160 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib" 161 161 LinkIncremental="1" 162 162 AdditionalLibraryDirectories="C:\Tcl\lib;"$(DXSDK_DIR)\Lib\x86";"$(SolutionDir)Release"" … … 242 242 <Tool 243 243 Name="VCLinkerTool" 244 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.a libavcodec.a libavutil.a libpostproc.a libswscale.a libpthread.a libx264.a libz.a"244 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.a libavcodec.a libavutil.a libpostproc.a libswscale.a libpthread.a libx264.a libz.a" 245 245 LinkIncremental="2" 246 246 AdditionalLibraryDirectories="C:\Tcl\lib;"$(DXSDK_DIR)\Lib\x86";C:\msys\1.0\lib;"C:\mingw\lib\gcc\mingw32\4.2.1-sjlj";c:\mingw\local\lib;c:\mingw\local\bin;c:\mingw\lib;C:\msys\lib;"$(SolutionDir)Debug";C:\msys\1.0\local\lib;C:\msys\local\lib;C:\msys\1.0\lib\gcc\mingw32\4.4.0;C:\msys\1.0\lib\gcc\mingw32\4.2.0;C:\msys\lib\gcc\mingw32\4.4.0;C:\msys\lib\gcc\mingw32\4.2.0" … … 328 328 <Tool 329 329 Name="VCLinkerTool" 330 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.a libavcodec.a libavutil.a libpostproc.a libswscale.a libpthread.a libx264.a libz.a"330 AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.a libavcodec.a libavutil.a libpostproc.a libswscale.a libpthread.a libx264.a libz.a" 331 331 LinkIncremental="1" 332 332 AdditionalLibraryDirectories="C:\Tcl\lib;"$(DXSDK_DIR)\Lib\x86";C:\msys\1.0\lib;"C:\mingw\lib\gcc\mingw32\4.2.1-sjlj";c:\mingw\local\lib;c:\mingw\local\bin;c:\mingw\lib;C:\msys\lib;"$(SolutionDir)Release";C:\msys\1.0\local\lib;C:\msys\local\lib;C:\msys\1.0\lib\gcc\mingw32\4.4.0;C:\msys\1.0\lib\gcc\mingw32\4.2.0;C:\msys\lib\gcc\mingw32\4.4.0;C:\msys\lib\gcc\mingw32\4.2.0" -
vic/branches/mpeg4/video/grabber-decklink.cpp
r4656 r4661 47 47 48 48 #if defined(_WIN32) || defined(_WIN64) 49 #include <atlbase.h> 49 #include <objbase.h> 50 #include <comutil.h> 50 51 #include "DeckLinkAPI_h.h" 51 52 #include "inttypes.h" … … 90 91 mReadIndex = 0; 91 92 mWriteIndex = 0; 93 mLastReadFrameNum = 0; 94 mLastWriteFrameNum = 0; 92 95 #ifdef HAVE_SWSCALE 93 96 sws_context = NULL; … … 113 116 return NULL; 114 117 } 118 119 // ignore older frames 120 if (mLastReadFrameNum >= mBufferFrameNum[mReadIndex] && mLastReadFrameNum <= 0xFFFFFFFF - mBufferSize) { 121 return NULL; 122 } 123 mLastReadFrameNum = mBufferFrameNum[mReadIndex]; 115 124 116 125 uint8_t *retval = (uint8_t *)(mBuffer[mReadIndex]); … … 236 245 237 246 // fprintf(stderr, "*push* mBuffer[%i] = 0x%lx\n", mWriteIndex, mBuffer[mWriteIndex]); 247 mBufferFrameNum[mWriteIndex] = ++mLastWriteFrameNum; 238 248 mWriteIndex = nextElementIndex; 239 240 249 } 241 250 … … 253 262 static const int32_t mBufferSize = 4; 254 263 volatile uint8_t *mBuffer[mBufferSize]; 264 volatile int32_t mLastReadFrameNum; 265 volatile int32_t mLastWriteFrameNum; 266 volatile uint32_t mBufferFrameNum[mBufferSize]; 255 267 #ifdef HAVE_SWSCALE 256 268 SwsContext *sws_context; … … 324 336 } 325 337 326 CComPtr<IDeckLinkIterator> deckLinkIterator = NULL; 327 if (CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_INPROC_SERVER, IID_IDeckLinkIterator, (void**)&deckLinkIterator) != S_OK || deckLinkIterator == NULL) { 338 IDeckLinkIterator* deckLinkIterator; 339 result = CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_INPROC_SERVER, IID_IDeckLinkIterator, (void**)&deckLinkIterator); 340 if (FAILED(result)) { 328 341 debug_msg("DeckLinkScanner: DeckLink iterator instance could not be created\n"); 329 342 CoUninitialize(); … … 345 358 #if defined(_WIN32) || defined(_WIN64) 346 359 char deviceNameString[64] = {}; 347 CComBSTR cardNameBSTR;360 BSTR cardNameBSTR; 348 361 349 362 result = deckLink->GetModelName(&cardNameBSTR); 350 363 if (result == S_OK) { 351 CW2Atmpstr1(cardNameBSTR);364 _bstr_t tmpstr1(cardNameBSTR); 352 365 strncpy_s(deviceNameString, sizeof(deviceNameString), tmpstr1, _TRUNCATE); 353 366 } … … 463 476 #if defined(_WIN32) || defined(_WIN64) 464 477 char displayModeString[64] = {}; 465 CComBSTR displayModeNameBSTR;478 BSTR displayModeNameBSTR; 466 479 467 480 result = displayMode->GetName(&displayModeNameBSTR); 468 481 if (result == S_OK) { 469 CW2Atmpstr1(displayModeNameBSTR);482 _bstr_t tmpstr1(displayModeNameBSTR); 470 483 strncpy_s(displayModeString, sizeof(displayModeString), tmpstr1, _TRUNCATE); 471 484 } … … 643 656 #if defined(_WIN32) || defined(_WIN64) 644 657 char displayModeString[64] = {}; 645 CComBSTR displayModeNameBSTR;658 BSTR displayModeNameBSTR; 646 659 647 660 result = displayMode->GetName(&displayModeNameBSTR); 648 661 if (result == S_OK) { 649 CW2Atmpstr1(displayModeNameBSTR);662 _bstr_t tmpstr1(displayModeNameBSTR); 650 663 strncpy_s(displayModeString, sizeof(displayModeString), tmpstr1, _TRUNCATE); 651 664 }
