[MPlayer-cvslog] r34203 - in trunk: Changelog DOCS/tech/crosscompile.txt DOCS/tech/mingw-crosscompile.txt Makefile configure gui/win32/interface.c loader/com.h mplayer.c osdep/priority.c stream/tvi_dshow.c

ib subversion at mplayerhq.hu
Sat Oct 15 15:20:52 CEST 2011


Author: ib
Date: Sat Oct 15 15:20:52 2011
New Revision: 34203

Log:
Port to Wine.

This makes MPlayer and the GUI compile and run as a Wine executable,
which is mainly to allow Windows code checking in a Linux environment.

In Makefile: Generalize the windres call by specifying option "-o" for
the output file.

In gui/win32/interface.c: Use the same function to create a thread as
Cygwin, and convert Windows style file names so that they are accessible
in the Linux environment.

In osdep/priority.c: Include windows.h.

In configure: Add system "Wine" which shall be considered (mostly) a
win32 system. Since winegcc by default compiles all files with the
"-fpic" flag, remove it, and remove all MinGW compatibility WIN32
defines, because we're not compiling for real Windows. Define to not use
Windows sockets (Wine uses different ones) and replace Windows' stricmp
by strcasecmp. Ensure that yasm's object format isn't win32 and that
HAVE_LINUX_DVD_STRUCT will be defined.

In stream/tvi_dshow.c: Define MP_DEFINE_LOCAL_GUID, because Wine's
DEFINE_GUID macro isn't compatible using "static" with it.

In loader/com.h: Rename the IIDs to become local ones, because Wine's
unknwn.h not only declares but defines them.

In mplayer.c: Don't define a SIGSEGV signal handler, or the Wine
executable will crash.

Added:
   trunk/DOCS/tech/crosscompile.txt
      - copied, changed from r34200, trunk/DOCS/tech/mingw-crosscompile.txt
Deleted:
   trunk/DOCS/tech/mingw-crosscompile.txt
Modified:
   trunk/Changelog
   trunk/Makefile
   trunk/configure
   trunk/gui/win32/interface.c
   trunk/loader/com.h
   trunk/mplayer.c
   trunk/osdep/priority.c
   trunk/stream/tvi_dshow.c

Modified: trunk/Changelog
==============================================================================
--- trunk/Changelog	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/Changelog	Sat Oct 15 15:20:52 2011	(r34203)
@@ -19,6 +19,9 @@ MPlayer (1.0)
     * experimental af_cmdline slave command to change e.g. audio equalizer options at runtime.
     * vo x11: don't hide or show cursor any more if attached to an existing window (-wid)
 
+    Ports:
+    * Wine (see DOCS/tech/crosscompile.txt)
+
     MEncoder:
     * -force-key-frames option to set explicit seek points.
 

Copied and modified: trunk/DOCS/tech/crosscompile.txt (from r34200, trunk/DOCS/tech/mingw-crosscompile.txt)
==============================================================================
--- trunk/DOCS/tech/mingw-crosscompile.txt	Sat Oct 15 08:41:24 2011	(r34200, copy source)
+++ trunk/DOCS/tech/crosscompile.txt	Sat Oct 15 15:20:52 2011	(r34203)
@@ -1,6 +1,10 @@
 Due to a lack of Windows developers, it is a good idea to allow Linux
 developers to do at least some basic check of their code.
-This HOWTO explains how to set up MinGW cross-compilation under Debian.
+This HOWTO explains how to set up cross-compilation.
+
+
+MinGW under Debian
+==================
 
 First, you need to install the "mingw32" package and get a MPlayer SVN
 checkout.
@@ -30,3 +34,20 @@ wget http://natsuki.mplayerhq.hu/~reimar
 tar -xjf mpl_mingw32.tar.bz2
 sh linux-mingw.sh
 make
+
+
+Wine
+====
+
+First, you need to install the "Wine" package and get a MPlayer SVN
+checkout.
+
+You don't need any dependencies other than those you already have for
+your Linux build, because the Wine and Linux build will use them together.
+
+Configure with
+
+  ./configure --target=$(uname -m)-wine --cc=winegcc --windres=wrc
+
+and add any options you normally use for your Linux build (such as
+--enable-gui), then run make.

