diff dsputil.c @ 88:06f63b58d2a8 libavcodec

mlib merge
author glantau
date Sun, 16 Sep 2001 21:54:00 +0000
parents 4bfc845cdfea
children ac5075a55488
line wrap: on
line diff
--- a/dsputil.c	Sun Sep 16 21:52:58 2001 +0000
+++ b/dsputil.c	Sun Sep 16 21:54:00 2001 +0000
@@ -413,6 +413,7 @@
 void dsputil_init(void)
 {
     int i, j;
+    int use_permuted_idct;
 
     for(i=0;i<256;i++) cropTbl[i + MAX_NEG_CROP] = i;
     for(i=0;i<MAX_NEG_CROP;i++) {
@@ -435,17 +436,7 @@
     pix_abs16x16_xy2 = pix_abs16x16_xy2_c;
     av_fdct = jpeg_fdct_ifast;
 
-    /* permute for IDCT */
-    for(i=0;i<64;i++) {
-        j = zigzag_direct[i];
-        zigzag_direct[i] = block_permute_op(j);
-        j = ff_alternate_horizontal_scan[i];
-        ff_alternate_horizontal_scan[i] = block_permute_op(j);
-        j = ff_alternate_vertical_scan[i];
-        ff_alternate_vertical_scan[i] = block_permute_op(j);
-    }
-    block_permute(default_intra_matrix);
-    block_permute(default_non_intra_matrix);
+    use_permuted_idct = 1;
 
 #ifdef HAVE_MMX
     dsputil_init_mmx();
@@ -453,4 +444,22 @@
 #ifdef ARCH_ARMV4L
     dsputil_init_armv4l();
 #endif
+#ifdef HAVE_MLIB
+    dsputil_init_mlib();
+    use_permuted_idct = 0;
+#endif
+
+    if (use_permuted_idct) {
+        /* permute for IDCT */
+        for(i=0;i<64;i++) {
+            j = zigzag_direct[i];
+            zigzag_direct[i] = block_permute_op(j);
+            j = ff_alternate_horizontal_scan[i];
+            ff_alternate_horizontal_scan[i] = block_permute_op(j);
+            j = ff_alternate_vertical_scan[i];
+            ff_alternate_vertical_scan[i] = block_permute_op(j);
+        }
+        block_permute(default_intra_matrix);
+        block_permute(default_non_intra_matrix);
+    }
 }