if(idct_algo==FF_IDCT_AUTO || idct_algo==FF_IDCT_SIMPLEMMX){ s->idct_put= ff_simple_idct_put_mmx; s->idct_add= ff_simple_idct_add_mmx; for(i=0; i<64; i++) s->idct_permutation[i]= simple_mmx_permutation[i]; }else if(idct_algo==FF_IDCT_LIBMPEG2MMX){ if(mm_flags & MM_MMXEXT){ s->idct_put= ff_libmpeg2mmx2_idct_put; s->idct_add= ff_libmpeg2mmx2_idct_add; }else{ s->idct_put= ff_libmpeg2mmx_idct_put; s->idct_add= ff_libmpeg2mmx_idct_add; } for(i=0; i<64; i++) s->idct_permutation[i]= (i & 0x38) | ((i & 6) >> 1) | ((i & 1) << 2); }
void MPV_common_init_mmx(MpegEncContext *s){    if (mm_flags & MM_MMX) {        const int dct_algo= s->avctx->dct_algo;        s->dct_unquantize_h263 = dct_unquantize_h263_mmx;        s->dct_unquantize_mpeg1 = dct_unquantize_mpeg1_mmx;        s->dct_unquantize_mpeg2 = dct_unquantize_mpeg2_mmx;        draw_edges = draw_edges_mmx;        if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){            s->fdct = ff_fdct_mmx;            if(mm_flags & MM_MMXEXT){                s->dct_quantize= dct_quantize_MMX2;            } else {                s->dct_quantize= dct_quantize_MMX;            }        }    }}