Originally committed as revision 20167 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.6
| @@ -103,7 +103,7 @@ function ff_prefetch_arm, export=1 | |||||
| @ ---------------------------------------------------------------- | @ ---------------------------------------------------------------- | ||||
| .align 5 | .align 5 | ||||
| function put_pixels16_arm, export=1 | |||||
| function ff_put_pixels16_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -155,7 +155,7 @@ function put_pixels16_arm, export=1 | |||||
| @ ---------------------------------------------------------------- | @ ---------------------------------------------------------------- | ||||
| .align 5 | .align 5 | ||||
| function put_pixels8_arm, export=1 | |||||
| function ff_put_pixels8_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -207,7 +207,7 @@ function put_pixels8_arm, export=1 | |||||
| @ ---------------------------------------------------------------- | @ ---------------------------------------------------------------- | ||||
| .align 5 | .align 5 | ||||
| function put_pixels8_x2_arm, export=1 | |||||
| function ff_put_pixels8_x2_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -266,7 +266,7 @@ function put_pixels8_x2_arm, export=1 | |||||
| .endfunc | .endfunc | ||||
| .align 5 | .align 5 | ||||
| function put_no_rnd_pixels8_x2_arm, export=1 | |||||
| function ff_put_no_rnd_pixels8_x2_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -327,7 +327,7 @@ function put_no_rnd_pixels8_x2_arm, export=1 | |||||
| @ ---------------------------------------------------------------- | @ ---------------------------------------------------------------- | ||||
| .align 5 | .align 5 | ||||
| function put_pixels8_y2_arm, export=1 | |||||
| function ff_put_pixels8_y2_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -425,7 +425,7 @@ function put_pixels8_y2_arm, export=1 | |||||
| .endfunc | .endfunc | ||||
| .align 5 | .align 5 | ||||
| function put_no_rnd_pixels8_y2_arm, export=1 | |||||
| function ff_put_no_rnd_pixels8_y2_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -590,7 +590,7 @@ function put_no_rnd_pixels8_y2_arm, export=1 | |||||
| .endm | .endm | ||||
| .align 5 | .align 5 | ||||
| function put_pixels8_xy2_arm, export=1 | |||||
| function ff_put_pixels8_xy2_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -613,7 +613,7 @@ function put_pixels8_xy2_arm, export=1 | |||||
| .endfunc | .endfunc | ||||
| .align 5 | .align 5 | ||||
| function put_no_rnd_pixels8_xy2_arm, export=1 | |||||
| function ff_put_no_rnd_pixels8_xy2_arm, export=1 | |||||
| @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| @ block = word aligned, pixles = unaligned | @ block = word aligned, pixles = unaligned | ||||
| pld [r1] | pld [r1] | ||||
| @@ -25,6 +25,6 @@ void ff_dsputil_init_armv5te(DSPContext* c, AVCodecContext *avctx); | |||||
| void ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx); | void ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx); | ||||
| void ff_dsputil_init_vfp(DSPContext* c, AVCodecContext *avctx); | void ff_dsputil_init_vfp(DSPContext* c, AVCodecContext *avctx); | ||||
| void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx); | void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx); | ||||
| void dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx); | |||||
| void ff_dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx); | |||||
| #endif | #endif | ||||
| @@ -22,30 +22,30 @@ | |||||
| #include "libavcodec/dsputil.h" | #include "libavcodec/dsputil.h" | ||||
| #include "dsputil_arm.h" | #include "dsputil_arm.h" | ||||
| void j_rev_dct_ARM(DCTELEM *data); | |||||
| void simple_idct_ARM(DCTELEM *data); | |||||
| void ff_j_rev_dct_ARM(DCTELEM *data); | |||||
| void ff_simple_idct_ARM(DCTELEM *data); | |||||
| /* XXX: local hack */ | /* XXX: local hack */ | ||||
| static void (*ff_put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); | static void (*ff_put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); | ||||
| static void (*ff_add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); | static void (*ff_add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); | ||||
| void put_pixels8_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void put_pixels8_x2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void put_pixels8_y2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void put_pixels8_xy2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_pixels8_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_pixels8_x2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_pixels8_y2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_pixels8_xy2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void put_no_rnd_pixels8_x2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void put_no_rnd_pixels8_y2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void put_no_rnd_pixels8_xy2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_no_rnd_pixels8_x2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_no_rnd_pixels8_y2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_no_rnd_pixels8_xy2_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void put_pixels16_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| void ff_put_pixels16_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h); | |||||
| CALL_2X_PIXELS(put_pixels16_x2_arm, put_pixels8_x2_arm, 8) | |||||
| CALL_2X_PIXELS(put_pixels16_y2_arm, put_pixels8_y2_arm, 8) | |||||
| CALL_2X_PIXELS(put_pixels16_xy2_arm, put_pixels8_xy2_arm, 8) | |||||
| CALL_2X_PIXELS(put_no_rnd_pixels16_x2_arm, put_no_rnd_pixels8_x2_arm, 8) | |||||
| CALL_2X_PIXELS(put_no_rnd_pixels16_y2_arm, put_no_rnd_pixels8_y2_arm, 8) | |||||
| CALL_2X_PIXELS(put_no_rnd_pixels16_xy2_arm, put_no_rnd_pixels8_xy2_arm, 8) | |||||
| CALL_2X_PIXELS(ff_put_pixels16_x2_arm, ff_put_pixels8_x2_arm, 8) | |||||
| CALL_2X_PIXELS(ff_put_pixels16_y2_arm, ff_put_pixels8_y2_arm, 8) | |||||
| CALL_2X_PIXELS(ff_put_pixels16_xy2_arm, ff_put_pixels8_xy2_arm, 8) | |||||
| CALL_2X_PIXELS(ff_put_no_rnd_pixels16_x2_arm, ff_put_no_rnd_pixels8_x2_arm, 8) | |||||
| CALL_2X_PIXELS(ff_put_no_rnd_pixels16_y2_arm, ff_put_no_rnd_pixels8_y2_arm, 8) | |||||
| CALL_2X_PIXELS(ff_put_no_rnd_pixels16_xy2_arm, ff_put_no_rnd_pixels8_xy2_arm,8) | |||||
| void ff_add_pixels_clamped_ARM(short *block, unsigned char *dest, | void ff_add_pixels_clamped_ARM(short *block, unsigned char *dest, | ||||
| int line_size); | int line_size); | ||||
| @@ -54,22 +54,22 @@ void ff_add_pixels_clamped_ARM(short *block, unsigned char *dest, | |||||
| converted */ | converted */ | ||||
| static void j_rev_dct_ARM_put(uint8_t *dest, int line_size, DCTELEM *block) | static void j_rev_dct_ARM_put(uint8_t *dest, int line_size, DCTELEM *block) | ||||
| { | { | ||||
| j_rev_dct_ARM (block); | |||||
| ff_j_rev_dct_ARM (block); | |||||
| ff_put_pixels_clamped(block, dest, line_size); | ff_put_pixels_clamped(block, dest, line_size); | ||||
| } | } | ||||
| static void j_rev_dct_ARM_add(uint8_t *dest, int line_size, DCTELEM *block) | static void j_rev_dct_ARM_add(uint8_t *dest, int line_size, DCTELEM *block) | ||||
| { | { | ||||
| j_rev_dct_ARM (block); | |||||
| ff_j_rev_dct_ARM (block); | |||||
| ff_add_pixels_clamped(block, dest, line_size); | ff_add_pixels_clamped(block, dest, line_size); | ||||
| } | } | ||||
| static void simple_idct_ARM_put(uint8_t *dest, int line_size, DCTELEM *block) | static void simple_idct_ARM_put(uint8_t *dest, int line_size, DCTELEM *block) | ||||
| { | { | ||||
| simple_idct_ARM (block); | |||||
| ff_simple_idct_ARM (block); | |||||
| ff_put_pixels_clamped(block, dest, line_size); | ff_put_pixels_clamped(block, dest, line_size); | ||||
| } | } | ||||
| static void simple_idct_ARM_add(uint8_t *dest, int line_size, DCTELEM *block) | static void simple_idct_ARM_add(uint8_t *dest, int line_size, DCTELEM *block) | ||||
| { | { | ||||
| simple_idct_ARM (block); | |||||
| ff_simple_idct_ARM (block); | |||||
| ff_add_pixels_clamped(block, dest, line_size); | ff_add_pixels_clamped(block, dest, line_size); | ||||
| } | } | ||||
| @@ -88,37 +88,37 @@ void dsputil_init_arm(DSPContext* c, AVCodecContext *avctx) | |||||
| avctx->idct_algo == FF_IDCT_ARM){ | avctx->idct_algo == FF_IDCT_ARM){ | ||||
| c->idct_put = j_rev_dct_ARM_put; | c->idct_put = j_rev_dct_ARM_put; | ||||
| c->idct_add = j_rev_dct_ARM_add; | c->idct_add = j_rev_dct_ARM_add; | ||||
| c->idct = j_rev_dct_ARM; | |||||
| c->idct = ff_j_rev_dct_ARM; | |||||
| c->idct_permutation_type = FF_LIBMPEG2_IDCT_PERM; | c->idct_permutation_type = FF_LIBMPEG2_IDCT_PERM; | ||||
| } else if (avctx->idct_algo == FF_IDCT_SIMPLEARM){ | } else if (avctx->idct_algo == FF_IDCT_SIMPLEARM){ | ||||
| c->idct_put = simple_idct_ARM_put; | c->idct_put = simple_idct_ARM_put; | ||||
| c->idct_add = simple_idct_ARM_add; | c->idct_add = simple_idct_ARM_add; | ||||
| c->idct = simple_idct_ARM; | |||||
| c->idct = ff_simple_idct_ARM; | |||||
| c->idct_permutation_type = FF_NO_IDCT_PERM; | c->idct_permutation_type = FF_NO_IDCT_PERM; | ||||
| } | } | ||||
| } | } | ||||
| c->put_pixels_tab[0][0] = put_pixels16_arm; | |||||
| c->put_pixels_tab[0][1] = put_pixels16_x2_arm; | |||||
| c->put_pixels_tab[0][2] = put_pixels16_y2_arm; | |||||
| c->put_pixels_tab[0][3] = put_pixels16_xy2_arm; | |||||
| c->put_pixels_tab[1][0] = put_pixels8_arm; | |||||
| c->put_pixels_tab[1][1] = put_pixels8_x2_arm; | |||||
| c->put_pixels_tab[1][2] = put_pixels8_y2_arm; | |||||
| c->put_pixels_tab[1][3] = put_pixels8_xy2_arm; | |||||
| c->put_pixels_tab[0][0] = ff_put_pixels16_arm; | |||||
| c->put_pixels_tab[0][1] = ff_put_pixels16_x2_arm; | |||||
| c->put_pixels_tab[0][2] = ff_put_pixels16_y2_arm; | |||||
| c->put_pixels_tab[0][3] = ff_put_pixels16_xy2_arm; | |||||
| c->put_pixels_tab[1][0] = ff_put_pixels8_arm; | |||||
| c->put_pixels_tab[1][1] = ff_put_pixels8_x2_arm; | |||||
| c->put_pixels_tab[1][2] = ff_put_pixels8_y2_arm; | |||||
| c->put_pixels_tab[1][3] = ff_put_pixels8_xy2_arm; | |||||
| c->put_no_rnd_pixels_tab[0][0] = put_pixels16_arm; | |||||
| c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x2_arm; | |||||
| c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y2_arm; | |||||
| c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_arm; | |||||
| c->put_no_rnd_pixels_tab[1][0] = put_pixels8_arm; | |||||
| c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x2_arm; | |||||
| c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y2_arm; | |||||
| c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_arm; | |||||
| c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_arm; | |||||
| c->put_no_rnd_pixels_tab[0][1] = ff_put_no_rnd_pixels16_x2_arm; | |||||
| c->put_no_rnd_pixels_tab[0][2] = ff_put_no_rnd_pixels16_y2_arm; | |||||
| c->put_no_rnd_pixels_tab[0][3] = ff_put_no_rnd_pixels16_xy2_arm; | |||||
| c->put_no_rnd_pixels_tab[1][0] = ff_put_pixels8_arm; | |||||
| c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_arm; | |||||
| c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_arm; | |||||
| c->put_no_rnd_pixels_tab[1][3] = ff_put_no_rnd_pixels8_xy2_arm; | |||||
| if (HAVE_ARMV5TE) ff_dsputil_init_armv5te(c, avctx); | if (HAVE_ARMV5TE) ff_dsputil_init_armv5te(c, avctx); | ||||
| if (HAVE_ARMV6) ff_dsputil_init_armv6(c, avctx); | if (HAVE_ARMV6) ff_dsputil_init_armv6(c, avctx); | ||||
| if (HAVE_IWMMXT) dsputil_init_iwmmxt(c, avctx); | |||||
| if (HAVE_IWMMXT) ff_dsputil_init_iwmmxt(c, avctx); | |||||
| if (HAVE_ARMVFP) ff_dsputil_init_vfp(c, avctx); | if (HAVE_ARMVFP) ff_dsputil_init_vfp(c, avctx); | ||||
| if (HAVE_NEON) ff_dsputil_init_neon(c, avctx); | if (HAVE_NEON) ff_dsputil_init_neon(c, avctx); | ||||
| } | } | ||||
| @@ -21,9 +21,9 @@ | |||||
| #include "libavcodec/dsputil.h" | #include "libavcodec/dsputil.h" | ||||
| #include "dsputil_arm.h" | #include "dsputil_arm.h" | ||||
| void simple_idct_armv5te(DCTELEM *data); | |||||
| void simple_idct_put_armv5te(uint8_t *dest, int line_size, DCTELEM *data); | |||||
| void simple_idct_add_armv5te(uint8_t *dest, int line_size, DCTELEM *data); | |||||
| void ff_simple_idct_armv5te(DCTELEM *data); | |||||
| void ff_simple_idct_put_armv5te(uint8_t *dest, int line_size, DCTELEM *data); | |||||
| void ff_simple_idct_add_armv5te(uint8_t *dest, int line_size, DCTELEM *data); | |||||
| void ff_prefetch_arm(void *mem, int stride, int h); | void ff_prefetch_arm(void *mem, int stride, int h); | ||||
| @@ -31,9 +31,9 @@ void av_cold ff_dsputil_init_armv5te(DSPContext* c, AVCodecContext *avctx) | |||||
| { | { | ||||
| if (!avctx->lowres && (avctx->idct_algo == FF_IDCT_AUTO || | if (!avctx->lowres && (avctx->idct_algo == FF_IDCT_AUTO || | ||||
| avctx->idct_algo == FF_IDCT_SIMPLEARMV5TE)) { | avctx->idct_algo == FF_IDCT_SIMPLEARMV5TE)) { | ||||
| c->idct_put = simple_idct_put_armv5te; | |||||
| c->idct_add = simple_idct_add_armv5te; | |||||
| c->idct = simple_idct_armv5te; | |||||
| c->idct_put = ff_simple_idct_put_armv5te; | |||||
| c->idct_add = ff_simple_idct_add_armv5te; | |||||
| c->idct = ff_simple_idct_armv5te; | |||||
| c->idct_permutation_type = FF_NO_IDCT_PERM; | c->idct_permutation_type = FF_NO_IDCT_PERM; | ||||
| } | } | ||||
| @@ -152,7 +152,7 @@ static void nop(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |||||
| */ | */ | ||||
| int mm_flags = FF_MM_IWMMXT; /* multimedia extension flags */ | int mm_flags = FF_MM_IWMMXT; /* multimedia extension flags */ | ||||
| void dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx) | |||||
| void ff_dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx) | |||||
| { | { | ||||
| if (avctx->dsp_mask) { | if (avctx->dsp_mask) { | ||||
| if (avctx->dsp_mask & FF_MM_FORCE) | if (avctx->dsp_mask & FF_MM_FORCE) | ||||
| @@ -57,7 +57,7 @@ | |||||
| .text | .text | ||||
| .align | .align | ||||
| function j_rev_dct_ARM, export=1 | |||||
| function ff_j_rev_dct_ARM, export=1 | |||||
| stmdb sp!, { r4 - r12, lr } @ all callee saved regs | stmdb sp!, { r4 - r12, lr } @ all callee saved regs | ||||
| sub sp, sp, #4 @ reserve some space on the stack | sub sp, sp, #4 @ reserve some space on the stack | ||||
| @@ -56,7 +56,7 @@ | |||||
| .text | .text | ||||
| function simple_idct_ARM, export=1 | |||||
| function ff_simple_idct_ARM, export=1 | |||||
| @@ void simple_idct_ARM(int16_t *block) | @@ void simple_idct_ARM(int16_t *block) | ||||
| @@ save stack for reg needed (take all of them), | @@ save stack for reg needed (take all of them), | ||||
| @@ R0-R3 are scratch regs, so no need to save them, but R0 contains the pointer to block | @@ R0-R3 are scratch regs, so no need to save them, but R0 contains the pointer to block | ||||
| @@ -600,7 +600,7 @@ function idct_col_add_armv5te | |||||
| ldr pc, [sp], #4 | ldr pc, [sp], #4 | ||||
| .endfunc | .endfunc | ||||
| function simple_idct_armv5te, export=1 | |||||
| function ff_simple_idct_armv5te, export=1 | |||||
| stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr} | stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr} | ||||
| bl idct_row_armv5te | bl idct_row_armv5te | ||||
| @@ -632,7 +632,7 @@ function simple_idct_armv5te, export=1 | |||||
| ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} | ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} | ||||
| .endfunc | .endfunc | ||||
| function simple_idct_add_armv5te, export=1 | |||||
| function ff_simple_idct_add_armv5te, export=1 | |||||
| stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} | stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} | ||||
| mov a1, a3 | mov a1, a3 | ||||
| @@ -667,7 +667,7 @@ function simple_idct_add_armv5te, export=1 | |||||
| ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} | ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} | ||||
| .endfunc | .endfunc | ||||
| function simple_idct_put_armv5te, export=1 | |||||
| function ff_simple_idct_put_armv5te, export=1 | |||||
| stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} | stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} | ||||
| mov a1, a3 | mov a1, a3 | ||||