mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-24 16:39:07 +08:00
305785ba9b
* [libmpeg2] Add new port Libmpeg2 seems to be a somewhat old project, last release was done in 2008, but it is still in use by some projects e.g. ResidualVM I have verified the mpeg2dec built for x86-64 with MSVC produces similar results as the one pre-packaged on my Arch. * [libmpeg2] Apply review comments * [libmpeg2] Add ci.baseline.txt exemptions
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
|
|
|