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 #include #include +#ifdef __MINGW32__ +#include +#else #include /* htons */ +#endif #include /* ntohs */ #include 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 #include #include -#include +#ifdef __MINGW32__ +#include +#else +#include /* htons */ +#endif #ifdef HAVE_FFMPEG_AVUTIL_H # include 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 #include -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 /* 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 #include #include -#include +// #include #include #include #include #include -#include +// #include #include #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 #include #include @@ -33,6 +34,7 @@ #include #include #include +#include #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 #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;