[MPlayer-dev-eng] Compiling MPlayer under Wine

Ingo Brückl ib at wupperonline.de
Wed Oct 5 17:17:54 CEST 2011


Stephen Sheldon wrote on Mon, 03 Oct 2011 16:45:03 -0700:

> On 10/3/2011 1:11 PM, Ingo Brückl wrote:
>> Would it be insane to try this? Has anyone done this before?
>>
>> Since I'm already using wine and since winegcc is very MinGW-like, I could
>> do Win32 GUI testing without the need to reboot a Windows partition for that.
>>
>>
> How about Windows in a virtual machine running on Linux?

That seems like overkill to me.

In the meantime I've managed to compile MPlayer with winegcc, which would
have the advantage that I'm able to reuse all the stuff already on my
computer - no more installations required. On the other side, there are some
issues with Linux style filenames and threads if not using msvcrt but the
glibc C library.

BTW, did you (or anyone else here) compile and run the GUI with Cygwin?
Aren't there path separator issues? AFAIR Cygwin names are POSIX style and
the GUI appends pathes with backslash.

While winegcc-MPlayer runs fine, the GUI unfortunately doesn't.
Well, it actually runs but crashes in create_window() when calling
ShowWindow(gui->mainwindow, SW_SHOW). This is a Windows call and I have no
clue why.

I played around with the code there a little bit and can make the windows
appear, so it doesn't seem that it is impossible. (Since there is a wine page
fault then, it may be that either the GUI code or wine itself has a bug, but
besides that and in general, it seems to work.)

A remaining problem may be that the GUI thinks it uses a DirectX driver while
it actually is X11, i.e. it doesn't handle WinID and other global variables
the way the driver needs.

> Also, Fedora, for one, has packages for the mingw tool set allowing you to
> cross-compile on Linux. I have not tried the second idea myself.

I've also managed to compile a mingw32 cross compiler that I could use to
produce a Windows binary that will run under Wine. The disadvantage however:
I have to recompile quite some stuff needed to run MPlayer (libpng and zlib
at least) or use Reimar's mpl_mingw32 package.

Ingo


More information about the MPlayer-dev-eng mailing list