]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
make sh4 IDCT optional, so the user can choose
authormichaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 14 May 2003 12:32:17 +0000 (12:32 +0000)
committermichaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 14 May 2003 12:32:17 +0000 (12:32 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@1878 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/avcodec.h
libavcodec/sh4/dsputil_sh4.c

index 63511421ebb5ee11ae83a0e22aa5c24e9274a6cf..1393275da814948b0fc59fb0dc8c9a558765467c 100644 (file)
@@ -844,6 +844,7 @@ typedef struct AVCodecContext {
 #define FF_IDCT_MLIB         6
 #define FF_IDCT_ARM          7
 #define FF_IDCT_ALTIVEC      8
+#define FF_IDCT_SH4          9
 
     /**
      * slice count.
index 6cf5e72eaff871dcbccabff062ab9b45d4850838..8ba5c64d27a9a370e62e56b0375e668a58be2c18 100644 (file)
@@ -105,10 +105,13 @@ extern void dsputil_init_align(DSPContext* c, AVCodecContext *avctx);
 
 void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx)
 {
+       const int idct_algo= avctx->idct_algo;
        dsputil_init_align(c,avctx);
 
        c->clear_blocks = clear_blocks_sh4;
-       c->idct_put = idct_put;
-       c->idct_add = idct_add;
-       c->idct_permutation_type= FF_NO_IDCT_PERM; //FF_SIMPLE_IDCT_PERM; //FF_LIBMPEG2_IDCT_PERM;
+       if(idct_algo==FF_IDCT_AUTO || idct_algo==FF_IDCT_SH4){        
+               c->idct_put = idct_put;
+               c->idct_add = idct_add;
+               c->idct_permutation_type= FF_NO_IDCT_PERM; //FF_SIMPLE_IDCT_PERM; //FF_LIBMPEG2_IDCT_PERM;
+       }
 }