changeset 3629:5aba05f2226e

update xine-lib, add mman-win32 * dist-files.mk: add mman-win32-1-include_name_change.patch, mman-win32.mk, add xine-lib-*.patch files. * index.html: add mman-win32 * src/mman-win32-1-include_name_change.patch: new file. * src/mman-win32.mk: new file. * src/xine-lib-1-configure_ac.patch: new file * src/xine-lib-1-fixes.patch: removed * src/xine-lib-2-build_fixes.patch: new file. * src/xine-lib-3-more_build_fixes.patch: new file * src/xine-lib-4-mkdir.patch: new file. * src/xine-lib-5-change_mma_h_to_mma_win32_h.patch: new file * src/xine-lib.mk: update version
author John Donoghue <john.donoghue@ieee.org>
date Sun, 29 Jun 2014 15:46:35 -0400
parents a98f4ebb8a3c
children c803d4c88481
files dist-files.mk index.html src/mman-win32-1-include_name_change.patch src/mman-win32.mk src/xine-lib-1-configure_ac.patch src/xine-lib-1-fixes.patch src/xine-lib-2-build_fixes.patch src/xine-lib-3-more_build_fixes.patch src/xine-lib-4-mkdir.patch src/xine-lib-5-change_mma_h_to_mma_win32_h.patch src/xine-lib.mk
diffstat 11 files changed, 818 insertions(+), 147 deletions(-) [+]
line wrap: on
line diff
--- a/dist-files.mk	Sun Jun 29 14:26:38 2014 -0400
+++ b/dist-files.mk	Sun Jun 29 15:46:35 2014 -0400
@@ -308,6 +308,8 @@
   mingwrt.mk \
   mpc.mk \
   mpfr.mk \
+  mman-win32-1-include_name_change.patch \
+  mman-win32.mk \
   msitools.mk \
   msvc-atk-1.patch \
   msvc-build-cmake-1.patch \
@@ -594,7 +596,11 @@
   xerces-1-fix-pkgconfig.patch \
   xerces-test.cpp \
   xerces.mk \
-  xine-lib-1-fixes.patch \
+  xine-lib-1-configure_ac.patch \
+  xine-lib-2-build_fixes.patch \
+  xine-lib-3-more_build_fixes.patch \
+  xine-lib-4-mkdir.patch \
+  xine-lib-5-change_mma_h_to_mma_win32_h.patch \
   xine-lib.mk \
   xmlwrapp.mk \
   xvidcore.mk \
--- a/index.html	Sun Jun 29 14:26:38 2014 -0400
+++ b/index.html	Sun Jun 29 15:46:35 2014 -0400
@@ -1623,6 +1623,10 @@
         <td class="website"><a href="http://www.mingw.org/">MinGW Runtime</a></td>
     </tr>
     <tr>
+        <td class="package">mman-win32</td>
+        <td class="website"><a href="https://github.com/witwall/mman-win32/">mman-win32</a></td>
+    </tr>
+    <tr>
         <td class="package">mpc</td>
         <td class="website"><a href="http://www.multiprecision.org/">mpc</a></td>
     </tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/mman-win32-1-include_name_change.patch	Sun Jun 29 15:46:35 2014 -0400
