summaryrefslogtreecommitdiff
path: root/libavcodec/dsputil.c
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2001-09-16 21:54:00 +0000
committerFabrice Bellard <fabrice@bellard.org>2001-09-16 21:54:00 +0000
commitc34270f5e89fd95b933c483d602f2f298557d04b (patch)
treef9853abd51f2b0aabe28048b0e213d20580a6b39 /libavcodec/dsputil.c
parent8d67072fea31e3b97e0a527e2a94e418745ba02a (diff)
mlib merge
Originally committed as revision 131 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/dsputil.c')
-rw-r--r--libavcodec/dsputil.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index abbca19daa..b0cea56bda 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -413,6 +413,7 @@ void block_permute(INT16 *block)
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 @@ void dsputil_init(void)
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 @@ void dsputil_init(void)
#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);
+ }
}