void checkasm_check_h264pred(void)

{

    static const struct {

        void (*func)(H264PredContext*, uint8_t*, uint8_t*, int, int, int);

        const char *name;

    } tests[] = {

        { check_pred4x4,   "pred4x4"   },

        { check_pred8x8,   "pred8x8"   },

        { check_pred16x16, "pred16x16" },

        { check_pred8x8l,  "pred8x8l"  },

    };



    DECLARE_ALIGNED(16, uint8_t, buf0)[BUF_SIZE];

    DECLARE_ALIGNED(16, uint8_t, buf1)[BUF_SIZE];

    H264PredContext h;

    int test, codec, chroma_format, bit_depth;



    for (test = 0; test < FF_ARRAY_ELEMS(tests); test++) {

        for (codec = 0; codec < 4; codec++) {

            int codec_id = codec_ids[codec];

            for (bit_depth = 8; bit_depth <= (codec_id == AV_CODEC_ID_H264 ? 10 : 8); bit_depth++)

                for (chroma_format = 1; chroma_format <= (codec_id == AV_CODEC_ID_H264 ? 2 : 1); chroma_format++) {

                    ff_h264_pred_init(&h, codec_id, bit_depth, chroma_format);

                    tests[test].func(&h, buf0, buf1, codec, chroma_format, bit_depth);

                }

        }

        report("%s", tests[test].name);

    }

}

void checkasm_check_h264pred(void)

{

    static const struct {

        void (*func)(H264PredContext*, uint8_t*, uint8_t*, int, int, int);

        const char *name;

    } tests[] = {

        { check_pred4x4,   "pred4x4"   },

        { check_pred8x8,   "pred8x8"   },

        { check_pred16x16, "pred16x16" },

        { check_pred8x8l,  "pred8x8l"  },

    };



    DECLARE_ALIGNED(16, uint8_t, buf0)[BUF_SIZE];

    DECLARE_ALIGNED(16, uint8_t, buf1)[BUF_SIZE];

    H264PredContext h;

    int test, codec, chroma_format, bit_depth;



    for (test = 0; test < FF_ARRAY_ELEMS(tests); test++) {

        for (codec = 0; codec < 4; codec++) {

            int codec_id = codec_ids[codec];

            for (bit_depth = 8; bit_depth <= (codec_id == AV_CODEC_ID_H264 ? 10 : 8); bit_depth++)

                for (chroma_format = 1; chroma_format <= (codec_id == AV_CODEC_ID_H264 ? 2 : 1); chroma_format++) {

                    ff_h264_pred_init(&h, codec_id, bit_depth, chroma_format);

                    tests[test].func(&h, buf0, buf1, codec, chroma_format, bit_depth);

                }

        }

        report("%s", tests[test].name);

    }

}

VAR_2voidVAR_2 VAR_2checkasm_check_h264predVAR_2(VAR_2voidVAR_2)

{

    VAR_2staticVAR_2 VAR_2constVAR_2 VAR_2structVAR_2 {

        VAR_2voidVAR_2 (*VAR_2funcVAR_2)(VAR_2H264PredContextVAR_2*, VAR_2uint8_tVAR_2*, VAR_2uint8_tVAR_2*, VAR_2intVAR_2, VAR_2intVAR_2, VAR_2intVAR_2);

        VAR_2constVAR_2 VAR_2charVAR_2 *VAR_2nameVAR_2;

    } VAR_2testsVAR_2[] = {

        { VAR_2check_pred4x4VAR_2,   "VAR_2pred4x4VAR_2"   },

        { VAR_2check_pred8x8VAR_2,   "VAR_2pred8x8VAR_2"   },

        { VAR_2check_pred16x16VAR_2, "VAR_2pred16x16VAR_2" },

        { VAR_2check_pred8x8lVAR_2,  "VAR_2pred8x8lVAR_2"  },

    };



    VAR_2DECLARE_ALIGNEDVAR_2(VAR_216VAR_2, VAR_2uint8_tVAR_2, VAR_2buf0VAR_2)[VAR_2BUF_SIZEVAR_2];

    VAR_2DECLARE_ALIGNEDVAR_2(VAR_216VAR_2, VAR_2uint8_tVAR_2, VAR_2buf1VAR_2)[VAR_2BUF_SIZEVAR_2];

    VAR_2H264PredContextVAR_2 VAR_2hVAR_2;

    VAR_2intVAR_2 VAR_2testVAR_2, VAR_2codecVAR_2, VAR_2chroma_formatVAR_2, VAR_2bit_depthVAR_2;



    VAR_2forVAR_2 (VAR_2testVAR_2 = VAR_20VAR_2; VAR_2testVAR_2 < VAR_2FF_ARRAY_ELEMSVAR_2(VAR_2testsVAR_2); VAR_2testVAR_2++) {

        VAR_2forVAR_2 (VAR_2codecVAR_2 = VAR_20VAR_2; VAR_2codecVAR_2 < VAR_24VAR_2; VAR_2codecVAR_2++) {

            VAR_2intVAR_2 VAR_2codec_idVAR_2 = VAR_2codec_idsVAR_2[VAR_2codecVAR_2];

            VAR_2forVAR_2 (VAR_2bit_depthVAR_2 = VAR_28VAR_2; VAR_2bit_depthVAR_2 <= (VAR_2codec_idVAR_2 == VAR_2AV_CODEC_ID_H264VAR_2 ? VAR_210VAR_2 : VAR_28VAR_2); VAR_2bit_depthVAR_2++)

                VAR_2forVAR_2 (VAR_2chroma_formatVAR_2 = VAR_21VAR_2; VAR_2chroma_formatVAR_2 <= (VAR_2codec_idVAR_2 == VAR_2AV_CODEC_ID_H264VAR_2 ? VAR_22VAR_2 : VAR_21VAR_2); VAR_2chroma_formatVAR_2++) {

                    VAR_2ff_h264_pred_initVAR_2(&VAR_2hVAR_2, VAR_2codec_idVAR_2, VAR_2bit_depthVAR_2, VAR_2chroma_formatVAR_2);

                    VAR_2testsVAR_2[VAR_2testVAR_2].VAR_2funcVAR_2(&VAR_2hVAR_2, VAR_2buf0VAR_2, VAR_2buf1VAR_2, VAR_2codecVAR_2, VAR_2chroma_formatVAR_2, VAR_2bit_depthVAR_2);

                }

        }

        VAR_2reportVAR_2("%VAR_2sVAR_2", VAR_2testsVAR_2[VAR_2testVAR_2].VAR_2nameVAR_2);

    }

}