Modified: trunk/Makefile
==============================================================================
--- trunk/Makefile	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/Makefile	Sat Oct 15 15:20:52 2011	(r34203)
@@ -779,7 +779,7 @@ all: $(ALL_PRG-yes)
 	$(CC) $(CC_DEPFLAGS) $(CFLAGS) -c -o $@ $<
 
 %-rc.o: %.rc
-	$(WINDRES) -I. $< $@
+	$(WINDRES) -I. $< -o $@
 
 $(FFMPEGLIBS): $(FFMPEGFILES) config.h
 	$(MAKE) -C ffmpeg $(@:ffmpeg/%=%)

Modified: trunk/configure
==============================================================================
--- trunk/configure	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/configure	Sat Oct 15 15:20:52 2011	(r34203)
@@ -240,7 +240,8 @@ openbsd()   { issystem "OpenBSD"; }
 os2()       { issystem "OS/2"; }
 qnx()       { issystem "QNX"; }
 sunos()     { issystem "SunOS"; }
-win32()     { cygwin || mingw32; }
+wine()      { issystem "Wine"; }
+win32()     { cygwin || mingw32 || wine; }
 
 # arch test boolean functions
 # x86/x86pc is used by QNX
@@ -1522,6 +1523,7 @@ else # if test -z "$_target"
     morphos) system_name=MorphOS ;;
     amigaos) system_name=AmigaOS ;;
     mingw32*) system_name=MINGW32 ;;
+    wine) system_name=Wine ;;
   esac
   # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
   host_arch=$(echo $_target | cut -d '-' -f 1)
@@ -1591,6 +1593,10 @@ if os2 ; then
   def_priority="#define CONFIG_PRIORITY 1"
 fi
 
+if wine ; then
+  extra_cflags="-fno-pic -UWIN32 -U_WIN32 -U__WIN32 -U__WIN32__ -DWINE_NOWINSOCK -Dstricmp=strcasecmp $extra_cflags"
+fi
+
 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
   test "$tmpdir" && break
 done
@@ -2720,7 +2726,7 @@ echocheck "yasm"
 if test -z "$YASMFLAGS" ; then
   if darwin ; then
     x86_64 && objformat="macho64" || objformat="macho"
-  elif win32 ; then
+  elif win32 && ! wine ; then
     objformat="win32"
   elif os2 ; then
     _yasm=nasm
@@ -5760,7 +5766,7 @@ if test "$_libdvdcss_internal" = auto &&
   hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
 fi
 if test "$_libdvdcss_internal" = yes ; then
-  if linux || netbsd || openbsd || bsdos ; then
+  if linux || netbsd || openbsd || bsdos || wine ; then
     def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
     openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
   elif freebsd || dragonfly ; then

Modified: trunk/gui/win32/interface.c
==============================================================================
--- trunk/gui/win32/interface.c	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/gui/win32/interface.c	Sat Oct 15 15:20:52 2011	(r34203)
@@ -23,7 +23,7 @@
 
 #include <windows.h>
 
-#if defined(__CYGWIN__)
+#if defined(__CYGWIN__) || defined(__WINE__)
 #define _beginthreadex CreateThread
 #else
 #include <process.h>
@@ -332,6 +332,44 @@ void uiPrev(void)
     mygui->startplay(mygui);
 }
 