@@ -0,0 +1,15 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -urN mman-win32-master/Makefile mman-win32-master-patch/Makefile
+--- mman-win32-master/Makefile	2013-04-23 07:36:23.000000000 +0300
++++ mman-win32-master-patch/Makefile	2014-01-05 14:24:31.793744239 +0200
+@@ -25,7 +25,7 @@
+ 	mkdir -p $(DESTDIR)$(libdir)
+ 	cp libmman.a $(DESTDIR)$(libdir)
+ 	mkdir -p $(DESTDIR)$(incdir)
+-	cp mman.h $(DESTDIR)$(incdir)
++	cp mman.h $(DESTDIR)$(incdir)/mman-win32.h
+ 
+ lib-install:
+ 	mkdir -p $(DESTDIR)$(libdir)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/mman-win32.mk	Sun Jun 29 15:46:35 2014 -0400
@@ -0,0 +1,32 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := mman-win32
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION  := 3421c28e753c38d24a2e27c111b1c9b4601ebe7d
+$(PKG)_CHECKSUM := c33e84043d49d0e33bc434bda3a16ce60432e789
+$(PKG)_SUBDIR   := mman-win32-master
+$(PKG)_FILE     := mman-win32-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL      := https://github.com/witwall/mman-win32/archive/master.tar.gz
+$(PKG)_DEPS     := 
+
+define $(PKG)_UPDATE
+    echo 'TODO: Updates for package mman-win32 need to be written.' >&2;
+    echo $(mman-win32_VERSION)
+endef
+
+define $(PKG)_BUILD
+    cd '$(1)' && chmod +x configure
+    cd '$(1)' && ./configure \
+        --cross-prefix='$(MXE_TOOL_PREFIX)' \
+        --enable-static \
+        --prefix='$(HOST_PREFIX)' \
+        --libdir='$(HOST_LIBDIR)' \
+        --incdir='$(HOST_INCDIR)/sys'
+    $(MAKE) -C '$(1)' -j $(JOBS)
+    $(MAKE) -C '$(1)' -j 1 install
+
+    if [ $(BUILD_SHARED) = yes ]; then \
+      $(MAKE_SHARED_FROM_STATIC) --ar '$(MXE_AR)' --ld '$(MXE_CC)' '$(HOST_LIBDIR)/libmman.a' --install '$(INSTALL)' --libdir '$(HOST_LIBDIR)' --bindir '$(HOST_BINDIR)'; \
+    fi
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/xine-lib-1-configure_ac.patch	Sun Jun 29 15:46:35 2014 -0400
@@ -0,0 +1,24 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -urN xine-lib-1.2.4/configure.ac xine-lib-1.2.4-patch/configure.ac
+--- xine-lib-1.2.4/configure.ac	2013-09-20 16:04:44.000000000 +0300
++++ xine-lib-1.2.4-patch/configure.ac	2013-12-17 11:45:43.657189416 +0200
+@@ -343,7 +343,7 @@
+ AC_CHECK_HEADERS([alloca.h])
+ AC_CHECK_HEADERS([assert.h byteswap.h dirent.h errno.h execinfo.h fcntl.h glob.h])
+ AC_CHECK_HEADERS([libgen.h malloc.h netdb.h stdbool.h ucontext.h])
+-AC_CHECK_HEADERS([sys/ioctl.h sys/mixer.h sys/mman.h sys/param.h sys/times.h sys/wait.h])
++AC_CHECK_HEADERS([sys/mixer.h sys/mman-win32.h sys/param.h sys/times.h sys/wait.h])
+ 
+ dnl This is duplicative due to AC_HEADER_STDC, but src/input/vcd stuff needs to
+ dnl have HAVE_STDIO_H defined, or it won't compile.
+@@ -378,7 +378,7 @@
+ 
+ AC_CACHE_CHECK([type of request parameter for ioctl()], [ac_cv_ioctl_request], [
+     for ac_ioctl_request_type in "unsigned long" "int"; do
+-        AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/ioctl.h>
++        AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <windows.h>
+                                           int ioctl(int fd, $ac_ioctl_request_type request, ...);]], [[]])],
+                        [ac_cv_ioctl_request=$ac_ioctl_request_type], [])
+     done
--- a/src/xine-lib-1-fixes.patch	Sun Jun 29 14:26:38 2014 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-From 6dc46ed1253c1fce1cfa8d360e352b5bc12d0d3b Mon Sep 17 00:00:00 2001
-From: "mxe@mxe.cc" <mxe@mxe.cc>
-Date: Sun, 13 Nov 2011 12:05:22 +0100
-Subject: [PATCH 1/4] fake missing definitions for WIN32
-
-Taken from:
-https://bugs.xine-project.org/show_bug.cgi?id=433
----
- src/audio_out/audio_file_out.c |   12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/src/audio_out/audio_file_out.c b/src/audio_out/audio_file_out.c
-index bc40d4e..a613a89 100644
---- a/src/audio_out/audio_file_out.c
-+++ b/src/audio_out/audio_file_out.c
-@@ -53,6 +53,18 @@
- #endif
- #endif
- 
-+#ifdef WIN32
-+#ifndef S_IWUSR
-+#define S_IWUSR 0x0000
-+#endif
-+#ifndef S_IRGRP
-+#define S_IRGRP 0x0000
-+#endif
-+#ifndef S_IROTH
-+#define S_IROTH 0x0000
-+#endif
-+#endif
-+
- /* Taken (hStudlyCapsAndAll) from sox's wavwritehdr */
- 
- struct wavhdr {
--- 
-1.7.10.4
-
-
-From 4a7cd803cbc3daa3f19fdc6b34fb93e1994bc2f5 Mon Sep 17 00:00:00 2001
-From: "mxe@mxe.cc" <mxe@mxe.cc>
-Date: Sun, 13 Nov 2011 13:45:21 +0100
-Subject: [PATCH 2/4] force graphicsmagick over imagemagick
-
----
- configure.ac |    9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9112b58..67f1147 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1412,14 +1412,6 @@ AC_ARG_WITH([imagemagick],
- 	AS_HELP_STRING([--without-imagemagick], [Build without ImageMagick image decoder (or GraphicsMagick's compat layer)]))
- 
- if test "x$with_imagemagick" != "xno"; then
--   PKG_CHECK_MODULES([WAND], [Wand], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
--   if test "x$have_imagemagick" = 'xno'; then
--      PKG_CHECK_MODULES([MAGICKWAND], [MagickWand], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
--      dnl Avoid $(WAND_FLAGS) $(MAGICKWAND_FLAGS) ...
--      WAND_CFLAGS="$MAGICKWAND_CFLAGS"
--      WAND_LIBS="$MAGICKWAND_LIBS"
--   fi
--   if test "x$have_imagemagick" = 'xno'; then
-       PKG_CHECK_MODULES([GRAPHICSMAGICK], [ImageMagick], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
-       PKG_CHECK_MODULES([GRAPHICSMAGICKWAND], [GraphicsMagickWand], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
-       dnl The following assignments are safe, since they include
-@@ -1427,7 +1419,6 @@ if test "x$with_imagemagick" != "xno"; then
-       WAND_CFLAGS="$GRAPHICSMAGICKWAND_CFLAGS"
-       WAND_LIBS="$GRAPHICSMAGICKWAND_LIBS"
-       AC_DEFINE([HAVE_GRAPHICSMAGICK], [1], [Define this if you have GraphicsMagick installed])
--   fi
-    if test "x$with_imagemagick" = "xyes" && test "x$have_imagemagick" = "xno"; then
-       AC_MSG_ERROR([ImageMagick support requested, but neither Wand, MagickWand, nor GraphicsMagick were found])
-    elif test "x$have_imagemagick" = "xyes"; then
--- 
-1.7.10.4
-
-
-From 5b362f4aed3a814a351cd259efb62b40761ddb3d Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sun, 27 May 2012 23:28:57 +0200
-Subject: [PATCH 3/4] add missing localtime_r
-
-Previously provided by pthreads-w32-2-8-0-release, which is also
-the source of this version.
----
- src/localtime_r.h         |    3 +++
- src/xine-engine/scratch.c |    1 +
- 2 files changed, 4 insertions(+)
- create mode 100644 src/localtime_r.h
-
-diff --git a/src/localtime_r.h b/src/localtime_r.h
-new file mode 100644
-index 0000000..ec778c5
---- /dev/null
-+++ b/src/localtime_r.h
-@@ -0,0 +1,3 @@
-+#define localtime_r( _clock, _result ) \
-+        ( *(_result) = *localtime( (_clock) ), \
-+          (_result) )
-diff --git a/src/xine-engine/scratch.c b/src/xine-engine/scratch.c
-index 39bb592..41d561b 100644
---- a/src/xine-engine/scratch.c
-+++ b/src/xine-engine/scratch.c
-@@ -36,6 +36,7 @@
- 
- #include "xineutils.h"
- #include "scratch.h"
-+#include "localtime_r.h"
- 
- static void XINE_FORMAT_PRINTF(2, 0)
-   scratch_printf (scratch_buffer_t *this, const char *format, va_list argp)
--- 
-1.7.10.4
-
-
-From 0d3546c3c12a8bf311c9751f0d0d2e3a95569657 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sun, 27 May 2012 23:23:19 +0200
-Subject: [PATCH 4/4] ffmpeg 0.11 removed avcodec_init
-
----
- src/combined/ffmpeg/ffmpeg_decoder.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/combined/ffmpeg/ffmpeg_decoder.c b/src/combined/ffmpeg/ffmpeg_decoder.c
-index 879df53..84ee1a3 100644
---- a/src/combined/ffmpeg/ffmpeg_decoder.c
-+++ b/src/combined/ffmpeg/ffmpeg_decoder.c
-@@ -312,7 +312,6 @@ void avcodec_register_all(void)
- 
- void init_once_routine(void) {
-   pthread_mutex_init(&ffmpeg_lock, NULL);
--  avcodec_init();
-   avcodec_register_all();
- }
- 
--- 
-1.7.10.4
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/xine-lib-2-build_fixes.patch	Sun Jun 29 15:46:35 2014 -0400
@@ -0,0 +1,306 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -urN xine-lib-1.2.4/configure.ac xine-lib-1.2.4-patch/configure.ac
+--- xine-lib-1.2.4/configure.ac	2013-12-17 11:45:43.657189416 +0200
++++ xine-lib-1.2.4-patch/configure.ac	2013-12-17 14:57:28.907822042 +0200
+@@ -544,7 +544,7 @@
+ 
+         if test "$WIN32_SYS" = "mingw32"; then
+             WIN32_INCLUDES='-I$(top_srcdir)/win32/include'
+-            LIBS="-lwinmm -lwsock32 $LIBS"
++            LIBS="-lwinmm -lwsock32 -lmman $LIBS"
+             LDFLAGS="-Wl,--enable-stdcall-fixup $LDFLAGS"
+             dnl iberty has been needed only in older versions
+             AC_CHECK_LIB(iberty, strncomp, [GOOM_LIBS="-liberty"])
+diff -urN xine-lib-1.2.4/include/xine/xine_internal.h xine-lib-1.2.4-patch/include/xine/xine_internal.h
+--- xine-lib-1.2.4/include/xine/xine_internal.h	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/include/xine/xine_internal.h	2013-12-17 15:14:55.229127435 +0200
+@@ -55,6 +55,26 @@
+ /* used by plugin loader */
+ #define XINE_VERSION_CODE                XINE_MAJOR_VERSION*10000+XINE_MINOR_VERSION*100+XINE_SUB_VERSION
+ 
++// Add there to support them on MinGW
++#define timeradd(a, b, result) \
++    do { \
++        (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
++        (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
++        if ((result)->tv_usec >= 1000000L) { \
++            ++(result)->tv_sec; \
++            (result)->tv_usec -= 1000000L; \
++        } \
++    } while (0)
++
++#define timersub(a, b, result) \
++    do { \
++        (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
++        (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
++        if ((result)->tv_usec < 0) { \
++            --(result)->tv_sec; \
++            (result)->tv_usec += 1000000L; \
++        } \
++    } while (0)
+ 
+ /*
+  * log constants
+diff -urN xine-lib-1.2.4/include/xine/xineutils.h xine-lib-1.2.4-patch/include/xine/xineutils.h
+--- xine-lib-1.2.4/include/xine/xineutils.h	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/include/xine/xineutils.h	2013-12-20 12:29:33.465030673 +0200
+@@ -119,8 +119,8 @@
+ 
+ 
+ 		     /* Optimized/fast memcpy */
+-
+-extern void *(* xine_fast_memcpy)(void *to, const void *from, size_t len) XINE_PROTECTED;
++//extern void *xine_fast_memcpy(void *to, const void *from, size_t len);
++#define xine_fast_memcpy(a, b, c) memcpy(a, b, c)
+ 
+ /*
+  * Debug stuff
+diff -urN xine-lib-1.2.4/misc/Makefile.am xine-lib-1.2.4-patch/misc/Makefile.am
+--- xine-lib-1.2.4/misc/Makefile.am	2012-02-05 21:17:01.000000000 +0200
++++ xine-lib-1.2.4-patch/misc/Makefile.am	2013-12-19 09:20:56.937982071 +0200
+@@ -21,7 +21,7 @@
+ pkgconfig_DATA=libxine.pc
+ 
+ xine_list_@XINE_SERIES@_SOURCES = xine-list.c
+-xine_list_@XINE_SERIES@_LDADD = $(XINE_LIB)
++xine_list_@XINE_SERIES@_LDADD = $(XINE_LIB) $(top_builddir)/src/xine-utils/libxineutils.la
+ 
+ fontdir = $(pkgdatadir)/fonts
+ dist_font_DATA = \
+diff -urN xine-lib-1.2.4/src/audio_dec/xine_lpcm_decoder.c xine-lib-1.2.4-patch/src/audio_dec/xine_lpcm_decoder.c
+--- xine-lib-1.2.4/src/audio_dec/xine_lpcm_decoder.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/audio_dec/xine_lpcm_decoder.c	2013-12-17 15:18:20.459131654 +0200
+@@ -41,7 +41,11 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
++#ifdef __MINGW32__
++#include <winsock.h>
++#else
+ #include <arpa/inet.h> /* htons */
++#endif
+ #include <netinet/in.h> /* ntohs */
+ 
+ #include <xine/xine_internal.h>
+diff -urN xine-lib-1.2.4/src/demuxers/demux_ts.c xine-lib-1.2.4-patch/src/demuxers/demux_ts.c
+--- xine-lib-1.2.4/src/demuxers/demux_ts.c	2013-09-23 23:56:56.000000000 +0300
++++ xine-lib-1.2.4-patch/src/demuxers/demux_ts.c	2013-12-18 12:04:09.269573623 +0200
+@@ -146,7 +146,11 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include <arpa/inet.h>
++#ifdef __MINGW32__
++#include <winsock.h>
++#else
++#include <arpa/inet.h> /* htons */
++#endif
+ 
+ #ifdef HAVE_FFMPEG_AVUTIL_H
+ #  include <crc.h>
+diff -urN xine-lib-1.2.4/src/input/libdvdnav/dvdnav_internal.h xine-lib-1.2.4-patch/src/input/libdvdnav/dvdnav_internal.h
+--- xine-lib-1.2.4/src/input/libdvdnav/dvdnav_internal.h	2009-11-30 23:28:34.000000000 +0200
++++ xine-lib-1.2.4-patch/src/input/libdvdnav/dvdnav_internal.h	2013-12-18 11:56:09.153450165 +0200
+@@ -64,11 +64,11 @@
+ /* pthread_mutex_* wrapper for win32 */
+ #include <windows.h>
+ #include <process.h>
+-typedef CRITICAL_SECTION pthread_mutex_t;
+-#define pthread_mutex_init(a, b) InitializeCriticalSection(a)
+-#define pthread_mutex_lock(a)    EnterCriticalSection(a)
+-#define pthread_mutex_unlock(a)  LeaveCriticalSection(a)
+-#define pthread_mutex_destroy(a)
++// typedef CRITICAL_SECTION pthread_mutex_t;
++// #define pthread_mutex_init(a, b) InitializeCriticalSection(a)
++// #define pthread_mutex_lock(a)    EnterCriticalSection(a)
++// #define pthread_mutex_unlock(a)  LeaveCriticalSection(a)
++// #define pthread_mutex_destroy(a)
+ 
+ #include <io.h> /* read() */
+ #define lseek64 _lseeki64
+diff -urN xine-lib-1.2.4/src/post/deinterlace/speedy.c xine-lib-1.2.4-patch/src/post/deinterlace/speedy.c
+--- xine-lib-1.2.4/src/post/deinterlace/speedy.c	2012-05-26 23:49:59.000000000 +0300
++++ xine-lib-1.2.4-patch/src/post/deinterlace/speedy.c	2013-12-20 12:24:59.608986588 +0200
+@@ -1392,28 +1392,28 @@
+ }
+ #endif
+ 
+-
+-#define speedy_memcpy_c xine_fast_memcpy
+-#define speedy_memcpy_mmx xine_fast_memcpy
+-#define speedy_memcpy_mmxext xine_fast_memcpy
++//#undef xine_fast_memcpy
++//#define speedy_memcpy_c xine_fast_memcpy
++//#define speedy_memcpy_mmx xine_fast_memcpy
++//#define speedy_memcpy_mmxext xine_fast_memcpy
+ 
+ 
+ static void blit_packed422_scanline_c( uint8_t *dest, const uint8_t *src, int width )
+ {
+-    speedy_memcpy_c( dest, src, width*2 );
++    memcpy( dest, src, width*2 );
+ }
+ 
+ #if defined(ARCH_X86) || defined(ARCH_X86_64)
+ static void blit_packed422_scanline_mmx( uint8_t *dest, const uint8_t *src, int width )
+ {
+-    speedy_memcpy_mmx( dest, src, width*2 );
++    memcpy( dest, src, width*2 );
+ }
+ #endif
+ 
+ #if defined(ARCH_X86) || defined(ARCH_X86_64)
+ static void blit_packed422_scanline_mmxext( uint8_t *dest, const uint8_t *src, int width )
+ {
+-    speedy_memcpy_mmxext( dest, src, width*2 );
++    memcpy( dest, src, width*2 );
+ }
+ #endif
+ 
+@@ -2602,7 +2602,8 @@
+     kill_chroma_packed422_inplace_scanline = kill_chroma_packed422_inplace_scanline_c;
+     mirror_packed422_inplace_scanline = mirror_packed422_inplace_scanline_c;
+     halfmirror_packed422_inplace_scanline = halfmirror_packed422_inplace_scanline_c;
+-    speedy_memcpy = speedy_memcpy_c;
++    speedy_memcpy = memcpy;
++    //speedy_memcpy = speedy_memcpy_c;
+     diff_packed422_block8x8 = diff_packed422_block8x8_c;
+     a8_subpix_blit_scanline = a8_subpix_blit_scanline_c;
+     quarter_blit_vertical_packed422_scanline = quarter_blit_vertical_packed422_scanline_c;
+@@ -2644,7 +2645,8 @@
+         invert_colour_packed422_inplace_scanline = invert_colour_packed422_inplace_scanline_mmx;
+         vfilter_chroma_121_packed422_scanline = vfilter_chroma_121_packed422_scanline_mmx;
+         vfilter_chroma_332_packed422_scanline = vfilter_chroma_332_packed422_scanline_mmx;
+-        speedy_memcpy = speedy_memcpy_mmxext;
++        //speedy_memcpy = speedy_memcpy_mmxext;
++        speedy_memcpy = memcpy;
+     } else if( speedy_accel & MM_ACCEL_X86_MMX ) {
+         if( verbose ) {
+             printf( "speedycode: Using MMX optimized functions.\n" );
+@@ -2660,7 +2662,8 @@
+         invert_colour_packed422_inplace_scanline = invert_colour_packed422_inplace_scanline_mmx;
+         vfilter_chroma_121_packed422_scanline = vfilter_chroma_121_packed422_scanline_mmx;
+         vfilter_chroma_332_packed422_scanline = vfilter_chroma_332_packed422_scanline_mmx;
+-        speedy_memcpy = speedy_memcpy_mmx;
++        //speedy_memcpy = speedy_memcpy_mmx;
++        speedy_memcpy = memcpy;
+     } else {
+         if( verbose ) {
+             printf( "speedycode: No MMX or MMXEXT support detected, using C fallbacks.\n" );
+diff -urN xine-lib-1.2.4/src/vdr/input_vdr.c xine-lib-1.2.4-patch/src/vdr/input_vdr.c
+--- xine-lib-1.2.4/src/vdr/input_vdr.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/vdr/input_vdr.c	2013-12-20 12:23:36.313756861 +0200
+@@ -28,13 +28,13 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
+-#include <sys/poll.h>
++// #include <sys/poll.h>
+ #include <errno.h>
+ #include <pthread.h>
+ 
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+-#include <resolv.h>
++// #include <resolv.h>
+ #include <netdb.h>
+ 
+ #define LOG_MODULE "input_vdr"
+@@ -1919,7 +1919,7 @@
+   filename = strdup(filename);
+ 
+   _x_mrl_unescape (filename);
+-  this->fh = xine_open_cloexec(filename, O_RDONLY | O_NONBLOCK);
++  this->fh = xine_open_cloexec(filename, O_RDONLY);
+ 
+   lprintf("filename '%s'\n", filename);
+ 
+@@ -1934,7 +1934,7 @@
+   }
+ 
+   {
+-    struct pollfd poll_fh = { this->fh, POLLIN, 0 };
++    /*struct pollfd poll_fh = { this->fh, POLLIN, 0 };
+ 
+     int r = poll(&poll_fh, 1, 300);
+     if (1 != r)
+@@ -1945,10 +1945,10 @@
+               _("timeout expired during setup phase"));
+       free (filename);
+       return 0;
+-    }
++    }*/
+   }
+ 
+-  fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
++  //fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
+ 
+   /* eat initial handshake byte */
+   {
+@@ -2098,7 +2098,7 @@
+   if ((this->fh = vdr_plugin_open_socket(this, host, port + 0)) == -1)
+     return 0;
+ 
+-  fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
++  //fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
+ 
+   if ((this->fh_control = vdr_plugin_open_socket(this, host, port + 1)) == -1)
+     return 0;
+diff -urN xine-lib-1.2.4/src/video_dec/libjpeg.c xine-lib-1.2.4-patch/src/video_dec/libjpeg.c
+--- xine-lib-1.2.4/src/video_dec/libjpeg.c	2012-11-23 22:08:21.000000000 +0200
++++ xine-lib-1.2.4-patch/src/video_dec/libjpeg.c	2013-12-18 10:01:45.755428630 +0200
+@@ -26,6 +26,7 @@
+ #endif
+ 
+ 
++
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
+@@ -33,6 +34,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <stdio.h>
++#include <basetsd.h>
+ 
+ #define LOG_MODULE "jpeg_video_decoder"
+ #define LOG_VERBOSE
+diff -urN xine-lib-1.2.4/src/xine-utils/memcpy.c xine-lib-1.2.4-patch/src/xine-utils/memcpy.c
+--- xine-lib-1.2.4/src/xine-utils/memcpy.c	2013-09-18 19:58:32.000000000 +0300
++++ xine-lib-1.2.4-patch/src/xine-utils/memcpy.c	2013-12-20 12:30:01.733448201 +0200
+@@ -55,7 +55,7 @@
+ #include <xine/xine_internal.h>
+ #include "../xine-engine/xine_private.h"
+ 
+-void *(* xine_fast_memcpy)(void *to, const void *from, size_t len);
++
+ 
+ /* Original comments from mplayer (file: aclib.c)
+  This part of code was taken by me from Linux-2.4.3 and slightly modified
+@@ -558,7 +558,7 @@
+       && (config_flags & memcpy_method[method].cpu_require) ==
+       memcpy_method[method].cpu_require ) {
+     lprintf("using %s memcpy()\n", memcpy_method[method].name );
+-    xine_fast_memcpy = memcpy_method[method].function;
++    // xine_fast_memcpy = memcpy_method[method].function;
+     return;
+   } else {
+     xprintf(xine, XINE_VERBOSITY_DEBUG, "xine: will probe memcpy on startup\n" );
+@@ -603,13 +603,13 @@
+      (config_flags & memcpy_method[best].cpu_require) ==
+       memcpy_method[best].cpu_require ) {
+     lprintf("using %s memcpy()\n", memcpy_method[best].name );
+-    xine_fast_memcpy = memcpy_method[best].function;
++    // xine_fast_memcpy = memcpy_method[best].function;
+     return;
+   }
+ 
+   best = 0;
+ 
+-  xine_fast_memcpy = memcpy;
++  // xine_fast_memcpy = memcpy;
+ 
+   if( (buf1 = malloc(BUFSIZE)) == NULL )
+     return;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/xine-lib-3-more_build_fixes.patch	Sun Jun 29 15:46:35 2014 -0400
@@ -0,0 +1,109 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -urN xine-lib-1.2.4/src/combined/wavpack_decoder.c xine-lib-1.2.4-patch/src/combined/wavpack_decoder.c
+--- xine-lib-1.2.4/src/combined/wavpack_decoder.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/combined/wavpack_decoder.c	2014-01-01 12:45:31.120873116 +0200
+@@ -27,6 +27,7 @@
+ #define LOG_MODULE "decode_wavpack"
+ #define LOG_VERBOSE
+ 
++#include <malloc.h>
+ #include <xine/xine_internal.h>
+ #include <xine/attributes.h>
+ #include "bswap.h"
+diff -urN xine-lib-1.2.4/src/input/input_cdda.c xine-lib-1.2.4-patch/src/input/input_cdda.c
+--- xine-lib-1.2.4/src/input/input_cdda.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/input/input_cdda.c	2014-01-01 12:42:52.954879392 +0200
+@@ -56,6 +56,7 @@
+ #include <signal.h>
+ #include <netinet/in.h>
+ #include <sys/socket.h>
++#include <malloc.h>
+ 
+ #include <basedir.h>
+ 
+diff -urN xine-lib-1.2.4/src/vdr/input_vdr.c xine-lib-1.2.4-patch/src/vdr/input_vdr.c
+--- xine-lib-1.2.4/src/vdr/input_vdr.c	2014-01-01 12:52:41.000000000 +0200
++++ xine-lib-1.2.4-patch/src/vdr/input_vdr.c	2014-01-01 12:49:36.935863362 +0200
+@@ -1760,7 +1760,7 @@
+   if (this->event_queue)
+     xine_event_dispose_queue(this->event_queue);
+ 
+-  if (this->rpc_thread)
++  /* if (this->rpc_thread)
+   {
+     struct timespec abstime;
+     int ms_to_time_out = 10000;
+@@ -1799,12 +1799,12 @@
+     xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: joining rpc thread ...\n"), LOG_MODULE);
+     pthread_join(this->rpc_thread, 0);
+     xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: rpc thread joined.\n"), LOG_MODULE);
+-  }
++  }*/
+ 
+   pthread_cond_destroy(&this->rpc_thread_shutdown_cond);
+   pthread_mutex_destroy(&this->rpc_thread_shutdown_lock);
+ 
+-  if (this->metronom_thread)
++  /*if (this->metronom_thread)
+   {
+     xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: joining metronom thread ...\n"), LOG_MODULE);
+ 
+@@ -1814,12 +1814,6 @@
+     this->metronom_thread_request = -1;
+     this->metronom_thread_reply = 0;
+     pthread_cond_broadcast(&this->metronom_thread_request_cond);
+-/*
+-    pthread_mutex_unlock(&this->metronom_thread_lock);
+-
+-    pthread_mutex_lock(&this->metronom_thread_lock);
+-    if (!this->metronom_thread_reply)
+-*/
+       pthread_cond_wait(&this->metronom_thread_reply_cond, &this->metronom_thread_lock);
+     pthread_mutex_unlock(&this->metronom_thread_lock);
+ 
+@@ -1827,7 +1821,7 @@
+ 
+     pthread_join(this->metronom_thread, 0);
+     xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: metronom thread joined.\n"), LOG_MODULE);
+-  }
++  }*/
+ 
+   pthread_mutex_destroy(&this->metronom_thread_lock);
+   pthread_cond_destroy(&this->metronom_thread_request_cond);
+diff -urN xine-lib-1.2.4/src/xine-engine/scratch.c xine-lib-1.2.4-patch/src/xine-engine/scratch.c
+--- xine-lib-1.2.4/src/xine-engine/scratch.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/xine-engine/scratch.c	2014-01-01 12:36:59.724893408 +0200
+@@ -40,20 +40,20 @@
+   scratch_printf (scratch_buffer_t *this, const char *format, va_list argp)
+ {
+   time_t t;
+-  struct tm tm;
++  struct tm *tm;
+   size_t l;
+ 
+   pthread_mutex_lock (&this->lock);
+ 
+   time (&t);
+-  localtime_r (&t, &tm);
++  tm = localtime (&t);
+ 
+   if ( ! this->lines[this->cur] )
+     this->lines[this->cur] = malloc(SCRATCH_LINE_LEN_MAX+1);
+   if ( ! this->lines[this->cur] )
+     return;
+ 
+-  l = strftime (this->lines[this->cur], SCRATCH_LINE_LEN_MAX, "%X: ", &tm);
++  l = strftime (this->lines[this->cur], SCRATCH_LINE_LEN_MAX, "%X: ", tm);
+   vsnprintf (this->lines[this->cur] + l, SCRATCH_LINE_LEN_MAX - l, format, argp);
+ 
+   lprintf ("printing format %s to line %d\n", format, this->cur);
+diff -urN xine-lib-1.2.4/src/xine-utils/Makefile.am xine-lib-1.2.4-patch/src/xine-utils/Makefile.am
+--- xine-lib-1.2.4/src/xine-utils/Makefile.am	2012-02-05 21:17:03.000000000 +0200
++++ xine-lib-1.2.4-patch/src/xine-utils/Makefile.am	2014-01-01 12:36:33.466894450 +0200
+@@ -37,3 +37,4 @@
+ noinst_PROGRAMS = xmltest
+ xmltest_SOURCES = xmllexer.c xmlparser.c
+ xmltest_CFLAGS = -DLOG -DXINE_XML_PARSER_TEST $(AM_CFLAGS)
++xmltest_LDFLAGS = $(top_builddir)/lib/libxineposix.la
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/xine-lib-4-mkdir.patch	Sun Jun 29 15:46:35 2014 -0400
@@ -0,0 +1,14 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -urN xine-lib-1.2.4/lib/os_internal.h xine-lib-1.2.4-patch/lib/os_internal.h
+--- xine-lib-1.2.4/lib/os_internal.h	2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/lib/os_internal.h	2014-01-03 19:05:56.643793781 +0200
+@@ -260,6 +260,7 @@
+ #  ifdef __MINGW64__
+ #    define mkdir(A, B) mkdir((A))
+ #  else
++     _CRTIMP int __cdecl _mkdir(const char *_Path);
+ #    define mkdir(A, B) _mkdir((A))
+ #  endif
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/xine-lib-5-change_mma_h_to_mma_win32_h.patch	Sun Jun 29 15:46:35 2014 -0400
@@ -0,0 +1,303 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -urN xine-lib-1.2.4/contrib/libdha/irq.c xine-lib-1.2.4-patch/contrib/libdha/irq.c
+--- xine-lib-1.2.4/contrib/libdha/irq.c	2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/irq.c	2014-01-05 14:30:37.000000000 +0200
+@@ -2,7 +2,7 @@
+ #include <stdio.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+-#include <sys/mman.h> /* mlock */
++#include <sys/mman-win32.h> /* mlock */
+ #include <pthread.h>
+ #include <errno.h>
+ #include <unistd.h>
+diff -urN xine-lib-1.2.4/contrib/libdha/kernelhelper/test.c xine-lib-1.2.4-patch/contrib/libdha/kernelhelper/test.c
+--- xine-lib-1.2.4/contrib/libdha/kernelhelper/test.c	2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/kernelhelper/test.c	2014-01-05 14:30:37.000000000 +0200
+@@ -4,7 +4,7 @@
+ #include <unistd.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdlib.h>
+ 
+ #include "dhahelper.h"
+diff -urN xine-lib-1.2.4/contrib/libdha/libdha.c xine-lib-1.2.4-patch/contrib/libdha/libdha.c
+--- xine-lib-1.2.4/contrib/libdha/libdha.c	2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/libdha.c	2014-01-05 14:30:37.000000000 +0200
+@@ -58,7 +58,7 @@
+ # endif /* SVR4 */
+ 
+ /* Generic version */
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/ioctl.h>
+ #ifndef DEV_MEM
+ #define DEV_MEM "/dev/mem"
+diff -urN xine-lib-1.2.4/contrib/libdha/mmi.c xine-lib-1.2.4-patch/contrib/libdha/mmi.c
+--- xine-lib-1.2.4/contrib/libdha/mmi.c	2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/mmi.c	2014-01-05 14:30:37.000000000 +0200
+@@ -2,7 +2,7 @@
+ #include <stdio.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+-#include <sys/mman.h> /* mlock */
++#include <sys/mman-win32.h> /* mlock */
+ #include <errno.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+diff -urN xine-lib-1.2.4/contrib/vidix/drivers/mach64_vid.c xine-lib-1.2.4-patch/contrib/vidix/drivers/mach64_vid.c
+--- xine-lib-1.2.4/contrib/vidix/drivers/mach64_vid.c	2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/vidix/drivers/mach64_vid.c	2014-01-05 14:30:35.000000000 +0200
+@@ -13,7 +13,7 @@
+ #include <inttypes.h>
+ #include <fcntl.h>
+ #include <limits.h>
+-#include <sys/mman.h> /* for m(un)lock */
++#include <sys/mman-win32.h> /* for m(un)lock */
+ #ifdef HAVE_MALLOC_H
+ #include <malloc.h>
+ #ifdef HAVE_MEMALIGN
+diff -urN xine-lib-1.2.4/contrib/vidix/drivers/pm3_vid.c xine-lib-1.2.4-patch/contrib/vidix/drivers/pm3_vid.c
+--- xine-lib-1.2.4/contrib/vidix/drivers/pm3_vid.c	2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/vidix/drivers/pm3_vid.c	2014-01-05 14:30:35.000000000 +0200
+@@ -24,7 +24,7 @@
+ #include <string.h>
+ #include <inttypes.h>
+ #include <unistd.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ 
+ #include "vidix.h"
+ #include "fourcc.h"
+diff -urN xine-lib-1.2.4/contrib/vidix/drivers/radeon_vid.c xine-lib-1.2.4-patch/contrib/vidix/drivers/radeon_vid.c
+--- xine-lib-1.2.4/contrib/vidix/drivers/radeon_vid.c	2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/vidix/drivers/radeon_vid.c	2014-01-05 14:30:36.000000000 +0200
+@@ -12,7 +12,7 @@
+ #include <math.h>
+ #include <inttypes.h>
+ #include <sys/types.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include "bswap.h"
+ #include "pci_ids.h"
+ #include "pci_names.h"
+diff -urN xine-lib-1.2.4/include/configure.h.in xine-lib-1.2.4-patch/include/configure.h.in
+--- xine-lib-1.2.4/include/configure.h.in	2013-09-20 16:07:56.000000000 +0300
++++ xine-lib-1.2.4-patch/include/configure.h.in	2014-01-05 14:39:09.000000000 +0200
+@@ -441,7 +441,7 @@
+ /* Define to 1 if you have the <sys/mixer.h> header file. */
+ #undef HAVE_SYS_MIXER_H
+ 
+-/* Define to 1 if you have the <sys/mman.h> header file. */
++/* Define to 1 if you have the <sys/mman-win32.h> header file. */
+ #undef HAVE_SYS_MMAN_H
+ 
+ /* Define to 1 if you have the <sys/param.h> header file. */
+diff -urN xine-lib-1.2.4/src/input/input_file.c xine-lib-1.2.4-patch/src/input/input_file.c
+--- xine-lib-1.2.4/src/input/input_file.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/input/input_file.c	2014-01-05 14:30:30.000000000 +0200
+@@ -35,7 +35,7 @@
+ #include <errno.h>
+ 
+ #ifdef HAVE_MMAP
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #endif
+ 
+ #define LOG_MODULE "input_file"
+diff -urN xine-lib-1.2.4/src/input/input_v4l2.c xine-lib-1.2.4-patch/src/input/input_v4l2.c
+--- xine-lib-1.2.4/src/input/input_v4l2.c	2012-02-05 21:17:02.000000000 +0200
++++ xine-lib-1.2.4-patch/src/input/input_v4l2.c	2014-01-05 14:30:30.000000000 +0200
+@@ -44,7 +44,7 @@
+ #else
+ # include <linux/videodev2.h>
+ #endif
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdio.h>
+ #include <errno.h>
+ 
+diff -urN xine-lib-1.2.4/src/input/input_v4l.c xine-lib-1.2.4-patch/src/input/input_v4l.c
+--- xine-lib-1.2.4/src/input/input_v4l.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/input/input_v4l.c	2014-01-05 14:30:26.000000000 +0200
+@@ -49,7 +49,7 @@
+ 
+ #include <linux/videodev.h>
+ #include <sys/ioctl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <errno.h>
+ 
+ /* Used to capture the audio data */
+diff -urN xine-lib-1.2.4/src/libw32dll/DirectShow/DS_VideoDecoder.c xine-lib-1.2.4-patch/src/libw32dll/DirectShow/DS_VideoDecoder.c
+--- xine-lib-1.2.4/src/libw32dll/DirectShow/DS_VideoDecoder.c	2009-12-02 20:32:57.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/DirectShow/DS_VideoDecoder.c	2014-01-05 14:29:19.000000000 +0200
+@@ -45,7 +45,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/types.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdio.h>
+ #include <stdlib.h>  // labs
+ 
+diff -urN xine-lib-1.2.4/src/libw32dll/dmo/DMO_VideoDecoder.c xine-lib-1.2.4-patch/src/libw32dll/dmo/DMO_VideoDecoder.c
+--- xine-lib-1.2.4/src/libw32dll/dmo/DMO_VideoDecoder.c	2009-12-02 20:32:57.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/dmo/DMO_VideoDecoder.c	2014-01-05 14:29:15.000000000 +0200
+@@ -49,7 +49,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/types.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdio.h>
+ #include <stdlib.h>  // labs
+ 
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/ext.c xine-lib-1.2.4-patch/src/libw32dll/wine/ext.c
+--- xine-lib-1.2.4/src/libw32dll/wine/ext.c	2009-11-30 23:28:52.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/ext.c	2014-01-05 14:29:18.000000000 +0200
+@@ -12,7 +12,7 @@
+ #include <malloc.h>
+ #endif
+ #include <unistd.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <string.h>
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/ldt_keeper.c xine-lib-1.2.4-patch/src/libw32dll/wine/ldt_keeper.c
+--- xine-lib-1.2.4/src/libw32dll/wine/ldt_keeper.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/ldt_keeper.c	2014-01-05 14:29:18.000000000 +0200
+@@ -57,7 +57,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <unistd.h>
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/module.c xine-lib-1.2.4-patch/src/libw32dll/wine/module.c
+--- xine-lib-1.2.4/src/libw32dll/wine/module.c	2009-11-30 23:28:52.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/module.c	2014-01-05 14:29:16.000000000 +0200
+@@ -19,7 +19,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/types.h>
+ 
+ 
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/pe_image.c xine-lib-1.2.4-patch/src/libw32dll/wine/pe_image.c
+--- xine-lib-1.2.4/src/libw32dll/wine/pe_image.c	2009-11-30 23:28:52.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/pe_image.c	2014-01-05 14:29:18.000000000 +0200
+@@ -45,7 +45,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #ifdef HAVE_SYS_MMAN_H
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #endif
+ #ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_aa.c xine-lib-1.2.4-patch/src/video_out/video_out_aa.c
+--- xine-lib-1.2.4/src/video_out/video_out_aa.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_aa.c	2014-01-05 14:29:48.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/stat.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/time.h>
+ 
+ #ifdef HAVE_FFMPEG_AVUTIL_H
+diff -urN xine-lib-1.2.4/src/video_out/video_out_caca.c xine-lib-1.2.4-patch/src/video_out/video_out_caca.c
+--- xine-lib-1.2.4/src/video_out/video_out_caca.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_caca.c	2014-01-05 14:29:41.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/stat.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/time.h>
+ #include <cucul.h>
+ #include <caca.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_fb.c xine-lib-1.2.4-patch/src/video_out/video_out_fb.c
+--- xine-lib-1.2.4/src/video_out/video_out_fb.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_fb.c	2014-01-05 14:29:53.000000000 +0200
+@@ -60,7 +60,7 @@
+ #include <sys/shm.h>
+ #include <sys/time.h>
+ #include <sys/ioctl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ 
+ #include <pthread.h>
+ #include <netinet/in.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_pgx32.c xine-lib-1.2.4-patch/src/video_out/video_out_pgx32.c
+--- xine-lib-1.2.4/src/video_out/video_out_pgx32.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_pgx32.c	2014-01-05 14:29:51.000000000 +0200
+@@ -34,7 +34,7 @@
+ #include <unistd.h>
+ #include <sys/fbio.h>
+ #include <sys/visual_io.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ 
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_pgx64.c xine-lib-1.2.4-patch/src/video_out/video_out_pgx64.c
+--- xine-lib-1.2.4/src/video_out/video_out_pgx64.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_pgx64.c	2014-01-05 14:29:44.000000000 +0200
+@@ -36,7 +36,7 @@
+ #include <unistd.h>
+ #include <sys/fbio.h>
+ #include <sys/visual_io.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ 
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+diff -urN xine-lib-1.2.4/src/xine-utils/xmlparser.c xine-lib-1.2.4-patch/src/xine-utils/xmlparser.c
+--- xine-lib-1.2.4/src/xine-utils/xmlparser.c	2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/xine-utils/xmlparser.c	2014-01-05 14:30:22.000000000 +0200
+@@ -879,7 +879,7 @@
+ }
+ 
+ #ifdef XINE_XML_PARSER_TEST
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+diff -urN xine-lib-1.2.4/win32/config.h xine-lib-1.2.4-patch/win32/config.h
+--- xine-lib-1.2.4/win32/config.h	2012-02-05 21:17:03.000000000 +0200
++++ xine-lib-1.2.4-patch/win32/config.h	2014-01-05 14:28:32.000000000 +0200
+@@ -273,7 +273,7 @@
+ /* Define to 1 if you have the <sys/mixer.h> header file. */
+ /* #undef HAVE_SYS_MIXER_H */
+ 
+-/* Define to 1 if you have the <sys/mman.h> header file. */
++/* Define to 1 if you have the <sys/mman-win32.h> header file. */
+ #define HAVE_SYS_MMAN_H 1
+ 
+ /* Define to 1 if you have the <sys/param.h> header file. */
+diff -urN xine-lib-1.2.4/win32/include/msvc/config.h xine-lib-1.2.4-patch/win32/include/msvc/config.h
+--- xine-lib-1.2.4/win32/include/msvc/config.h	2009-11-30 23:26:06.000000000 +0200
++++ xine-lib-1.2.4-patch/win32/include/msvc/config.h	2014-01-05 14:28:32.000000000 +0200
+@@ -425,7 +425,7 @@
+ /* Define to 1 if you have the <sys/mixer.h> header file. */
+ /* #undef HAVE_SYS_MIXER_H */
+ 
+-/* Define to 1 if you have the <sys/mman.h> header file. */
++/* Define to 1 if you have the <sys/mman-win32.h> header file. */
+ /* #undef HAVE_SYS_MMAN_H */
+ 
+ /* Define to 1 if you have the <sys/param.h> header file. */
--- a/src/xine-lib.mk	Sun Jun 29 14:26:38 2014 -0400
+++ b/src/xine-lib.mk	Sun Jun 29 15:46:35 2014 -0400
@@ -3,12 +3,12 @@
 
 PKG             := xine-lib
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 1.1.21
-$(PKG)_CHECKSUM := 0adf20ef55d24f2a1b4a8974e57ad1be5133b236
+$(PKG)_VERSION  := 1.2.4
+$(PKG)_CHECKSUM := 32267c5fcaa1439a5fbf7606d27dc4fafba9e504
 $(PKG)_SUBDIR   := $(PKG)-$($(PKG)_VERSION)
 $(PKG)_FILE     := $(PKG)-$($(PKG)_VERSION).tar.xz
 $(PKG)_URL      := http://$(SOURCEFORGE_MIRROR)/project/xine/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS     := faad2 ffmpeg flac fontconfig freetype graphicsmagick libiconv libmng pthreads sdl speex theora vorbis zlib
+$(PKG)_DEPS     := faad2 ffmpeg flac fontconfig freetype graphicsmagick libiconv libmng pthreads sdl speex theora vorbis wavpack zlib libmpcdec libcdio vcdimager mman-win32 libmad a52dec libmodplug
 
 define $(PKG)_UPDATE
     $(WGET) -q -O- 'http://hg.debian.org/hg/xine-lib/xine-lib/tags' | \
@@ -55,6 +55,7 @@
         CFLAGS='-I$(1)/win32/include' \
         PTHREAD_LIBS='-lpthread -lws2_32' \
         LIBS="`$(MXE_PKG_CONFIG) --libs libmng`"
+    $(SED) -i 's,[\s^]*sed , $(SED) ,g' '$(1)/src/combined/ffmpeg/Makefile'
     $(MAKE) -C '$(1)' -j '$(JOBS)'
     $(MAKE) -C '$(1)' -j 1 install
 endef