VAR_2voidVAR_2 VAR_2checkasm_check_h264predVAR_2(VAR_2voidVAR_2)
{ VAR_2staticVAR_2 VAR_2constVAR_2 VAR_2structVAR_2 { VAR_2voidVAR_2 (*VAR_2funcVAR_2)(VAR_2H264PredContextVAR_2*, VAR_2uint8_tVAR_2*, VAR_2uint8_tVAR_2*, VAR_2intVAR_2, VAR_2intVAR_2, VAR_2intVAR_2); VAR_2constVAR_2 VAR_2charVAR_2 *VAR_2nameVAR_2; } VAR_2testsVAR_2[] = { { VAR_2check_pred4x4VAR_2,   "VAR_2pred4x4VAR_2"   }, { VAR_2check_pred8x8VAR_2,   "VAR_2pred8x8VAR_2"   }, { VAR_2check_pred16x16VAR_2, "VAR_2pred16x16VAR_2" }, { VAR_2check_pred8x8lVAR_2,  "VAR_2pred8x8lVAR_2"  }, }; VAR_2DECLARE_ALIGNEDVAR_2(VAR_216VAR_2, VAR_2uint8_tVAR_2, VAR_2buf0VAR_2)[VAR_2BUF_SIZEVAR_2]; VAR_2DECLARE_ALIGNEDVAR_2(VAR_216VAR_2, VAR_2uint8_tVAR_2, VAR_2buf1VAR_2)[VAR_2BUF_SIZEVAR_2]; VAR_2H264PredContextVAR_2 VAR_2hVAR_2; VAR_2intVAR_2 VAR_2testVAR_2, VAR_2codecVAR_2, VAR_2chroma_formatVAR_2, VAR_2bit_depthVAR_2; VAR_2forVAR_2 (VAR_2testVAR_2 = VAR_20VAR_2; VAR_2testVAR_2 < VAR_2FF_ARRAY_ELEMSVAR_2(VAR_2testsVAR_2); VAR_2testVAR_2++) { VAR_2forVAR_2 (VAR_2codecVAR_2 = VAR_20VAR_2; VAR_2codecVAR_2 < VAR_24VAR_2; VAR_2codecVAR_2++) { VAR_2intVAR_2 VAR_2codec_idVAR_2 = VAR_2codec_idsVAR_2[VAR_2codecVAR_2]; VAR_2forVAR_2 (VAR_2bit_depthVAR_2 = VAR_28VAR_2; VAR_2bit_depthVAR_2 <= (VAR_2codec_idVAR_2 == VAR_2AV_CODEC_ID_H264VAR_2 ? VAR_210VAR_2 : VAR_28VAR_2); VAR_2bit_depthVAR_2++) VAR_2forVAR_2 (VAR_2chroma_formatVAR_2 = VAR_21VAR_2; VAR_2chroma_formatVAR_2 <= (VAR_2codec_idVAR_2 == VAR_2AV_CODEC_ID_H264VAR_2 ? VAR_22VAR_2 : VAR_21VAR_2); VAR_2chroma_formatVAR_2++) { VAR_2ff_h264_pred_initVAR_2(&VAR_2hVAR_2, VAR_2codec_idVAR_2, VAR_2bit_depthVAR_2, VAR_2chroma_formatVAR_2); VAR_2testsVAR_2[VAR_2testVAR_2].VAR_2funcVAR_2(&VAR_2hVAR_2, VAR_2buf0VAR_2, VAR_2buf1VAR_2, VAR_2codecVAR_2, VAR_2chroma_formatVAR_2, VAR_2bit_depthVAR_2); } } VAR_2reportVAR_2("%VAR_2sVAR_2", VAR_2testsVAR_2[VAR_2testVAR_2].VAR_2nameVAR_2); } }