⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dx90sdk-update-gcc.patch

📁 这是一个压缩解压包,用C语言进行编程的,里面有详细的源代码.
💻 PATCH
字号:
diff -burN /c/DX90SDK-orig/Include/DShow.h ./Include/DShow.h--- /c/DX90SDK-orig/Include/DShow.h	Mon Aug 18 21:22:52 2003+++ ./Include/DShow.h	Tue Jul 27 20:43:16 2004@@ -44,7 +44,7 @@ // Include DirectShow include files /////////////////////////////////////////////////////////////////////////// #include <strmif.h>     // Generated IDL header file for streams interfaces-#include <amvideo.h>    // ActiveMovie video interfaces and definitions+#include <Amvideo.h>    // ActiveMovie video interfaces and definitions #include <amaudio.h>    // ActiveMovie audio interfaces and definitions #include <control.h>    // generated from control.odl #include <evcode.h>     // event code definitionsdiff -burN /c/DX90SDK-orig/Include/errors.h ./Include/errors.h--- /c/DX90SDK-orig/Include/errors.h	Mon Aug 18 21:22:52 2003+++ ./Include/errors.h	Tue Jul 27 20:44:04 2004@@ -24,7 +24,7 @@ #define VFW_FIRST_CODE   0x200 #define MAX_ERROR_TEXT_LEN 160 -#include <VFWMSGS.H>                    // includes all message definitions+#include <vfwmsgs.h>                    // includes all message definitions  typedef BOOL (WINAPI* AMGETERRORTEXTPROCA)(HRESULT, char *, DWORD); typedef BOOL (WINAPI* AMGETERRORTEXTPROCW)(HRESULT, WCHAR *, DWORD);diff -burN /c/DX90SDK-orig/Include/strmif.h ./Include/strmif.h--- /c/DX90SDK-orig/Include/strmif.h	Mon Aug 18 21:22:54 2003+++ ./Include/strmif.h	Tue Jul 27 20:45:07 2004@@ -5604,7 +5604,7 @@     {     DWORD dwVersion;     DWORD dwMerit;-    /* [switch_type][switch_is] */ union +    /* [switch_type][switch_is] */ struct         {         /* [case()] */ struct              {@@ -28732,8 +28732,8 @@  typedef struct tagVMRGUID     {-    GUID *pGUID;-    GUID GUID;+    struct _GUID *pGUID;+    struct _GUID GUID;     } 	VMRGUID;  typedef struct tagVMRMONITORINFOdiff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/Makefile ./Samples/C++/DirectShow/BaseClasses/Makefile--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/Makefile	Thu Jan  1 10:00:00 1970+++ ./Samples/C++/DirectShow/BaseClasses/Makefile	Tue Jul 27 20:47:27 2004@@ -0,0 +1,27 @@+SRC=amextra.cpp amfilter.cpp amvideo.cpp combase.cpp cprop.cpp ctlutil.cpp ddmm.cpp dllentry.cpp dllsetup.cpp mtype.cpp outputq.cpp pstream.cpp pullpin.cpp refclock.cpp renbase.cpp schedule.cpp seekpt.cpp source.cpp strmctl.cpp sysclock.cpp transfrm.cpp transip.cpp videoctl.cpp vtrans.cpp winctrl.cpp winutil.cpp wxdebug.cpp wxlist.cpp wxutil.cpp++DXTREE=../../../..+DXBASECLASSES=$(DXTREE)/Samples/C++/DirectShow/BaseClasses+OBJ=$(SRC:.cpp=.o)+LIB=strmbase.lib+RANLIB=ranlib++CXX=g+++CXXFLAGS=-O2 -fno-for-scope -mthreads++all: $(LIB)++$(LIB): $(OBJ)+	$(AR) $(ARFLAGS) $@ $^+	$(RANLIB) $@++.cpp.o:+	$(CXX) $(CXXFLAGS) \+	-DRELEASE \+	-I$(DXTREE)/Include \+	-I$(DXBASECLASSES) \+	-include $(DXTREE)/mingw_dshow_port.h \+	-c $(CXXFLAGS) $< -o $@++clean:+	rm $(OBJ)diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/amfilter.cpp ./Samples/C++/DirectShow/BaseClasses/amfilter.cpp--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/amfilter.cpp	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/amfilter.cpp	Tue Jul 27 20:42:25 2004@@ -1363,7 +1363,7 @@          /*  Make sure the destructor doesn't free these */         cmt.pbFormat = NULL;-        cmt.cbFormat = NULL;+        cmt.cbFormat = 0;         cmt.pUnk     = NULL;  diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/ctlutil.cpp ./Samples/C++/DirectShow/BaseClasses/ctlutil.cpp--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/ctlutil.cpp	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/ctlutil.cpp	Tue Jul 27 20:42:25 2004@@ -709,7 +709,7 @@  HRESULT CPosPassThru::GetSeekingLongLong-( HRESULT (__stdcall IMediaSeeking::*pMethod)( LONGLONG * )+( HRESULT ( GETSEEKINGLONGLONG_CALL IMediaSeeking::*pMethod)( LONGLONG * ) , LONGLONG * pll ) {diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/ctlutil.h ./Samples/C++/DirectShow/BaseClasses/ctlutil.h--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/ctlutil.h	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/ctlutil.h	Tue Jul 27 20:42:25 2004@@ -275,7 +275,7 @@     //  Prevent bugs from constructing from LONG (which gets     //  converted to double and then multiplied by 10000000     COARefTime(LONG);-    operator=(LONG);+    COARefTime& operator=(LONG); };  @@ -355,7 +355,12 @@     STDMETHODIMP CanSeekBackward(LONG *pCanSeekBackward);  private:-    HRESULT GetSeekingLongLong( HRESULT (__stdcall IMediaSeeking::*pMethod)( LONGLONG * ),+#if !defined(__GNUC__)+#define GETSEEKINGLONGLONG_CALL __stdcall+#else+#define GETSEEKINGLONGLONG_CALL+#endif+    HRESULT GetSeekingLongLong( HRESULT ( GETSEEKINGLONGLONG_CALL IMediaSeeking::*pMethod)( LONGLONG * ),                                 LONGLONG * pll ); }; diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/ddmm.cpp ./Samples/C++/DirectShow/BaseClasses/ddmm.cpp--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/ddmm.cpp	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/ddmm.cpp	Tue Jul 27 20:45:21 2004@@ -17,8 +17,8 @@  */ typedef struct { 	LPSTR   szDevice;-	GUID*   lpGUID;-	GUID    GUID;+	struct _GUID*   lpGUID;+	struct _GUID    GUID; 	BOOL    fFound; }   FindDeviceData; diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/mtype.cpp ./Samples/C++/DirectShow/BaseClasses/mtype.cpp--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/mtype.cpp	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/mtype.cpp	Tue Jul 27 20:42:25 2004@@ -13,7 +13,6 @@ // in the streams IDL file, but also has (non-virtual) functions  #include <streams.h>-#include <mmreg.h>  CMediaType::~CMediaType(){     FreeMediaType(*this);diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/refclock.h ./Samples/C++/DirectShow/BaseClasses/refclock.h--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/refclock.h	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/refclock.h	Tue Jul 27 20:42:25 2004@@ -14,7 +14,11 @@  const UINT RESOLUTION = 1;                      /* High resolution timer */ const INT ADVISE_CACHE = 4;                     /* Default cache size */+#if !defined(__GNUC__) const LONGLONG MAX_TIME = 0x7FFFFFFFFFFFFFFF;   /* Maximum LONGLONG value */+#else+const LONGLONG MAX_TIME = 0x7FFFFFFFFFFFFFFFLL;   /* Maximum LONGLONG value */+#endif  inline LONGLONG WINAPI ConvertToMilliseconds(const REFERENCE_TIME& RT) {diff -ur /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/streams.h.orig ./Samples/C++/DirectShow/BaseClasses/streams.h--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/streams.h      2004-07-27 23:04:18.000000000 +0200+++ ./Samples/C++/DirectShow/BaseClasses/streams.h   2004-07-27 23:03:57.000000000 +0200@@ -135,7 +135,7 @@ #include <reftime.h>    // Helper class for REFERENCE_TIME management #include <wxdebug.h>    // Debug support for logging and ASSERTs-#include <amvideo.h>    // ActiveMovie video interfaces and definitions+#include <Amvideo.h>    // ActiveMovie video interfaces and definitions //include amaudio.h explicitly if you need it.  it requires the DirectX SDK. //#include <amaudio.h>    // ActiveMovie audio interfaces and definitions #include <wxutil.h>     // General helper classes for threads etcdiff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/wxdebug.cpp ./Samples/C++/DirectShow/BaseClasses/wxdebug.cpp--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/wxdebug.cpp	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/wxdebug.cpp	Tue Jul 27 20:42:25 2004@@ -564,7 +564,7 @@     {         // re-read the registry every second. We cannot use RegNotify() to         // notice registry changes because it's not available on win9x.-        static g_dwLastRefresh = 0;+        static DWORD g_dwLastRefresh = 0;         DWORD dwTime = timeGetTime();         if(dwTime - g_dwLastRefresh > 1000) {             g_dwLastRefresh = dwTime;@@ -1143,7 +1143,33 @@     hr = pUnk->QueryInterface(IID_IPin, (void **)&pp);     if(SUCCEEDED(hr))     {-        CDisp::CDisp(pp);+/* --- copy from CDisp::CDisp(IPin*) --- */+        PIN_INFO pi;+        TCHAR str[MAX_PIN_NAME];+        CLSID clsid;++        if (pp) {+           pp->QueryPinInfo(&pi);+           pi.pFilter->GetClassID(&clsid);+           QueryPinInfoReleaseFilter(pi);+          #ifndef UNICODE+           WideCharToMultiByte(GetACP(), 0, pi.achName, lstrlenW(pi.achName) + 1,+                           str, MAX_PIN_NAME, NULL, NULL);+          #else+           lstrcpy(str, pi.achName);+          #endif+        } else {+           lstrcpy(str, TEXT("NULL IPin"));+        }++        m_pString = (PTCHAR) new TCHAR[lstrlen(str)+64];+        if (!m_pString) {+            pp->Release();+	    return;+        }++        wsprintf(m_pString, TEXT("%hs(%s)"), GuidNames[clsid], str);+/* --- copy from CDisp::CDisp(IPin*) --- */         pp->Release();         return;     }diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/wxutil.cpp ./Samples/C++/DirectShow/BaseClasses/wxutil.cpp--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/wxutil.cpp	Mon Aug 18 16:03:32 2003+++ ./Samples/C++/DirectShow/BaseClasses/wxutil.cpp	Tue Jul 27 20:42:25 2004@@ -742,8 +742,13 @@      /*  This will catch c == 0 and overflow */     if (uc <= p[1].QuadPart) {+#if !defined(__GNUC__)         return bSign ? (LONGLONG)0x8000000000000000 :                        (LONGLONG)0x7FFFFFFFFFFFFFFF;+#else+        return bSign ? (LONGLONG)0x8000000000000000LL :+                       (LONGLONG)0x7FFFFFFFFFFFFFFFLL;+#endif     }      DWORDLONG ullResult;@@ -903,8 +908,13 @@      /*  This will catch c == 0 and overflow */     if (uc <= p1) {+#if !defined(__GNUC__)         return bSign ? (LONGLONG)0x8000000000000000 :                        (LONGLONG)0x7FFFFFFFFFFFFFFF;+#else+        return bSign ? (LONGLONG)0x8000000000000000LL :+                       (LONGLONG)0x7FFFFFFFFFFFFFFFLL;+#endif     }      /*  Do the division */diff -burN /c/DX90SDK-orig/mingw_dshow_port.h ./mingw_dshow_port.h--- /c/DX90SDK-orig/mingw_dshow_port.h	Thu Jan  1 10:00:00 1970+++ ./mingw_dshow_port.h	Tue Jul 27 20:42:25 2004@@ -0,0 +1,12 @@+#include <wtypes.h>+#include <unknwn.h>+#include <ole2.h>+#include <limits.h>++#define _WINGDI_ 1+#define AM_NOVTABLE+#define _OBJBASE_H_+#undef _X86_+#define _I64_MAX LONG_LONG_MAX+#define EXTERN_GUID(itf,l1,s1,s2,c1,c2,c3,c4,c5,c6,c7,c8)  \+	EXTERN_C static const IID itf = {l1,s1,s2,{c1,c2,c3,c4,c5,c6,c7,c8} }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -