summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-02 17:41:11 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-02 17:41:11 +0000
commit12760fc513cb66f0fd39536c35a5898b6cc19498 (patch)
tree92ef075e02539a4fe44564acedb4c7e95c1ff1b7
parentf4f37e555a0fd2041009cbf431ea9ec58203f5de (diff)
downloadmpv-12760fc513cb66f0fd39536c35a5898b6cc19498.tar.bz2
mpv-12760fc513cb66f0fd39536c35a5898b6cc19498.tar.xz
Several hacks to fix compilation of tvi_dshow on MinGW64.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30169 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--loader/wine/basetsd.h4
-rw-r--r--loader/wine/winnt.h7
-rw-r--r--stream/tvi_dshow.c5
-rw-r--r--stream/tvi_dshow.h16
4 files changed, 27 insertions, 5 deletions
diff --git a/loader/wine/basetsd.h b/loader/wine/basetsd.h
index 0cc60c11e3..7a13d58dba 100644
--- a/loader/wine/basetsd.h
+++ b/loader/wine/basetsd.h
@@ -72,8 +72,8 @@ typedef unsigned __int64 __uint64;
#if defined(_WIN64)
-typedef __uint32 __ptr32;
-typedef void *__ptr64;
+//typedef __uint32 __ptr32;
+//typedef void *__ptr64;
#else /* FIXME: defined(_WIN32) */
diff --git a/loader/wine/winnt.h b/loader/wine/winnt.h
index b4c8ee1573..b79b528752 100644
--- a/loader/wine/winnt.h
+++ b/loader/wine/winnt.h
@@ -620,7 +620,8 @@ typedef struct CONTEXT
#endif /* __sparc__ */
#if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
-#error You need to define a CONTEXT for your CPU
+#warning You need to define a CONTEXT for your CPU
+typedef void CONTEXT;
#endif
typedef CONTEXT *PCONTEXT;
@@ -747,7 +748,7 @@ typedef HANDLE *PHANDLE;
#endif /* __sparc__ */
#ifndef DEFINE_REGS_ENTRYPOINT_0
-#error You need to define DEFINE_REGS_ENTRYPOINT macros for your CPU
+#warning You need to define DEFINE_REGS_ENTRYPOINT macros for your CPU
#endif
#ifdef __i386__
@@ -758,7 +759,7 @@ typedef HANDLE *PHANDLE;
#endif
#if !defined(GET_IP) && !defined(RC_INVOKED)
-# error You must define GET_IP for this CPU
+#warning You must define GET_IP for this CPU
#endif
/*
diff --git a/stream/tvi_dshow.c b/stream/tvi_dshow.c
index 97fb5f0d5f..46accd81ed 100644
--- a/stream/tvi_dshow.c
+++ b/stream/tvi_dshow.c
@@ -89,6 +89,11 @@
#include "tvi_dshow.h"
+#ifndef STDCALL
+// mingw64 needs this
+#define STDCALL __stdcall
+#endif
+
static tvi_handle_t *tvi_init_dshow(tv_param_t* tv_param);
/*
diff --git a/stream/tvi_dshow.h b/stream/tvi_dshow.h
index dc5a7c3741..3dea9d348a 100644
--- a/stream/tvi_dshow.h
+++ b/stream/tvi_dshow.h
@@ -434,6 +434,8 @@ DECLARE_INTERFACE(IAMCrossbar)
STDMETHOD(get_CrossbarPinInfo) (THIS_ BOOL, long, long *, long *);
};
+#ifndef __IPropertyBag_INTERFACE_DEFINED__
+#define __IPropertyBag_INTERFACE_DEFINED__
#undef INTERFACE
#define INTERFACE IPropertyBag
DECLARE_INTERFACE(IPropertyBag)
@@ -444,6 +446,7 @@ DECLARE_INTERFACE(IPropertyBag)
STDMETHOD(Read) (THIS_ LPCOLESTR, LPVARIANT, LPERRORLOG);
STDMETHOD(Write) (THIS_ LPCOLESTR, LPVARIANT);
};
+#endif
#undef INTERFACE
#define INTERFACE IAMStreamConfig
@@ -678,6 +681,19 @@ DECLARE_INTERFACE(IVideoWindow)
STDMETHOD(IsCursorHidden) (THIS_ long *);
};
+#ifndef DECLARE_ENUMERATOR_
+#define DECLARE_ENUMERATOR_(I,T) \
+ DECLARE_INTERFACE_(I,IUnknown) \
+ { \
+ STDMETHOD(QueryInterface)(I*, REFIID,PVOID*); \
+ STDMETHOD_(ULONG,AddRef)(I*); \
+ STDMETHOD_(ULONG,Release)(I*); \
+ STDMETHOD(Next)(I*, ULONG,T*,ULONG*); \
+ STDMETHOD(Skip)(I*, ULONG); \
+ STDMETHOD(Reset)(I*); \
+ STDMETHOD(Clone)(I*, I**); \
+ }
+#endif
DECLARE_ENUMERATOR_(IEnumFilters, LPBASEFILTER);
DECLARE_ENUMERATOR_(IEnumPins, LPPIN);
DECLARE_ENUMERATOR_(IEnumMediaTypes, AM_MEDIA_TYPE *);