+#ifdef __WINE__
+/**
+ * @brief Convert a Windows style file name into an Unix style one.
+ *
+ * @param filename pointer to the file name to be converted
+ *
+ * @return pointer to the converted file name
+ */
+static char *unix_name (char *filename)
+{
+    static char *unix_filename;
+    LPSTR (*CDECL wine_get_unix_file_name_ptr)(LPCWSTR);
+    int wchar_conv;
+
+    if (*filename && (filename[1] == ':'))
+    {
+        wine_get_unix_file_name_ptr = (void *) GetProcAddress(GetModuleHandleA("KERNEL32"), "wine_get_unix_file_name");
+        wchar_conv = MultiByteToWideChar(CP_UNIXCP, 0, filename, -1, NULL, 0);
+
+        if (wine_get_unix_file_name_ptr && wchar_conv)
+        {
+            WCHAR *ntpath;
+            char *unix_name;
+
+            ntpath = HeapAlloc(GetProcessHeap(), 0, sizeof(*ntpath) * (wchar_conv + 1));
+            MultiByteToWideChar(CP_UNIXCP, 0, filename, -1, ntpath, wchar_conv);
+            unix_name = wine_get_unix_file_name_ptr(ntpath);
+            setdup(&unix_filename, unix_name);
+            filename = unix_filename;
+            HeapFree(GetProcessHeap(), 0, unix_name);
+            HeapFree(GetProcessHeap(), 0, ntpath);
+        }
+    }
+
+    return filename;
+}
+#endif
+
 void uiSetFileName(char *dir, char *name, int type)
 {
     if(!name) return;
@@ -341,6 +379,9 @@ void uiSetFileName(char *dir, char *name
         setddup(&guiInfo.Filename, dir, name);
 
     filename = guiInfo.Filename;
+#ifdef __WINE__
+    filename = unix_name(filename);
+#endif
     guiInfo.StreamType = type;
 
     nfree(guiInfo.AudioFilename);

Modified: trunk/loader/com.h
==============================================================================
--- trunk/loader/com.h	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/loader/com.h	Sat Oct 15 15:20:52 2011	(r34203)
@@ -29,6 +29,9 @@ typedef struct
 } GUID;
 #endif
 
+// hack: use copies of the IIDs
+#define IID_IUnknown MP_IID_IUnknown
+#define IID_IClassFactory MP_IID_IClassFactory
 extern const GUID IID_IUnknown;
 extern const GUID IID_IClassFactory;
 

Modified: trunk/mplayer.c
==============================================================================
--- trunk/mplayer.c	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/mplayer.c	Sat Oct 15 15:20:52 2011	(r34203)
@@ -3002,7 +3002,9 @@ int main(int argc, char *argv[])
 #ifdef CONFIG_SIGHANDLER
     // fatal errors:
     signal(SIGBUS, exit_sighandler); // bus error
+#ifndef __WINE__
     signal(SIGSEGV, exit_sighandler); // segfault
+#endif
     signal(SIGILL, exit_sighandler); // illegal instruction
     signal(SIGFPE, exit_sighandler); // floating point exc.
     signal(SIGABRT, exit_sighandler); // abort()

Modified: trunk/osdep/priority.c
==============================================================================
--- trunk/osdep/priority.c	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/osdep/priority.c	Sat Oct 15 15:20:52 2011	(r34203)
@@ -22,7 +22,7 @@
 
 #include "osdep.h"
 
-#if defined(__MINGW32__) || defined(__CYGWIN__)
+#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__WINE__)
 #include <windows.h>
 #endif
 

Modified: trunk/stream/tvi_dshow.c
==============================================================================
--- trunk/stream/tvi_dshow.c	Sat Oct 15 13:07:29 2011	(r34202)
+++ trunk/stream/tvi_dshow.c	Sat Oct 15 15:20:52 2011	(r34203)
@@ -87,6 +87,15 @@
 #include "frequencies.h"
 
 
+#define MP_DEFINE_LOCAL_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
+        static const GUID name = {l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}
+
+#ifdef __WINE__
+// take care of unions which are normally declared
+// named by Wine but nameless (anonymous) by Windows
+#define _FORCENAMELESSUNION
+#endif
+
 #include "tvi_dshow.h"
 
 #ifndef STDCALL
@@ -379,122 +388,122 @@ static int tv_available_inputs_count = 0
 #define DECLSPEC_SELECTANY
 /// CLSID definitions (used for CoCreateInstance call)
 #define CLSID_SampleGrabber MP_CLSID_SampleGrabber
-static DEFINE_GUID(CLSID_SampleGrabber, 0xC1F400A0, 0x3F08, 0x11d3, 0x9F, 0x0B,
+MP_DEFINE_LOCAL_GUID(CLSID_SampleGrabber, 0xC1F400A0, 0x3F08, 0x11d3, 0x9F, 0x0B,
 	    0x00, 0x60, 0x08, 0x03, 0x9E, 0x37);
 #define CLSID_NullRenderer MP_CLSID_NullRenderer
-static DEFINE_GUID(CLSID_NullRenderer, 0xC1F400A4, 0x3F08, 0x11d3, 0x9F, 0x0B,
+MP_DEFINE_LOCAL_GUID(CLSID_NullRenderer, 0xC1F400A4, 0x3F08, 0x11d3, 0x9F, 0x0B,
 	    0x00, 0x60, 0x08, 0x03, 0x9E, 0x37);
 #define CLSID_SystemDeviceEnum MP_CLSID_SystemDeviceEnum
-static DEFINE_GUID(CLSID_SystemDeviceEnum, 0x62BE5D10, 0x60EB, 0x11d0, 0xBD, 0x3B,
+MP_DEFINE_LOCAL_GUID(CLSID_SystemDeviceEnum, 0x62BE5D10, 0x60EB, 0x11d0, 0xBD, 0x3B,
 	    0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
 #define CLSID_CaptureGraphBuilder2 MP_CLSID_CaptureGraphBuilder2
-static DEFINE_GUID(CLSID_CaptureGraphBuilder2, 0xBF87B6E1, 0x8C27, 0x11d0, 0xB3,
+MP_DEFINE_LOCAL_GUID(CLSID_CaptureGraphBuilder2, 0xBF87B6E1, 0x8C27, 0x11d0, 0xB3,
 	    0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
 #define CLSID_VideoInputDeviceCategory MP_CLSID_VideoInputDeviceCategory
-static DEFINE_GUID(CLSID_VideoInputDeviceCategory, 0x860BB310, 0x5D01, 0x11d0,
+MP_DEFINE_LOCAL_GUID(CLSID_VideoInputDeviceCategory, 0x860BB310, 0x5D01, 0x11d0,
 	    0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
 #define CLSID_AudioInputDeviceCategory MP_CLSID_AudioInputDeviceCategory
-static DEFINE_GUID(CLSID_AudioInputDeviceCategory, 0x33d9a762, 0x90c8, 0x11d0,
+MP_DEFINE_LOCAL_GUID(CLSID_AudioInputDeviceCategory, 0x33d9a762, 0x90c8, 0x11d0,
 	    0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
 #define CLSID_FilterGraph MP_CLSID_FilterGraph
-static DEFINE_GUID(CLSID_FilterGraph, 0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53,
+MP_DEFINE_LOCAL_GUID(CLSID_FilterGraph, 0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53,
 	    0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
 #define CLSID_SystemClock MP_CLSID_SystemClock
-static DEFINE_GUID(CLSID_SystemClock, 0xe436ebb1, 0x524f, 0x11ce, 0x9f, 0x53,
+MP_DEFINE_LOCAL_GUID(CLSID_SystemClock, 0xe436ebb1, 0x524f, 0x11ce, 0x9f, 0x53,
 	    0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
 #ifdef NOT_USED
 #define CLSID_CaptureGraphBuilder MP_CLSID_CaptureGraphBuilder
-static DEFINE_GUID(CLSID_CaptureGraphBuilder, 0xBF87B6E0, 0x8C27, 0x11d0, 0xB3,
+MP_DEFINE_LOCAL_GUID(CLSID_CaptureGraphBuilder, 0xBF87B6E0, 0x8C27, 0x11d0, 0xB3,
 	    0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
 #define CLSID_VideoPortManager MP_CLSID_VideoPortManager
-static DEFINE_GUID(CLSID_VideoPortManager, 0x6f26a6cd, 0x967b, 0x47fd, 0x87, 0x4a,
+MP_DEFINE_LOCAL_GUID(CLSID_VideoPortManager, 0x6f26a6cd, 0x967b, 0x47fd, 0x87, 0x4a,
 	    0x7a, 0xed, 0x2c, 0x9d, 0x25, 0xa2);
 #define IID_IPin MP_IID_IPin
-static DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20,
+MP_DEFINE_LOCAL_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20,
 	    0xaf, 0x0b, 0xa7, 0x70);
 #define IID_ICaptureGraphBuilder MP_IID_ICaptureGraphBuilder
-static DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,
+MP_DEFINE_LOCAL_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,
 	    0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5);
 #define IID_IFilterGraph MP_IID_IFilterGraph
-static DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
+MP_DEFINE_LOCAL_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
 	    0x20, 0xaf, 0x0b, 0xa7, 0x70);
 #define PIN_CATEGORY_PREVIEW MP_PIN_CATEGORY_PREVIEW
-static DEFINE_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
+MP_DEFINE_LOCAL_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
 	    0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
 #endif
 
 /// IID definitions (used for QueryInterface call)
 #define IID_IReferenceClock MP_IID_IReferenceClock
-static DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0, 0x3a,
+MP_DEFINE_LOCAL_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0, 0x3a,
 	    0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
 #define IID_IAMBufferNegotiation MP_IID_IAMBufferNegotiation
-static DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ED71A0, 0xAF5F, 0x11D0, 0xB3, 0xF0,
+MP_DEFINE_LOCAL_GUID(IID_IAMBufferNegotiation, 0x56ED71A0, 0xAF5F, 0x11D0, 0xB3, 0xF0,
             0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
 #define IID_IKsPropertySet MP_IID_IKsPropertySet
-static DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa,
+MP_DEFINE_LOCAL_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa,
 	    0x00, 0xaa, 0x00, 0x61, 0xbe, 0x93);
 #define IID_ISampleGrabber MP_IID_ISampleGrabber
-static DEFINE_GUID(IID_ISampleGrabber, 0x6B652FFF, 0x11FE, 0x4fce, 0x92, 0xAD,
+MP_DEFINE_LOCAL_GUID(IID_ISampleGrabber, 0x6B652FFF, 0x11FE, 0x4fce, 0x92, 0xAD,
 	    0x02, 0x66, 0xB5, 0xD7, 0xC7, 0x8F);
 #define IID_ISampleGrabberCB MP_IID_ISampleGrabberCB
-static DEFINE_GUID(IID_ISampleGrabberCB, 0x0579154A, 0x2B53, 0x4994, 0xB0, 0xD0,
+MP_DEFINE_LOCAL_GUID(IID_ISampleGrabberCB, 0x0579154A, 0x2B53, 0x4994, 0xB0, 0xD0,
 	    0xE7, 0x73, 0x14, 0x8E, 0xFF, 0x85);
 #define IID_ICaptureGraphBuilder2 MP_IID_ICaptureGraphBuilder2
-static DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,
+MP_DEFINE_LOCAL_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,
 	    0xfa, 0x00, 0xa0, 0xc9, 0xc6, 0xe3, 0x8d);
 #define IID_ICreateDevEnum MP_IID_ICreateDevEnum
-static DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd, 0x3b,
+MP_DEFINE_LOCAL_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd, 0x3b,
 	    0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
 #define IID_IGraphBuilder MP_IID_IGraphBuilder
-static DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0, 0x3a,
+MP_DEFINE_LOCAL_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0, 0x3a,
 	    0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
 #define IID_IAMVideoProcAmp MP_IID_IAMVideoProcAmp
-static DEFINE_GUID(IID_IAMVideoProcAmp, 0xC6E13360, 0x30AC, 0x11d0, 0xA1, 0x8C,
+MP_DEFINE_LOCAL_GUID(IID_IAMVideoProcAmp, 0xC6E13360, 0x30AC, 0x11d0, 0xA1, 0x8C,
 	    0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56);
 #define IID_IVideoWindow MP_IID_IVideoWindow
-static DEFINE_GUID(IID_IVideoWindow, 0x56a868b4, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
+MP_DEFINE_LOCAL_GUID(IID_IVideoWindow, 0x56a868b4, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00,
 	    0x20, 0xaf, 0x0b, 0xa7, 0x70);
 #define IID_IMediaControl MP_IID_IMediaControl
-static DEFINE_GUID(IID_IMediaControl, 0x56a868b1, 0x0ad4, 0x11ce, 0xb0, 0x3a,
+MP_DEFINE_LOCAL_GUID(IID_IMediaControl, 0x56a868b1, 0x0ad4, 0x11ce, 0xb0, 0x3a,
 	    0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
 #define IID_IAMTVTuner MP_IID_IAMTVTuner
-static DEFINE_GUID(IID_IAMTVTuner, 0x211A8766, 0x03AC, 0x11d1, 0x8D, 0x13, 0x00,
+MP_DEFINE_LOCAL_GUID(IID_IAMTVTuner, 0x211A8766, 0x03AC, 0x11d1, 0x8D, 0x13, 0x00,
 	    0xAA, 0x00, 0xBD, 0x83, 0x39);
 #define IID_IAMCrossbar MP_IID_IAMCrossbar
-static DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1, 0x8c, 0x00,
+MP_DEFINE_LOCAL_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1, 0x8c, 0x00,
 	    0xa0, 0xc9, 0x11, 0x89, 0x56);
 #define IID_IAMStreamConfig MP_IID_IAMStreamConfig
-static DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1, 0x8c,
+MP_DEFINE_LOCAL_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1, 0x8c,
 	    0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56);
 #define IID_IAMAudioInputMixer MP_IID_IAMAudioInputMixer
-static DEFINE_GUID(IID_IAMAudioInputMixer, 0x54C39221, 0x8380, 0x11d0, 0xB3, 0xF0,
+MP_DEFINE_LOCAL_GUID(IID_IAMAudioInputMixer, 0x54C39221, 0x8380, 0x11d0, 0xB3, 0xF0,
 	    0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5);
 #define IID_IAMTVAudio MP_IID_IAMTVAudio
-static DEFINE_GUID(IID_IAMTVAudio, 0x83EC1C30, 0x23D1, 0x11d1, 0x99, 0xE6, 0x00,
+MP_DEFINE_LOCAL_GUID(IID_IAMTVAudio, 0x83EC1C30, 0x23D1, 0x11d1, 0x99, 0xE6, 0x00,
 	    0xA0, 0xC9, 0x56, 0x02, 0x66);
 #define IID_IAMAnalogVideoDecoder MP_IID_IAMAnalogVideoDecoder
-static DEFINE_GUID(IID_IAMAnalogVideoDecoder, 0xC6E13350, 0x30AC, 0x11d0, 0xA1,
+MP_DEFINE_LOCAL_GUID(IID_IAMAnalogVideoDecoder, 0xC6E13350, 0x30AC, 0x11d0, 0xA1,
 	    0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56);
 #define IID_IPropertyBag MP_IID_IPropertyBag
-static DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81, 0x35, 0x00,
+MP_DEFINE_LOCAL_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81, 0x35, 0x00,
 	    0xaa, 0x00, 0x4b, 0xb8, 0x51);
 #define PIN_CATEGORY_CAPTURE MP_PIN_CATEGORY_CAPTURE
-static DEFINE_GUID(PIN_CATEGORY_CAPTURE, 0xfb6c4281, 0x0353, 0x11d1, 0x90, 0x5f,
+MP_DEFINE_LOCAL_GUID(PIN_CATEGORY_CAPTURE, 0xfb6c4281, 0x0353, 0x11d1, 0x90, 0x5f,
 	    0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
 #define PIN_CATEGORY_VIDEOPORT MP_PIN_CATEGORY_VIDEOPORT
-static DEFINE_GUID(PIN_CATEGORY_VIDEOPORT, 0xfb6c4285, 0x0353, 0x11d1, 0x90, 0x5f,
+MP_DEFINE_LOCAL_GUID(PIN_CATEGORY_VIDEOPORT, 0xfb6c4285, 0x0353, 0x11d1, 0x90, 0x5f,
 	    0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
 #define PIN_CATEGORY_PREVIEW MP_PIN_CATEGORY_PREVIEW
-static DEFINE_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
+MP_DEFINE_LOCAL_GUID(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f,
             0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
 #define PIN_CATEGORY_VBI MP_PIN_CATEGORY_VBI
-static DEFINE_GUID(PIN_CATEGORY_VBI, 0xfb6c4284, 0x0353, 0x11d1, 0x90, 0x5f,
+MP_DEFINE_LOCAL_GUID(PIN_CATEGORY_VBI, 0xfb6c4284, 0x0353, 0x11d1, 0x90, 0x5f,
             0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
 #define PROPSETID_TUNER MP_PROPSETID_TUNER
-static DEFINE_GUID(PROPSETID_TUNER, 0x6a2e0605, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00,
+MP_DEFINE_LOCAL_GUID(PROPSETID_TUNER, 0x6a2e0605, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00,
 	    0xa0, 0xc9, 0x11, 0x89, 0x56);
 #define MEDIATYPE_VBI MP_MEDIATYPE_VBI
-static DEFINE_GUID(MEDIATYPE_VBI,   0xf72a76e1, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00,
+MP_DEFINE_LOCAL_GUID(MEDIATYPE_VBI,   0xf72a76e1, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00,
             0x00, 0xc0, 0xcc, 0x16, 0xba);
 
 #define INSTANCEDATA_OF_PROPERTY_PTR(x) (((KSPROPERTY*)(x)) + 1)


More information about the MPlayer-cvslog mailing list