summaryrefslogtreecommitdiff
path: root/multimedia/ffmpeg/patches/patch-af
blob: 3346a971703f0ea4bd83bc4f03ec8ba50332a77c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
$NetBSD: patch-af,v 1.7 2010/03/14 23:07:30 tron Exp $

1.) Fixes pkg/42000, not necessary after the next upgrade.
2.) Really turn AMD 3DNow (and MMX, etc.) because the shared library
    will otherwise not work on Intel CPUs.

--- libswscale/swscale.c.orig	Thu Jun  4 23:55:52 2009
+++ libswscale/swscale.c	Sun Mar 14 23:53:08 2010
@@ -221,7 +221,7 @@
 write special BGR->BGR scaler
 */
 
-#if ARCH_X86 && CONFIG_GPL
+#if ARCH_X86 && CONFIG_GPL && !defined(sun)
 DECLARE_ASM_CONST(8, uint64_t, bF8)=       0xF8F8F8F8F8F8F8F8LL;
 DECLARE_ASM_CONST(8, uint64_t, bFC)=       0xFCFCFCFCFCFCFCFCLL;
 DECLARE_ASM_CONST(8, uint64_t, w10)=       0x0010001000100010LL;
@@ -1307,12 +1307,14 @@
 
 #if ARCH_PPC
 #if (HAVE_ALTIVEC || CONFIG_RUNTIME_CPUDETECT) && CONFIG_GPL
+#if !CONFIG_RUNTIME_CPUDETECT
 #undef COMPILE_C
+#endif
 #define COMPILE_ALTIVEC
 #endif
 #endif //ARCH_PPC
 
-#if ARCH_X86
+#if ARCH_X86 && !defined(sun)
 
 #if ((HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT) && CONFIG_GPL
 #define COMPILE_MMX
@@ -1349,7 +1351,7 @@
 #include "swscale_template.c"
 #endif
 
-#if ARCH_X86
+#if ARCH_X86 && !defined(sun)
 
 //MMX versions
 #ifdef COMPILE_MMX
@@ -1417,7 +1419,7 @@
     int64_t *filter2=NULL;
     const int64_t fone= 1LL<<54;
     int ret= -1;
-#if ARCH_X86
+#if ARCH_X86 && !defined(sun)
     if (flags & SWS_CPU_CAPS_MMX)
         __asm__ volatile("emms\n\t"::: "memory"); //FIXME this should not be required but it IS (even for non-MMX versions)
 #endif
@@ -1976,7 +1978,7 @@
 #if CONFIG_RUNTIME_CPUDETECT && CONFIG_GPL
     int flags = c->flags;
 
-#if ARCH_X86
+#if ARCH_X86 && !defined(sun)
     // ordered per speed fastest first
     if (flags & SWS_CPU_CAPS_MMX2) {
         sws_init_swScale_MMX2(c);
@@ -2561,7 +2563,7 @@
     int unscaled, needsDither;
     int srcRange, dstRange;
     SwsFilter dummyFilter= {NULL, NULL, NULL, NULL};
-#if ARCH_X86
+#if ARCH_X86 && !defined(sun)
     if (flags & SWS_CPU_CAPS_MMX)
         __asm__ volatile("emms\n\t"::: "memory");
 #endif
@@ -3046,7 +3048,7 @@
         }
         else
         {
-#if ARCH_X86
+#if ARCH_X86 && !defined(sun)
             av_log(c, AV_LOG_VERBOSE, "using x86 asm scaler for horizontal scaling\n");
 #else
             if (flags & SWS_FAST_BILINEAR)
@@ -3555,7 +3557,7 @@
     av_freep(&c->hLumFilterPos);
     av_freep(&c->hChrFilterPos);
 
-#if ARCH_X86 && CONFIG_GPL
+#if ARCH_X86 && CONFIG_GPL && !defined(sun)
 #ifdef MAP_ANONYMOUS
     if (c->funnyYCode ) munmap(c->funnyYCode , MAX_FUNNY_CODE_SIZE);
     if (c->funnyUVCode) munmap(c->funnyUVCode, MAX_FUNNY_CODE_SIZE);