cscodec.h264.decoder.DSPContext.dsputil_init C# (CSharp) Method

dsputil_init() public method

public dsputil_init ( MpegEncContext s ) : void
s MpegEncContext
return void
        public void dsputil_init(/*AVCodecContext *avctx*/ MpegEncContext s)
        {
            int i;

            // No Alignment Checking in JAVA
            //ff_check_alignment();

            //??????????????????????????
            // Why initialize it if we don't even use it?
            /*
            if(s.lowres==1){
                //if(s.idct_algo==FF_IDCT_INT || s.idct_algo==FF_IDCT_AUTO || !CONFIG_H264_DECODER){
                //    this.idct_put= ff_jref_idct4_put;
                //    this.idct_add= ff_jref_idct4_add;
                //}else{
                    this.idct_put= ff_h264_lowres_idct_put_c;
                    this.idct_add= ff_h264_lowres_idct_add_c;
                //}
                this.idct    = j_rev_dct4;
                this.idct_permutation_type= FF_NO_IDCT_PERM;
            }else if(s.lowres==2){
                this.idct_put= ff_jref_idct2_put;
                this.idct_add= ff_jref_idct2_add;
                this.idct    = j_rev_dct2;
                this.idct_permutation_type= FF_NO_IDCT_PERM;
            }else if(s.lowres==3){
                this.idct_put= ff_jref_idct1_put;
                this.idct_add= ff_jref_idct1_add;
                this.idct    = j_rev_dct1;
                this.idct_permutation_type= FF_NO_IDCT_PERM;
            }else{
                if(s.idct_algo==FF_IDCT_INT){
                    this.idct_put= ff_jref_idct_put;
                    this.idct_add= ff_jref_idct_add;
                    this.idct    = j_rev_dct;
                    this.idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
               // }else if((CONFIG_VP3_DECODER || CONFIG_VP5_DECODER || CONFIG_VP6_DECODER ) &&
               //         s.idct_algo==FF_IDCT_VP3){
               //     this.idct_put= ff_vp3_idct_put_c;
               //     this.idct_add= ff_vp3_idct_add_c;
               //     this.idct    = ff_vp3_idct_c;
               //     this.idct_permutation_type= FF_NO_IDCT_PERM;
               // }else if(s.idct_algo==FF_IDCT_WMV2){
               //     this.idct_put= ff_wmv2_idct_put_c;
               //     this.idct_add= ff_wmv2_idct_add_c;
               //     this.idct    = ff_wmv2_idct_c;
               //     this.idct_permutation_type= FF_NO_IDCT_PERM;
               // }else if(s.idct_algo==FF_IDCT_FAAN){
               //     this.idct_put= ff_faanidct_put;
               //     this.idct_add= ff_faanidct_add;
               //     this.idct    = ff_faanidct;
               //     this.idct_permutation_type= FF_NO_IDCT_PERM;
               // }else if(CONFIG_EATGQ_DECODER && s.idct_algo==FF_IDCT_EA) {
               //     this.idct_put= ff_ea_idct_put_c;
               //     this.idct_permutation_type= FF_NO_IDCT_PERM;
               // }else if(CONFIG_BINK_DECODER && s.idct_algo==FF_IDCT_BINK) {
               //     this.idct     = ff_bink_idct_c;
               //     this.idct_add = ff_bink_idct_add_c;
               //     this.idct_put = ff_bink_idct_put_c;
               //     this.idct_permutation_type = FF_NO_IDCT_PERM;
                }else{ //accurate/default
                    this.idct_put= ff_simple_idct_put;
                    this.idct_add= ff_simple_idct_add;
                    this.idct    = ff_simple_idct;
                    this.idct_permutation_type= FF_NO_IDCT_PERM;
                }
            }
            */

            // For JAVA software decoder, use simple IDCT Scanline:
            this.idct_permutation_type = FF_NO_IDCT_PERM;

            put_h264_qpel_pixels_tab[0][0] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                pixels_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride, 16);
            };
            put_h264_qpel_pixels_tab[0][1] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc10_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][2] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc20_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][3] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc30_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][4] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc01_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][5] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc11_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][6] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc21_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][7] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc31_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][8] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc02_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][9] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc12_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };
            put_h264_qpel_pixels_tab[0][10] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc22_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);
            };

            #if true
            put_h264_qpel_pixels_tab[0][11] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc32_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[0][12] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc03_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[0][13] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc13_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[0][14] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc23_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[0][15] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc33_c(0, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };

            put_h264_qpel_pixels_tab[1][0] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                pixels_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride, 8);

            };
            put_h264_qpel_pixels_tab[1][1] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc10_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][2] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc20_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][3] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc30_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][4] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc01_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][5] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc11_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][6] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc21_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][7] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc31_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][8] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc02_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][9] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc12_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][10] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc22_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][11] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc32_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][12] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc03_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][13] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc13_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][14] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc23_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[1][15] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc33_c(0, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };

            put_h264_qpel_pixels_tab[2][0] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc00_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][1] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc10_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][2] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc20_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][3] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc30_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][4] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc01_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][5] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc11_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][6] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc21_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][7] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc31_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][8] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc02_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][9] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc12_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][10] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc22_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][11] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc32_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][12] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc03_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][13] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc13_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][14] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc23_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[2][15] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc33_c(0, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };

            put_h264_qpel_pixels_tab[3][0] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc00_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][1] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc10_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][2] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc20_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][3] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc30_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][4] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc01_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][5] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc11_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][6] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc21_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][7] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc31_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][8] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc02_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][9] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc12_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][10] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc22_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][11] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc32_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][12] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc03_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][13] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc13_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][14] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc23_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            put_h264_qpel_pixels_tab[3][15] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc33_c(0, 2, dst_base, dst_offset, src_base, src_offset, stride);

            };
            #endif
            ///////////////////////////////////////////////////////////////////////////////////////

            // avg_h264_qpel_pixels_tab[0][ 0]
            #if true
            avg_h264_qpel_pixels_tab[0][0] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                pixels_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride, 16);

            };
            avg_h264_qpel_pixels_tab[0][1] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc10_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][2] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc20_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][3] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc30_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][4] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc01_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][5] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc11_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][6] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc21_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][7] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc31_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][8] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc02_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][9] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc12_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][10] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc22_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][11] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc32_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][12] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc03_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][13] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc13_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][14] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc23_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[0][15] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc33_c(1, 16, dst_base, dst_offset, src_base, src_offset, stride);

            };

            avg_h264_qpel_pixels_tab[1][0] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                pixels_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride, 8);

            };
            avg_h264_qpel_pixels_tab[1][1] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc10_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][2] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc20_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][3] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc30_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][4] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc01_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][5] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc11_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][6] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc21_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][7] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc31_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][8] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc02_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][9] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc12_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][10] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc22_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][11] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc32_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][12] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc03_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][13] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc13_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][14] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc23_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[1][15] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc33_c(1, 8, dst_base, dst_offset, src_base, src_offset, stride);

            };

            avg_h264_qpel_pixels_tab[2][0] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc00_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][1] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc10_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][2] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc20_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][3] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc30_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][4] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc01_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][5] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc11_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][6] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc21_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][7] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc31_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][8] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc02_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][9] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc12_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][10] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc22_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][11] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc32_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][12] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc03_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][13] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc13_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][14] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc23_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            avg_h264_qpel_pixels_tab[2][15] = (dst_base, dst_offset, src_base, src_offset, stride) =>
            {
                h264_qpel_mc33_c(1, 4, dst_base, dst_offset, src_base, src_offset, stride);

            };
            #endif

            #if true
            put_h264_chroma_pixels_tab[0] = (dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y) =>
            {
                put_h264_chroma_mc8_c(dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y);
            };
            put_h264_chroma_pixels_tab[1] = (dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y) =>
            {
                put_h264_chroma_mc4_c(dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y);
            };
            put_h264_chroma_pixels_tab[2] = (dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y) =>
            {
                put_h264_chroma_mc2_c(dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y);
            };
            #endif

            ///////////////////////////

            #if true
            avg_h264_chroma_pixels_tab[0] = (dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y) =>
            {
                avg_h264_chroma_mc8_c(dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y);
            };
            avg_h264_chroma_pixels_tab[1] = (dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y) =>
            {
                avg_h264_chroma_mc4_c(dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y);
            };
            avg_h264_chroma_pixels_tab[2] = (dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y) =>
            {
                avg_h264_chroma_mc2_c(dst_base, dst_offset, src_base, src_offset, srcStride, h, x, y);
            };
            #endif

            switch (this.idct_permutation_type)
            {
                case FF_NO_IDCT_PERM:
                    for (i = 0; i < 64; i++) this.idct_permutation[i] = (byte)i;
                    break;
            } // switch
        }