summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-08-07 01:09:42 +0200
committerwm4 <wm4@nowhere>2012-08-07 01:09:42 +0200
commit89b7cb0331c191730b725f09ee575971e82de6c2 (patch)
tree3c58572fdcc8dc0342745c70ddac95e19bb80e63
parent76b98e4c32b4d60e4c3740c3bb96753f9812b982 (diff)
downloadmpv-89b7cb0331c191730b725f09ee575971e82de6c2.tar.bz2
mpv-89b7cb0331c191730b725f09ee575971e82de6c2.tar.xz
win32: fix compilation on MinGW
The commit 74df1d8e05aa2 (and f752212c62353) replaced the configure endian check with byte order macros defined by standard headers. It turns out that MinGW-w64 actually doesn't define these macros in the sys/types.h system header. (I assumed it does, because a quick test seemed to work. But that was because gcc -W -Wall doesn't warn against undefined macros. You need -Wundef for that.) MinGW-w64 has a sys/params.h header defining these macros, but sys/types.h doesn't include it, so it's useless without special casing the mplayer code. Add a hack top configure instead. Define the macros directly, and assume MinGW-w64 only works on little endian machines. The other changes are basically random typos and superficial oversights.
-rwxr-xr-xconfigure4
-rw-r--r--libvo/vo_direct3d.c2
-rw-r--r--mplayer.c2
-rw-r--r--stream/tvi_dshow.c18
4 files changed, 15 insertions, 11 deletions
diff --git a/configure b/configure
index f8ac1682ae..68675499cc 100755
--- a/configure
+++ b/configure
@@ -1018,6 +1018,10 @@ if mingw32 ; then
_getch=getch2-win.c
need_shmem=no
extra_cflags="$extra_cflags -D__USE_MINGW_ANSI_STDIO=1"
+ # Hack for missing BYTE_ORDER declarations in <sys/types.h>.
+ # (For some reason, they are in <sys/param.h>, but we don't bother switching
+ # the includes based on whether we're compiling for MinGW.)
+ extra_cflags="$extra_cflags -DBYTE_ORDER=1234 -DLITTLE_ENDIAN=1234 -DBIG_ENDIAN=4321"
fi
TMPC="$mplayer_tmpdir/tmp.c"
diff --git a/libvo/vo_direct3d.c b/libvo/vo_direct3d.c
index 3ae7ea3197..f8c9054b97 100644
--- a/libvo/vo_direct3d.c
+++ b/libvo/vo_direct3d.c
@@ -1987,7 +1987,7 @@ static void draw_osd(struct vo *vo, struct osd_state *osd)
if (!priv->d3d_device)
return;
- if (vo_osd_has_changed()) {
+ if (vo_osd_has_changed(osd)) {
struct draw_osd_closure ctx = { priv };
/* clear the OSD */
diff --git a/mplayer.c b/mplayer.c
index 31218cdd02..25fafa1b72 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -4163,7 +4163,7 @@ static void osdep_preinit(int *p_argc, char ***p_argv)
GetCpuCaps(&gCpuCaps);
#ifdef __MINGW32__
- mp_get_converted_argv(&argc, &argv);
+ mp_get_converted_argv(p_argc, p_argv);
#endif
#ifdef PTW32_STATIC_LIB
diff --git a/stream/tvi_dshow.c b/stream/tvi_dshow.c
index 2781c76032..db3004b5ba 100644
--- a/stream/tvi_dshow.c
+++ b/stream/tvi_dshow.c
@@ -165,6 +165,15 @@ typedef struct {
void** arStreamCaps; ///< VIDEO_STREAM_CONFIG_CAPS or AUDIO_STREAM_CONFIG_CAPS
} chain_t;
+typedef struct tt_stream_props_s{
+ int sampling_rate;
+ int samples_per_line;
+ int offset;
+ int count[2]; ///< number of lines in first and second fields
+ int interlaced; ///< vbi data are interlaced
+ int bufsize; ///< required buffer size
+} tt_stream_props;
+
typedef struct priv {
int dev_index; ///< capture device index in device list (defaul: 0, first available device)
int adev_index; ///< audio capture device index in device list (default: -1, not used)
@@ -200,15 +209,6 @@ typedef struct priv {
tv_param_t* tv_param; ///< TV parameters
} priv_t;
-typedef struct tt_stream_props_s{
- int sampling_rate;
- int samples_per_line;
- int offset;
- int count[2]; ///< number of lines in first and second fields
- int interlaced; ///< vbi data are interlaced
- int bufsize; ///< required buffer size
-} tt_stream_props;
-
#include "tvi_def.h"
/**