summaryrefslogtreecommitdiffstats
path: root/libmpeg2
diff options
context:
space:
mode:
authordiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-05-03 15:23:22 +0000
committerdiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-05-03 15:23:22 +0000
commitd8fccf4d46c3751f96191b454d982c182de3e18c (patch)
tree726a04ed2ee74f28e5b5e4fe9be24ba331fa0e4e /libmpeg2
parentb096da11bab0affd22b7e6d6b61783ec64f53306 (diff)
downloadmpv-d8fccf4d46c3751f96191b454d982c182de3e18c.tar.bz2
mpv-d8fccf4d46c3751f96191b454d982c182de3e18c.tar.xz
Only compile and use libmpeg2 AltiVec code when AltiVec is available. The
AltiVec code needs -maltivec to compile, but then AltiVec instructions appear in other places of the code causing MPlayer to sigill. Somehow upstream libmpeg2 manages not to sigill under what appear to be the same circumstances. Enlightenment welcome. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26657 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpeg2')
-rw-r--r--libmpeg2/idct.c6
-rw-r--r--libmpeg2/libmpeg-0.4.1.diff20
-rw-r--r--libmpeg2/motion_comp.c2
3 files changed, 26 insertions, 2 deletions
diff --git a/libmpeg2/idct.c b/libmpeg2/idct.c
index ef062cd2e7..80b84527da 100644
--- a/libmpeg2/idct.c
+++ b/libmpeg2/idct.c
@@ -19,6 +19,10 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
+ * detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
+ * $Id$
*/
#include "config.h"
@@ -250,7 +254,7 @@ void mpeg2_idct_init (uint32_t accel)
mpeg2_idct_mmx_init ();
} else
#endif
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
mpeg2_idct_copy = mpeg2_idct_copy_altivec;
mpeg2_idct_add = mpeg2_idct_add_altivec;
diff --git a/libmpeg2/libmpeg-0.4.1.diff b/libmpeg2/libmpeg-0.4.1.diff
index 103cc20d38..b54b28a952 100644
--- a/libmpeg2/libmpeg-0.4.1.diff
+++ b/libmpeg2/libmpeg-0.4.1.diff
@@ -175,6 +175,17 @@
for (j = 0; j < 64; j++)
decoder->quantizer_prescale[index][i][j] =
k * mpeg2dec->quantizer_matrix[index][j];
+--- libmpeg2/idct.c (revision 26652)
++++ libmpeg2/idct.c (working copy)
+@@ -250,7 +254,7 @@
+ mpeg2_idct_mmx_init ();
+ } else
+ #endif
+-#ifdef ARCH_PPC
++#ifdef HAVE_ALTIVEC
+ if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
+ mpeg2_idct_copy = mpeg2_idct_copy_altivec;
+ mpeg2_idct_add = mpeg2_idct_add_altivec;
--- libmpeg2/idct_mmx.c 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/idct_mmx.c 2006-06-16 20:12:50.000000000 +0200
@@ -23,7 +27,7 @@
@@ -188,6 +199,15 @@
--- libmpeg2/motion_comp.c 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/motion_comp.c 2006-06-16 20:12:50.000000000 +0200
+@@ -46,7 +46,7 @@
+ mpeg2_mc = mpeg2_mc_mmx;
+ else
+ #endif
+-#ifdef ARCH_PPC
++#ifdef HAVE_ALTIVEC
+ if (accel & MPEG2_ACCEL_PPC_ALTIVEC)
+ mpeg2_mc = mpeg2_mc_altivec;
+ else
@@ -67,6 +61,13 @@
mpeg2_mc = mpeg2_mc_vis;
else
diff --git a/libmpeg2/motion_comp.c b/libmpeg2/motion_comp.c
index 7099b2d957..a8232c9fa3 100644
--- a/libmpeg2/motion_comp.c
+++ b/libmpeg2/motion_comp.c
@@ -46,7 +46,7 @@ void mpeg2_mc_init (uint32_t accel)
mpeg2_mc = mpeg2_mc_mmx;
else
#endif
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
if (accel & MPEG2_ACCEL_PPC_ALTIVEC)
mpeg2_mc = mpeg2_mc_altivec;
else