147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Diff
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Diff
		
	
	
		
			Executable File
		
	
	
	
	
From ed3b6e4bca1fe5211e3d7ca06bbbf9b161c8bc19 Mon Sep 17 00:00:00 2001
 | 
						|
From: Michal Janiszewski <janisozaur@gmail.com>
 | 
						|
Date: Sat, 2 Nov 2019 14:50:53 -0700
 | 
						|
Subject: [PATCH] Add naive MSVC support to sources
 | 
						|
 | 
						|
---
 | 
						|
 libmpeg2/convert/rgb.c | 2 +-
 | 
						|
 libmpeg2/cpu_accel.c   | 4 ++--
 | 
						|
 libmpeg2/cpu_state.c   | 4 ++--
 | 
						|
 libmpeg2/idct.c        | 2 +-
 | 
						|
 libmpeg2/motion_comp.c | 2 +-
 | 
						|
 libvo/video_out_dx.c   | 6 +++---
 | 
						|
 vc++/config.h          | 2 ++
 | 
						|
 7 files changed, 12 insertions(+), 10 deletions(-)
 | 
						|
 | 
						|
diff --git a/libmpeg2/convert/rgb.c b/libmpeg2/convert/rgb.c
 | 
						|
index 8863b0b..db6f4e3 100644
 | 
						|
--- a/libmpeg2/convert/rgb.c
 | 
						|
+++ b/libmpeg2/convert/rgb.c
 | 
						|
