147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
		
		
			
		
	
	
			147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
|   | 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 | ||
|  | 
 |