Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2010-06-01 21:21:16 +0400
committerMåns Rullgård <mans@mansr.com>2010-06-01 21:21:16 +0400
commit73404a44c1aa647c48bb8d91e1ed51824e8f3376 (patch)
tree67154e3b071c0618606c4f5157e19e8b224a11e8 /libavcodec/arm
parent522d3930ffd3e53dac4bfbc6908f0fd09674b7fc (diff)
ARM: NEON clear_block[s]
Originally committed as revision 23412 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/arm')
-rw-r--r--libavcodec/arm/dsputil_init_neon.c6
-rw-r--r--libavcodec/arm/dsputil_neon.S16
2 files changed, 22 insertions, 0 deletions
diff --git a/libavcodec/arm/dsputil_init_neon.c b/libavcodec/arm/dsputil_init_neon.c
index 0e44160392..ff19672487 100644
--- a/libavcodec/arm/dsputil_init_neon.c
+++ b/libavcodec/arm/dsputil_init_neon.c
@@ -34,6 +34,9 @@ void ff_vp3_idct_put_neon(uint8_t *dest, int line_size, DCTELEM *data);
void ff_vp3_idct_add_neon(uint8_t *dest, int line_size, DCTELEM *data);
void ff_vp3_idct_dc_add_neon(uint8_t *dest, int line_size, const DCTELEM *data);
+void ff_clear_block_neon(DCTELEM *block);
+void ff_clear_blocks_neon(DCTELEM *blocks);
+
void ff_put_pixels16_neon(uint8_t *, const uint8_t *, int, int);
void ff_put_pixels16_x2_neon(uint8_t *, const uint8_t *, int, int);
void ff_put_pixels16_y2_neon(uint8_t *, const uint8_t *, int, int);
@@ -189,6 +192,9 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
}
}
+ c->clear_block = ff_clear_block_neon;
+ c->clear_blocks = ff_clear_blocks_neon;
+
c->put_pixels_tab[0][0] = ff_put_pixels16_neon;
c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon;
c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon;
diff --git a/libavcodec/arm/dsputil_neon.S b/libavcodec/arm/dsputil_neon.S
index 722ed7865f..2bcdb397f9 100644
--- a/libavcodec/arm/dsputil_neon.S
+++ b/libavcodec/arm/dsputil_neon.S
@@ -25,6 +25,22 @@
preserve8
.text
+function ff_clear_block_neon, export=1
+ vmov.i16 q0, #0
+ .rept 8
+ vst1.16 {q0}, [r0,:128]!
+ .endr
+ bx lr
+endfunc
+
+function ff_clear_blocks_neon, export=1
+ vmov.i16 q0, #0
+ .rept 8*6
+ vst1.16 {q0}, [r0,:128]!
+ .endr
+ bx lr
+endfunc
+
.macro pixels16 avg=0
.if \avg
mov ip, r0