@@ -499,7 +499,7 @@ static int rgb_internal (mpeg2convert_rgb_order_t order, unsigned int bpp,
 | 
						|
     int convert420 = 0;
 | 
						|
     int rgb_stride_min = ((bpp + 7) >> 3) * seq->width;
 | 
						|
 
 | 
						|
-#ifdef ARCH_X86
 | 
						|
+#if !defined(_MSC_VER) && defined(ARCH_X86)
 | 
						|
     if (!copy && (accel & MPEG2_ACCEL_X86_MMXEXT)) {
 | 
						|
 	convert420 = 0;
 | 
						|
 	copy = mpeg2convert_rgb_mmxext (order, bpp, seq);
 | 
						|
diff --git a/libmpeg2/cpu_accel.c b/libmpeg2/cpu_accel.c
 | 
						|
index 9b24610..a922df1 100644
 | 
						|
--- a/libmpeg2/cpu_accel.c
 | 
						|
+++ b/libmpeg2/cpu_accel.c
 | 
						|
@@ -29,7 +29,7 @@
 | 
						|
 #include "attributes.h"
 | 
						|
 #include "mpeg2_internal.h"
 | 
						|
 
 | 
						|
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
 | 
						|
+#if !defined(_MSC_VER) && (defined(ARCH_X86) || defined(ARCH_X86_64))
 | 
						|
 static inline uint32_t arch_accel (uint32_t accel)
 | 
						|
 {
 | 
						|
     if (accel & (MPEG2_ACCEL_X86_3DNOW | MPEG2_ACCEL_X86_MMXEXT))
 | 
						|
@@ -253,7 +253,7 @@ static inline uint32_t arch_accel (uint32_t accel)
 | 
						|
 
 | 
						|
 uint32_t mpeg2_detect_accel (uint32_t accel)
 | 
						|
 {
 | 
						|
-#if defined (ARCH_X86) || defined (ARCH_X86_64) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC)
 | 
						|
+#if !defined(_MSC_VER) && (defined (ARCH_X86) || defined (ARCH_X86_64) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC))
 | 
						|
     accel = arch_accel (accel);
 | 
						|
 #endif
 | 
						|
     return accel;
 | 
						|
diff --git a/libmpeg2/cpu_state.c b/libmpeg2/cpu_state.c
 | 
						|
index 2f2f64a..f4966c1 100644
 | 
						|
--- a/libmpeg2/cpu_state.c
 | 
						|
+++ b/libmpeg2/cpu_state.c
 | 
						|
@@ -36,7 +36,7 @@
 | 
						|
 void (* mpeg2_cpu_state_save) (cpu_state_t * state) = NULL;
 | 
						|
 void (* mpeg2_cpu_state_restore) (cpu_state_t * state) = NULL;
 | 
						|
 
 | 
						|
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
 | 
						|
+#if !defined(_MSC_VER) && (defined(ARCH_X86) || defined(ARCH_X86_64))
 | 
						|
 static void state_restore_mmx (cpu_state_t * state)
 | 
						|
 {
 | 
						|
     emms ();
 | 
						|
@@ -115,7 +115,7 @@ static void state_restore_altivec (cpu_state_t * state)
 | 
						|
 
 | 
						|
 void mpeg2_cpu_state_init (uint32_t accel)
 | 
						|
 {
 | 
						|
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
 | 
						|
+#if !defined(_MSC_VER) && (defined(ARCH_X86) || defined(ARCH_X86_64))
 | 
						|
     if (accel & MPEG2_ACCEL_X86_MMX) {
 | 
						|
 	mpeg2_cpu_state_restore = state_restore_mmx;
 | 
						|
     }
 | 
						|
diff --git a/libmpeg2/idct.c b/libmpeg2/idct.c
 | 
						|
index 81c57e0..a057bf7 100644
 | 
						|
--- a/libmpeg2/idct.c
 | 
						|
+++ b/libmpeg2/idct.c
 | 
						|
@@ -235,7 +235,7 @@ static void mpeg2_idct_add_c (const int last, int16_t * block,
 | 
						|
 
 | 
						|
 void mpeg2_idct_init (uint32_t accel)
 | 
						|
 {
 | 
						|
-#ifdef ARCH_X86
 | 
						|
+#if !defined(_MSC_VER) && defined(ARCH_X86)
 | 
						|
     if (accel & MPEG2_ACCEL_X86_SSE2) {
 | 
						|
 	mpeg2_idct_copy = mpeg2_idct_copy_sse2;
 | 
						|
 	mpeg2_idct_add = mpeg2_idct_add_sse2;
 | 
						|
diff --git a/libmpeg2/motion_comp.c b/libmpeg2/motion_comp.c
 | 
						|
index 7aed113..b00a32d 100644
 | 
						|
--- a/libmpeg2/motion_comp.c
 | 
						|
+++ b/libmpeg2/motion_comp.c
 | 
						|
@@ -33,7 +33,7 @@ mpeg2_mc_t mpeg2_mc;
 | 
						|
 
 | 
						|
 void mpeg2_mc_init (uint32_t accel)
 | 
						|
 {
 | 
						|
-#ifdef ARCH_X86
 | 
						|
+#if !defined(_MSC_VER) && defined(ARCH_X86)
 | 
						|
     if (accel & MPEG2_ACCEL_X86_MMXEXT)
 | 
						|
 	mpeg2_mc = mpeg2_mc_mmxext;
 | 
						|
     else if (accel & MPEG2_ACCEL_X86_3DNOW)
 | 
						|
diff --git a/libvo/video_out_dx.c b/libvo/video_out_dx.c
 | 
						|
index 36de68a..0797cdc 100644
 | 
						|
--- a/libvo/video_out_dx.c
 | 
						|
+++ b/libvo/video_out_dx.c
 | 
						|
@@ -82,7 +82,7 @@ static void update_overlay (dx_instance_t * instance)
 | 
						|
 				       dwFlags, &ddofx);
 | 
						|
 }
 | 
						|
 
 | 
						|
-static long FAR PASCAL event_procedure (HWND hwnd, UINT message,
 | 
						|
+static LRESULT FAR PASCAL event_procedure (HWND hwnd, UINT message,
 | 
						|
 					WPARAM wParam, LPARAM lParam)
 | 
						|
 {
 | 
						|
     RECT rect_window;
 | 
						|
@@ -92,7 +92,7 @@ static long FAR PASCAL event_procedure (HWND hwnd, UINT message,
 | 
						|
     switch (message) {
 | 
						|
 
 | 
						|
     case WM_WINDOWPOSCHANGED:
 | 
						|
-	instance = (dx_instance_t *) GetWindowLong (hwnd, GWL_USERDATA);
 | 
						|
+	instance = (dx_instance_t *) GetWindowLongPtr (hwnd, GWLP_USERDATA);
 | 
						|
 
 | 
						|
 	/* update the window position and size */
 | 
						|
 	point_window.x = 0;
 | 
						|
@@ -173,7 +173,7 @@ static int create_window (dx_instance_t * instance)
 | 
						|
     /* store a directx_instance pointer into the window local storage
 | 
						|
      * (for later use in event_handler).
 | 
						|
      * We need to use SetWindowLongPtr when it is available in mingw */
 | 
						|
-    SetWindowLong (instance->window, GWL_USERDATA, (LONG) instance);
 | 
						|
+    SetWindowLongPtr (instance->window, GWLP_USERDATA, (LONG_PTR) instance);
 | 
						|
 
 | 
						|
     ShowWindow (instance->window, SW_SHOW);
 | 
						|
 
 | 
						|
diff --git a/vc++/config.h b/vc++/config.h
 | 
						|
index 93719f0..a03cce6 100644
 | 
						|
--- a/vc++/config.h
 | 
						|
+++ b/vc++/config.h
 | 
						|
@@ -16,7 +16,9 @@
 | 
						|
 /* #undef ARCH_SPARC */
 | 
						|
 
 | 
						|
 /* x86 architecture */
 | 
						|
+#if defined(_M_AMD64) || defined(_M_IX86)
 | 
						|
 #define ARCH_X86
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 /* maximum supported data alignment */
 | 
						|
 /* #undef ATTRIBUTE_ALIGNED_MAX */
 | 
						|
-- 
 | 
						|
2.25.0
 | 
						|
 |