void dsputil_init(DSPContext* c, AVCodecContext *avctx)
{
    int i;
    ff_check_alignment();
#ifdef CONFIG_ENCODERS
    if(avctx->dct_algo==FF_DCT_FASTINT) {
        c->fdct = fdct_ifast;
        c->fdct248 = fdct_ifast248;
    }
    else if(avctx->dct_algo==FF_DCT_FAAN) {
        c->fdct = ff_faandct;
        c->fdct248 = ff_faandct248;
    }
    else {
        c->fdct = ff_jpeg_fdct_islow;
        c->fdct248 = ff_fdct248_islow;
    }
#endif
    if(avctx->lowres==1){
        if(avctx->idct_algo==FF_IDCT_INT || avctx->idct_algo==FF_IDCT_AUTO || !ENABLE_H264_DECODER){
            c->idct_put= ff_jref_idct4_put;
            c->idct_add= ff_jref_idct4_add;
        }else{
            c->idct_put= ff_h264_lowres_idct_put_c;
            c->idct_add= ff_h264_lowres_idct_add_c;
        }
        c->idct    = j_rev_dct4;
        c->idct_permutation_type= FF_NO_IDCT_PERM;
    }else if(avctx->lowres==2){
        c->idct_put= ff_jref_idct2_put;
        c->idct_add= ff_jref_idct2_add;
        c->idct    = j_rev_dct2;
        c->idct_permutation_type= FF_NO_IDCT_PERM;
    }else if(avctx->lowres==3){
        c->idct_put= ff_jref_idct1_put;
        c->idct_add= ff_jref_idct1_add;
        c->idct    = j_rev_dct1;
        c->idct_permutation_type= FF_NO_IDCT_PERM;
    }else{
        if(avctx->idct_algo==FF_IDCT_INT){
            c->idct_put= ff_jref_idct_put;
            c->idct_add= ff_jref_idct_add;
            c->idct    = j_rev_dct;
            c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
        }else if((ENABLE_VP3_DECODER || ENABLE_VP5_DECODER || ENABLE_VP6_DECODER || ENABLE_THEORA_DECODER ) &&
                avctx->idct_algo==FF_IDCT_VP3){
            c->idct_put= ff_vp3_idct_put_c;
            c->idct_add= ff_vp3_idct_add_c;
            c->idct    = ff_vp3_idct_c;
            c->idct_permutation_type= FF_NO_IDCT_PERM;
        }else if(avctx->idct_algo==FF_IDCT_WMV2){
            c->idct_put= ff_wmv2_idct_put_c;
            c->idct_add= ff_wmv2_idct_add_c;
            c->idct    = ff_wmv2_idct_c;
            c->idct_permutation_type= FF_NO_IDCT_PERM;
        }else if(avctx->idct_algo==FF_IDCT_FAAN){
            c->idct_put= ff_faanidct_put;
            c->idct_add= ff_faanidct_add;
            c->idct    = ff_faanidct;
            c->idct_permutation_type= FF_NO_IDCT_PERM;
        }else{
            c->idct_put= ff_simple_idct_put;
            c->idct_add= ff_simple_idct_add;
            c->idct    = ff_simple_idct;
            c->idct_permutation_type= FF_NO_IDCT_PERM;
        }
    }
    if (ENABLE_H264_DECODER) {
        c->h264_idct_add= ff_h264_idct_add_c;
        c->h264_idct8_add= ff_h264_idct8_add_c;
        c->h264_idct_dc_add= ff_h264_idct_dc_add_c;
        c->h264_idct8_dc_add= ff_h264_idct8_dc_add_c;
    }
    c->get_pixels = get_pixels_c;
    c->diff_pixels = diff_pixels_c;
    c->put_pixels_clamped = put_pixels_clamped_c;
    c->put_signed_pixels_clamped = put_signed_pixels_clamped_c;
    c->add_pixels_clamped = add_pixels_clamped_c;
    c->add_pixels8 = add_pixels8_c;
    c->add_pixels4 = add_pixels4_c;
    c->sum_abs_dctelem = sum_abs_dctelem_c;
    c->gmc1 = gmc1_c;
    c->gmc = ff_gmc_c;
    c->clear_blocks = clear_blocks_c;
    c->pix_sum = pix_sum_c;
    c->pix_norm1 = pix_norm1_c;
    c->pix_abs[0][0] = pix_abs16_c;
    c->pix_abs[0][1] = pix_abs16_x2_c;
    c->pix_abs[0][2] = pix_abs16_y2_c;
    c->pix_abs[0][3] = pix_abs16_xy2_c;
    c->pix_abs[1][0] = pix_abs8_c;
    c->pix_abs[1][1] = pix_abs8_x2_c;
    c->pix_abs[1][2] = pix_abs8_y2_c;
    c->pix_abs[1][3] = pix_abs8_xy2_c;
#define dspfunc(PFX, IDX, NUM) \
    c->PFX ## _pixels_tab[IDX][0] = PFX ## _pixels ## NUM ## _c;     \
    c->PFX ## _pixels_tab[IDX][1] = PFX ## _pixels ## NUM ## _x2_c;  \
    c->PFX ## _pixels_tab[IDX][2] = PFX ## _pixels ## NUM ## _y2_c;  \
    c->PFX ## _pixels_tab[IDX][3] = PFX ## _pixels ## NUM ## _xy2_c
    dspfunc(put, 0, 16);
    dspfunc(put_no_rnd, 0, 16);
    dspfunc(put, 1, 8);
    dspfunc(put_no_rnd, 1, 8);
    dspfunc(put, 2, 4);
    dspfunc(put, 3, 2);
    dspfunc(avg, 0, 16);
    dspfunc(avg_no_rnd, 0, 16);
    dspfunc(avg, 1, 8);
    dspfunc(avg_no_rnd, 1, 8);
    dspfunc(avg, 2, 4);
    dspfunc(avg, 3, 2);
#undef dspfunc
    c->put_no_rnd_pixels_l2[0]= put_no_rnd_pixels16_l2_c;
    c->put_no_rnd_pixels_l2[1]= put_no_rnd_pixels8_l2_c;
    c->put_tpel_pixels_tab[ 0] = put_tpel_pixels_mc00_c;
    c->put_tpel_pixels_tab[ 1] = put_tpel_pixels_mc10_c;
    c->put_tpel_pixels_tab[ 2] = put_tpel_pixels_mc20_c;
    c->put_tpel_pixels_tab[ 4] = put_tpel_pixels_mc01_c;
    c->put_tpel_pixels_tab[ 5] = put_tpel_pixels_mc11_c;
    c->put_tpel_pixels_tab[ 6] = put_tpel_pixels_mc21_c;
    c->put_tpel_pixels_tab[ 8] = put_tpel_pixels_mc02_c;
    c->put_tpel_pixels_tab[ 9] = put_tpel_pixels_mc12_c;
    c->put_tpel_pixels_tab[10] = put_tpel_pixels_mc22_c;
    c->avg_tpel_pixels_tab[ 0] = avg_tpel_pixels_mc00_c;
    c->avg_tpel_pixels_tab[ 1] = avg_tpel_pixels_mc10_c;
    c->avg_tpel_pixels_tab[ 2] = avg_tpel_pixels_mc20_c;
    c->avg_tpel_pixels_tab[ 4] = avg_tpel_pixels_mc01_c;
    c->avg_tpel_pixels_tab[ 5] = avg_tpel_pixels_mc11_c;
    c->avg_tpel_pixels_tab[ 6] = avg_tpel_pixels_mc21_c;
    c->avg_tpel_pixels_tab[ 8] = avg_tpel_pixels_mc02_c;
    c->avg_tpel_pixels_tab[ 9] = avg_tpel_pixels_mc12_c;
    c->avg_tpel_pixels_tab[10] = avg_tpel_pixels_mc22_c;
#define dspfunc(PFX, IDX, NUM) \
    c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_c; \
    c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_c; \
    c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_c; \
    c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_c; \
    c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_c; \
    c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_c; \
    c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_c; \
    c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_c; \
    c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_c; \
    c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_c; \
    c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_c; \
    c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_c; \
    c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_c; \
    c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_c; \
    c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_c; \
    c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_c
    dspfunc(put_qpel, 0, 16);
    dspfunc(put_no_rnd_qpel, 0, 16);
    dspfunc(avg_qpel, 0, 16);
    dspfunc(put_qpel, 1, 8);
    dspfunc(put_no_rnd_qpel, 1, 8);
    dspfunc(avg_qpel, 1, 8);
    dspfunc(put_h264_qpel, 0, 16);
    dspfunc(put_h264_qpel, 1, 8);
    dspfunc(put_h264_qpel, 2, 4);
    dspfunc(put_h264_qpel, 3, 2);
    dspfunc(avg_h264_qpel, 0, 16);
    dspfunc(avg_h264_qpel, 1, 8);
    dspfunc(avg_h264_qpel, 2, 4);
#undef dspfunc
    c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_c;
    c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_c;
    c->put_h264_chroma_pixels_tab[2]= put_h264_chroma_mc2_c;
    c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_c;
    c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_c;
    c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_c;
    c->put_no_rnd_h264_chroma_pixels_tab[0]= put_no_rnd_h264_chroma_mc8_c;
    c->weight_h264_pixels_tab[0]= weight_h264_pixels16x16_c;
    c->weight_h264_pixels_tab[1]= weight_h264_pixels16x8_c;
    c->weight_h264_pixels_tab[2]= weight_h264_pixels8x16_c;
    c->weight_h264_pixels_tab[3]= weight_h264_pixels8x8_c;
    c->weight_h264_pixels_tab[4]= weight_h264_pixels8x4_c;
    c->weight_h264_pixels_tab[5]= weight_h264_pixels4x8_c;
    c->weight_h264_pixels_tab[6]= weight_h264_pixels4x4_c;
    c->weight_h264_pixels_tab[7]= weight_h264_pixels4x2_c;
    c->weight_h264_pixels_tab[8]= weight_h264_pixels2x4_c;
    c->weight_h264_pixels_tab[9]= weight_h264_pixels2x2_c;
    c->biweight_h264_pixels_tab[0]= biweight_h264_pixels16x16_c;
    c->biweight_h264_pixels_tab[1]= biweight_h264_pixels16x8_c;
    c->biweight_h264_pixels_tab[2]= biweight_h264_pixels8x16_c;
    c->biweight_h264_pixels_tab[3]= biweight_h264_pixels8x8_c;
    c->biweight_h264_pixels_tab[4]= biweight_h264_pixels8x4_c;
    c->biweight_h264_pixels_tab[5]= biweight_h264_pixels4x8_c;
    c->biweight_h264_pixels_tab[6]= biweight_h264_pixels4x4_c;
    c->biweight_h264_pixels_tab[7]= biweight_h264_pixels4x2_c;
    c->biweight_h264_pixels_tab[8]= biweight_h264_pixels2x4_c;
    c->biweight_h264_pixels_tab[9]= biweight_h264_pixels2x2_c;
    c->draw_edges = draw_edges_c;
#ifdef CONFIG_CAVS_DECODER
    ff_cavsdsp_init(c,avctx);
#endif
#if defined(CONFIG_VC1_DECODER) || defined(CONFIG_WMV3_DECODER)
    ff_vc1dsp_init(c,avctx);
#endif
#if defined(CONFIG_WMV2_DECODER) || defined(CONFIG_VC1_DECODER) || defined(CONFIG_WMV3_DECODER)
    ff_intrax8dsp_init(c,avctx);
#endif
#if defined(CONFIG_H264_ENCODER)
    ff_h264dspenc_init(c,avctx);
#endif
    c->put_mspel_pixels_tab[0]= put_mspel8_mc00_c;
    c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c;
    c->put_mspel_pixels_tab[2]= put_mspel8_mc20_c;
    c->put_mspel_pixels_tab[3]= put_mspel8_mc30_c;
    c->put_mspel_pixels_tab[4]= put_mspel8_mc02_c;
    c->put_mspel_pixels_tab[5]= put_mspel8_mc12_c;
    c->put_mspel_pixels_tab[6]= put_mspel8_mc22_c;
    c->put_mspel_pixels_tab[7]= put_mspel8_mc32_c;
#define SET_CMP_FUNC(name) \
    c->name[0]= name ## 16_c;\
    c->name[1]= name ## 8x8_c;
    SET_CMP_FUNC(hadamard8_diff)
    c->hadamard8_diff[4]= hadamard8_intra16_c;
    SET_CMP_FUNC(dct_sad)
    SET_CMP_FUNC(dct_max)
#ifdef CONFIG_GPL
    SET_CMP_FUNC(dct264_sad)
#endif
    c->sad[0]= pix_abs16_c;
    c->sad[1]= pix_abs8_c;
    c->sse[0]= sse16_c;
    c->sse[1]= sse8_c;
    c->sse[2]= sse4_c;
    SET_CMP_FUNC(quant_psnr)
    SET_CMP_FUNC(rd)
    SET_CMP_FUNC(bit)
    c->vsad[0]= vsad16_c;
    c->vsad[4]= vsad_intra16_c;
    c->vsse[0]= vsse16_c;
    c->vsse[4]= vsse_intra16_c;
    c->nsse[0]= nsse16_c;
    c->nsse[1]= nsse8_c;
#ifdef CONFIG_SNOW_ENCODER
    c->w53[0]= w53_16_c;
    c->w53[1]= w53_8_c;
    c->w97[0]= w97_16_c;
    c->w97[1]= w97_8_c;
#endif
    c->ssd_int8_vs_int16 = ssd_int8_vs_int16_c;
    c->add_bytes= add_bytes_c;
    c->add_bytes_l2= add_bytes_l2_c;
    c->diff_bytes= diff_bytes_c;
    c->sub_hfyu_median_prediction= sub_hfyu_median_prediction_c;
    c->bswap_buf= bswap_buf;
#ifdef CONFIG_PNG_DECODER
    c->add_png_paeth_prediction= ff_add_png_paeth_prediction;
#endif
    c->h264_v_loop_filter_luma= h264_v_loop_filter_luma_c;
    c->h264_h_loop_filter_luma= h264_h_loop_filter_luma_c;
    c->h264_v_loop_filter_chroma= h264_v_loop_filter_chroma_c;
    c->h264_h_loop_filter_chroma= h264_h_loop_filter_chroma_c;
    c->h264_v_loop_filter_chroma_intra= h264_v_loop_filter_chroma_intra_c;
    c->h264_h_loop_filter_chroma_intra= h264_h_loop_filter_chroma_intra_c;
    c->h264_loop_filter_strength= NULL;
    if (ENABLE_ANY_H263) {
        c->h263_h_loop_filter= h263_h_loop_filter_c;
        c->h263_v_loop_filter= h263_v_loop_filter_c;
    }
    c->h261_loop_filter= h261_loop_filter_c;
    c->try_8x8basis= try_8x8basis_c;
    c->add_8x8basis= add_8x8basis_c;
#ifdef CONFIG_SNOW_DECODER
    c->vertical_compose97i = ff_snow_vertical_compose97i;
    c->horizontal_compose97i = ff_snow_horizontal_compose97i;
    c->inner_add_yblock = ff_snow_inner_add_yblock;
#endif
#ifdef CONFIG_VORBIS_DECODER
    c->vorbis_inverse_coupling = vorbis_inverse_coupling;
#endif
#ifdef CONFIG_FLAC_ENCODER
    c->flac_compute_autocorr = ff_flac_compute_autocorr;
#endif
    c->vector_fmul = vector_fmul_c;
    c->vector_fmul_reverse = vector_fmul_reverse_c;
    c->vector_fmul_add_add = ff_vector_fmul_add_add_c;
    c->float_to_int16 = ff_float_to_int16_c;
    c->shrink[0]= ff_img_copy_plane;
    c->shrink[1]= ff_shrink22;
    c->shrink[2]= ff_shrink44;
    c->shrink[3]= ff_shrink88;
    c->prefetch= just_return;
    memset(c->put_2tap_qpel_pixels_tab, 0, sizeof(c->put_2tap_qpel_pixels_tab));
    memset(c->avg_2tap_qpel_pixels_tab, 0, sizeof(c->avg_2tap_qpel_pixels_tab));
    if (ENABLE_MMX)      dsputil_init_mmx   (c, avctx);
    if (ENABLE_ARMV4L)   dsputil_init_armv4l(c, avctx);
    if (ENABLE_MLIB)     dsputil_init_mlib  (c, avctx);
    if (ENABLE_VIS)      dsputil_init_vis   (c, avctx);
    if (ENABLE_ALPHA)    dsputil_init_alpha (c, avctx);
    if (ENABLE_POWERPC)  dsputil_init_ppc   (c, avctx);
    if (ENABLE_MMI)      dsputil_init_mmi   (c, avctx);
    if (ENABLE_SH4)      dsputil_init_sh4   (c, avctx);
    if (ENABLE_BFIN)     dsputil_init_bfin  (c, avctx);
    for(i=0; i<64; i++){
        if(!c->put_2tap_qpel_pixels_tab[0][i])
            c->put_2tap_qpel_pixels_tab[0][i]= c->put_h264_qpel_pixels_tab[0][i];
        if(!c->avg_2tap_qpel_pixels_tab[0][i])
            c->avg_2tap_qpel_pixels_tab[0][i]= c->avg_h264_qpel_pixels_tab[0][i];
    }
    switch(c->idct_permutation_type){
    case FF_NO_IDCT_PERM:
        for(i=0; i<64; i++)
            c->idct_permutation[i]= i;
        break;
    case FF_LIBMPEG2_IDCT_PERM:
        for(i=0; i<64; i++)
            c->idct_permutation[i]= (i & 0x38) | ((i & 6) >> 1) | ((i & 1) << 2);
        break;
    case FF_SIMPLE_IDCT_PERM:
        for(i=0; i<64; i++)
            c->idct_permutation[i]= simple_mmx_permutation[i];
        break;
    case FF_TRANSPOSE_IDCT_PERM:
        for(i=0; i<64; i++)
            c->idct_permutation[i]= ((i&7)<<3) | (i>>3);
        break;
    case FF_PARTTRANS_IDCT_PERM:
        for(i=0; i<64; i++)
            c->idct_permutation[i]= (i&0x24) | ((i&3)<<3) | ((i>>3)&3);
        break;
    default:
        av_log(avctx, AV_LOG_ERROR, "Internal error, IDCT permutation not set\n");
    }
}
['void dsputil_init(DSPContext* c, AVCodecContext *avctx)\n{\n    int i;\n    ff_check_alignment();\n#ifdef CONFIG_ENCODERS\n    if(avctx->dct_algo==FF_DCT_FASTINT) {\n        c->fdct = fdct_ifast;\n        c->fdct248 = fdct_ifast248;\n    }\n    else if(avctx->dct_algo==FF_DCT_FAAN) {\n        c->fdct = ff_faandct;\n        c->fdct248 = ff_faandct248;\n    }\n    else {\n        c->fdct = ff_jpeg_fdct_islow;\n        c->fdct248 = ff_fdct248_islow;\n    }\n#endif\n    if(avctx->lowres==1){\n        if(avctx->idct_algo==FF_IDCT_INT || avctx->idct_algo==FF_IDCT_AUTO || !ENABLE_H264_DECODER){\n            c->idct_put= ff_jref_idct4_put;\n            c->idct_add= ff_jref_idct4_add;\n        }else{\n            c->idct_put= ff_h264_lowres_idct_put_c;\n            c->idct_add= ff_h264_lowres_idct_add_c;\n        }\n        c->idct    = j_rev_dct4;\n        c->idct_permutation_type= FF_NO_IDCT_PERM;\n    }else if(avctx->lowres==2){\n        c->idct_put= ff_jref_idct2_put;\n        c->idct_add= ff_jref_idct2_add;\n        c->idct    = j_rev_dct2;\n        c->idct_permutation_type= FF_NO_IDCT_PERM;\n    }else if(avctx->lowres==3){\n        c->idct_put= ff_jref_idct1_put;\n        c->idct_add= ff_jref_idct1_add;\n        c->idct    = j_rev_dct1;\n        c->idct_permutation_type= FF_NO_IDCT_PERM;\n    }else{\n        if(avctx->idct_algo==FF_IDCT_INT){\n            c->idct_put= ff_jref_idct_put;\n            c->idct_add= ff_jref_idct_add;\n            c->idct    = j_rev_dct;\n            c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;\n        }else if((ENABLE_VP3_DECODER || ENABLE_VP5_DECODER || ENABLE_VP6_DECODER || ENABLE_THEORA_DECODER ) &&\n                avctx->idct_algo==FF_IDCT_VP3){\n            c->idct_put= ff_vp3_idct_put_c;\n            c->idct_add= ff_vp3_idct_add_c;\n            c->idct    = ff_vp3_idct_c;\n            c->idct_permutation_type= FF_NO_IDCT_PERM;\n        }else if(avctx->idct_algo==FF_IDCT_WMV2){\n            c->idct_put= ff_wmv2_idct_put_c;\n            c->idct_add= ff_wmv2_idct_add_c;\n            c->idct    = ff_wmv2_idct_c;\n            c->idct_permutation_type= FF_NO_IDCT_PERM;\n        }else if(avctx->idct_algo==FF_IDCT_FAAN){\n            c->idct_put= ff_faanidct_put;\n            c->idct_add= ff_faanidct_add;\n            c->idct    = ff_faanidct;\n            c->idct_permutation_type= FF_NO_IDCT_PERM;\n        }else{\n            c->idct_put= ff_simple_idct_put;\n            c->idct_add= ff_simple_idct_add;\n            c->idct    = ff_simple_idct;\n            c->idct_permutation_type= FF_NO_IDCT_PERM;\n        }\n    }\n    if (ENABLE_H264_DECODER) {\n        c->h264_idct_add= ff_h264_idct_add_c;\n        c->h264_idct8_add= ff_h264_idct8_add_c;\n        c->h264_idct_dc_add= ff_h264_idct_dc_add_c;\n        c->h264_idct8_dc_add= ff_h264_idct8_dc_add_c;\n    }\n    c->get_pixels = get_pixels_c;\n    c->diff_pixels = diff_pixels_c;\n    c->put_pixels_clamped = put_pixels_clamped_c;\n    c->put_signed_pixels_clamped = put_signed_pixels_clamped_c;\n    c->add_pixels_clamped = add_pixels_clamped_c;\n    c->add_pixels8 = add_pixels8_c;\n    c->add_pixels4 = add_pixels4_c;\n    c->sum_abs_dctelem = sum_abs_dctelem_c;\n    c->gmc1 = gmc1_c;\n    c->gmc = ff_gmc_c;\n    c->clear_blocks = clear_blocks_c;\n    c->pix_sum = pix_sum_c;\n    c->pix_norm1 = pix_norm1_c;\n    c->pix_abs[0][0] = pix_abs16_c;\n    c->pix_abs[0][1] = pix_abs16_x2_c;\n    c->pix_abs[0][2] = pix_abs16_y2_c;\n    c->pix_abs[0][3] = pix_abs16_xy2_c;\n    c->pix_abs[1][0] = pix_abs8_c;\n    c->pix_abs[1][1] = pix_abs8_x2_c;\n    c->pix_abs[1][2] = pix_abs8_y2_c;\n    c->pix_abs[1][3] = pix_abs8_xy2_c;\n#define dspfunc(PFX, IDX, NUM) \\\n    c->PFX ## _pixels_tab[IDX][0] = PFX ## _pixels ## NUM ## _c;     \\\n    c->PFX ## _pixels_tab[IDX][1] = PFX ## _pixels ## NUM ## _x2_c;  \\\n    c->PFX ## _pixels_tab[IDX][2] = PFX ## _pixels ## NUM ## _y2_c;  \\\n    c->PFX ## _pixels_tab[IDX][3] = PFX ## _pixels ## NUM ## _xy2_c\n    dspfunc(put, 0, 16);\n    dspfunc(put_no_rnd, 0, 16);\n    dspfunc(put, 1, 8);\n    dspfunc(put_no_rnd, 1, 8);\n    dspfunc(put, 2, 4);\n    dspfunc(put, 3, 2);\n    dspfunc(avg, 0, 16);\n    dspfunc(avg_no_rnd, 0, 16);\n    dspfunc(avg, 1, 8);\n    dspfunc(avg_no_rnd, 1, 8);\n    dspfunc(avg, 2, 4);\n    dspfunc(avg, 3, 2);\n#undef dspfunc\n    c->put_no_rnd_pixels_l2[0]= put_no_rnd_pixels16_l2_c;\n    c->put_no_rnd_pixels_l2[1]= put_no_rnd_pixels8_l2_c;\n    c->put_tpel_pixels_tab[ 0] = put_tpel_pixels_mc00_c;\n    c->put_tpel_pixels_tab[ 1] = put_tpel_pixels_mc10_c;\n    c->put_tpel_pixels_tab[ 2] = put_tpel_pixels_mc20_c;\n    c->put_tpel_pixels_tab[ 4] = put_tpel_pixels_mc01_c;\n    c->put_tpel_pixels_tab[ 5] = put_tpel_pixels_mc11_c;\n    c->put_tpel_pixels_tab[ 6] = put_tpel_pixels_mc21_c;\n    c->put_tpel_pixels_tab[ 8] = put_tpel_pixels_mc02_c;\n    c->put_tpel_pixels_tab[ 9] = put_tpel_pixels_mc12_c;\n    c->put_tpel_pixels_tab[10] = put_tpel_pixels_mc22_c;\n    c->avg_tpel_pixels_tab[ 0] = avg_tpel_pixels_mc00_c;\n    c->avg_tpel_pixels_tab[ 1] = avg_tpel_pixels_mc10_c;\n    c->avg_tpel_pixels_tab[ 2] = avg_tpel_pixels_mc20_c;\n    c->avg_tpel_pixels_tab[ 4] = avg_tpel_pixels_mc01_c;\n    c->avg_tpel_pixels_tab[ 5] = avg_tpel_pixels_mc11_c;\n    c->avg_tpel_pixels_tab[ 6] = avg_tpel_pixels_mc21_c;\n    c->avg_tpel_pixels_tab[ 8] = avg_tpel_pixels_mc02_c;\n    c->avg_tpel_pixels_tab[ 9] = avg_tpel_pixels_mc12_c;\n    c->avg_tpel_pixels_tab[10] = avg_tpel_pixels_mc22_c;\n#define dspfunc(PFX, IDX, NUM) \\\n    c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_c; \\\n    c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_c; \\\n    c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_c; \\\n    c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_c; \\\n    c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_c; \\\n    c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_c; \\\n    c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_c; \\\n    c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_c; \\\n    c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_c; \\\n    c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_c; \\\n    c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_c; \\\n    c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_c; \\\n    c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_c; \\\n    c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_c; \\\n    c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_c; \\\n    c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_c\n    dspfunc(put_qpel, 0, 16);\n    dspfunc(put_no_rnd_qpel, 0, 16);\n    dspfunc(avg_qpel, 0, 16);\n    dspfunc(put_qpel, 1, 8);\n    dspfunc(put_no_rnd_qpel, 1, 8);\n    dspfunc(avg_qpel, 1, 8);\n    dspfunc(put_h264_qpel, 0, 16);\n    dspfunc(put_h264_qpel, 1, 8);\n    dspfunc(put_h264_qpel, 2, 4);\n    dspfunc(put_h264_qpel, 3, 2);\n    dspfunc(avg_h264_qpel, 0, 16);\n    dspfunc(avg_h264_qpel, 1, 8);\n    dspfunc(avg_h264_qpel, 2, 4);\n#undef dspfunc\n    c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_c;\n    c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_c;\n    c->put_h264_chroma_pixels_tab[2]= put_h264_chroma_mc2_c;\n    c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_c;\n    c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_c;\n    c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_c;\n    c->put_no_rnd_h264_chroma_pixels_tab[0]= put_no_rnd_h264_chroma_mc8_c;\n    c->weight_h264_pixels_tab[0]= weight_h264_pixels16x16_c;\n    c->weight_h264_pixels_tab[1]= weight_h264_pixels16x8_c;\n    c->weight_h264_pixels_tab[2]= weight_h264_pixels8x16_c;\n    c->weight_h264_pixels_tab[3]= weight_h264_pixels8x8_c;\n    c->weight_h264_pixels_tab[4]= weight_h264_pixels8x4_c;\n    c->weight_h264_pixels_tab[5]= weight_h264_pixels4x8_c;\n    c->weight_h264_pixels_tab[6]= weight_h264_pixels4x4_c;\n    c->weight_h264_pixels_tab[7]= weight_h264_pixels4x2_c;\n    c->weight_h264_pixels_tab[8]= weight_h264_pixels2x4_c;\n    c->weight_h264_pixels_tab[9]= weight_h264_pixels2x2_c;\n    c->biweight_h264_pixels_tab[0]= biweight_h264_pixels16x16_c;\n    c->biweight_h264_pixels_tab[1]= biweight_h264_pixels16x8_c;\n    c->biweight_h264_pixels_tab[2]= biweight_h264_pixels8x16_c;\n    c->biweight_h264_pixels_tab[3]= biweight_h264_pixels8x8_c;\n    c->biweight_h264_pixels_tab[4]= biweight_h264_pixels8x4_c;\n    c->biweight_h264_pixels_tab[5]= biweight_h264_pixels4x8_c;\n    c->biweight_h264_pixels_tab[6]= biweight_h264_pixels4x4_c;\n    c->biweight_h264_pixels_tab[7]= biweight_h264_pixels4x2_c;\n    c->biweight_h264_pixels_tab[8]= biweight_h264_pixels2x4_c;\n    c->biweight_h264_pixels_tab[9]= biweight_h264_pixels2x2_c;\n    c->draw_edges = draw_edges_c;\n#ifdef CONFIG_CAVS_DECODER\n    ff_cavsdsp_init(c,avctx);\n#endif\n#if defined(CONFIG_VC1_DECODER) || defined(CONFIG_WMV3_DECODER)\n    ff_vc1dsp_init(c,avctx);\n#endif\n#if defined(CONFIG_WMV2_DECODER) || defined(CONFIG_VC1_DECODER) || defined(CONFIG_WMV3_DECODER)\n    ff_intrax8dsp_init(c,avctx);\n#endif\n#if defined(CONFIG_H264_ENCODER)\n    ff_h264dspenc_init(c,avctx);\n#endif\n    c->put_mspel_pixels_tab[0]= put_mspel8_mc00_c;\n    c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c;\n    c->put_mspel_pixels_tab[2]= put_mspel8_mc20_c;\n    c->put_mspel_pixels_tab[3]= put_mspel8_mc30_c;\n    c->put_mspel_pixels_tab[4]= put_mspel8_mc02_c;\n    c->put_mspel_pixels_tab[5]= put_mspel8_mc12_c;\n    c->put_mspel_pixels_tab[6]= put_mspel8_mc22_c;\n    c->put_mspel_pixels_tab[7]= put_mspel8_mc32_c;\n#define SET_CMP_FUNC(name) \\\n    c->name[0]= name ## 16_c;\\\n    c->name[1]= name ## 8x8_c;\n    SET_CMP_FUNC(hadamard8_diff)\n    c->hadamard8_diff[4]= hadamard8_intra16_c;\n    SET_CMP_FUNC(dct_sad)\n    SET_CMP_FUNC(dct_max)\n#ifdef CONFIG_GPL\n    SET_CMP_FUNC(dct264_sad)\n#endif\n    c->sad[0]= pix_abs16_c;\n    c->sad[1]= pix_abs8_c;\n    c->sse[0]= sse16_c;\n    c->sse[1]= sse8_c;\n    c->sse[2]= sse4_c;\n    SET_CMP_FUNC(quant_psnr)\n    SET_CMP_FUNC(rd)\n    SET_CMP_FUNC(bit)\n    c->vsad[0]= vsad16_c;\n    c->vsad[4]= vsad_intra16_c;\n    c->vsse[0]= vsse16_c;\n    c->vsse[4]= vsse_intra16_c;\n    c->nsse[0]= nsse16_c;\n    c->nsse[1]= nsse8_c;\n#ifdef CONFIG_SNOW_ENCODER\n    c->w53[0]= w53_16_c;\n    c->w53[1]= w53_8_c;\n    c->w97[0]= w97_16_c;\n    c->w97[1]= w97_8_c;\n#endif\n    c->ssd_int8_vs_int16 = ssd_int8_vs_int16_c;\n    c->add_bytes= add_bytes_c;\n    c->add_bytes_l2= add_bytes_l2_c;\n    c->diff_bytes= diff_bytes_c;\n    c->sub_hfyu_median_prediction= sub_hfyu_median_prediction_c;\n    c->bswap_buf= bswap_buf;\n#ifdef CONFIG_PNG_DECODER\n    c->add_png_paeth_prediction= ff_add_png_paeth_prediction;\n#endif\n    c->h264_v_loop_filter_luma= h264_v_loop_filter_luma_c;\n    c->h264_h_loop_filter_luma= h264_h_loop_filter_luma_c;\n    c->h264_v_loop_filter_chroma= h264_v_loop_filter_chroma_c;\n    c->h264_h_loop_filter_chroma= h264_h_loop_filter_chroma_c;\n    c->h264_v_loop_filter_chroma_intra= h264_v_loop_filter_chroma_intra_c;\n    c->h264_h_loop_filter_chroma_intra= h264_h_loop_filter_chroma_intra_c;\n    c->h264_loop_filter_strength= NULL;\n    if (ENABLE_ANY_H263) {\n        c->h263_h_loop_filter= h263_h_loop_filter_c;\n        c->h263_v_loop_filter= h263_v_loop_filter_c;\n    }\n    c->h261_loop_filter= h261_loop_filter_c;\n    c->try_8x8basis= try_8x8basis_c;\n    c->add_8x8basis= add_8x8basis_c;\n#ifdef CONFIG_SNOW_DECODER\n    c->vertical_compose97i = ff_snow_vertical_compose97i;\n    c->horizontal_compose97i = ff_snow_horizontal_compose97i;\n    c->inner_add_yblock = ff_snow_inner_add_yblock;\n#endif\n#ifdef CONFIG_VORBIS_DECODER\n    c->vorbis_inverse_coupling = vorbis_inverse_coupling;\n#endif\n#ifdef CONFIG_FLAC_ENCODER\n    c->flac_compute_autocorr = ff_flac_compute_autocorr;\n#endif\n    c->vector_fmul = vector_fmul_c;\n    c->vector_fmul_reverse = vector_fmul_reverse_c;\n    c->vector_fmul_add_add = ff_vector_fmul_add_add_c;\n    c->float_to_int16 = ff_float_to_int16_c;\n    c->shrink[0]= ff_img_copy_plane;\n    c->shrink[1]= ff_shrink22;\n    c->shrink[2]= ff_shrink44;\n    c->shrink[3]= ff_shrink88;\n    c->prefetch= just_return;\n    memset(c->put_2tap_qpel_pixels_tab, 0, sizeof(c->put_2tap_qpel_pixels_tab));\n    memset(c->avg_2tap_qpel_pixels_tab, 0, sizeof(c->avg_2tap_qpel_pixels_tab));\n    if (ENABLE_MMX)      dsputil_init_mmx   (c, avctx);\n    if (ENABLE_ARMV4L)   dsputil_init_armv4l(c, avctx);\n    if (ENABLE_MLIB)     dsputil_init_mlib  (c, avctx);\n    if (ENABLE_VIS)      dsputil_init_vis   (c, avctx);\n    if (ENABLE_ALPHA)    dsputil_init_alpha (c, avctx);\n    if (ENABLE_POWERPC)  dsputil_init_ppc   (c, avctx);\n    if (ENABLE_MMI)      dsputil_init_mmi   (c, avctx);\n    if (ENABLE_SH4)      dsputil_init_sh4   (c, avctx);\n    if (ENABLE_BFIN)     dsputil_init_bfin  (c, avctx);\n    for(i=0; i<64; i++){\n        if(!c->put_2tap_qpel_pixels_tab[0][i])\n            c->put_2tap_qpel_pixels_tab[0][i]= c->put_h264_qpel_pixels_tab[0][i];\n        if(!c->avg_2tap_qpel_pixels_tab[0][i])\n            c->avg_2tap_qpel_pixels_tab[0][i]= c->avg_h264_qpel_pixels_tab[0][i];\n    }\n    switch(c->idct_permutation_type){\n    case FF_NO_IDCT_PERM:\n        for(i=0; i<64; i++)\n            c->idct_permutation[i]= i;\n        break;\n    case FF_LIBMPEG2_IDCT_PERM:\n        for(i=0; i<64; i++)\n            c->idct_permutation[i]= (i & 0x38) | ((i & 6) >> 1) | ((i & 1) << 2);\n        break;\n    case FF_SIMPLE_IDCT_PERM:\n        for(i=0; i<64; i++)\n            c->idct_permutation[i]= simple_mmx_permutation[i];\n        break;\n    case FF_TRANSPOSE_IDCT_PERM:\n        for(i=0; i<64; i++)\n            c->idct_permutation[i]= ((i&7)<<3) | (i>>3);\n        break;\n    case FF_PARTTRANS_IDCT_PERM:\n        for(i=0; i<64; i++)\n            c->idct_permutation[i]= (i&0x24) | ((i&3)<<3) | ((i>>3)&3);\n        break;\n    default:\n        av_log(avctx, AV_LOG_ERROR, "Internal error, IDCT permutation not set\\n");\n    }\n}']