On Sun, 15 Dec 2013, Janne Grunau wrote:

On 2013-12-14 17:32:57 -0800, Mason Carter wrote:
Apply David Conrad's old patch to the modern codebase.

http://ffmpeg.org/pipermail/ffmpeg-devel/2009-April/059877.html
---
 libavcodec/arm/h264cmc_neon.S     | 13 +++++++++++++
 libavcodec/arm/vc1dsp_init_neon.c | 10 ++++++++++
 2 files changed, 23 insertions(+)

diff --git a/libavcodec/arm/h264cmc_neon.S b/libavcodec/arm/h264cmc_neon.S
index 15301f8..3183dd8 100644
--- a/libavcodec/arm/h264cmc_neon.S
+++ b/libavcodec/arm/h264cmc_neon.S
@@ -39,6 +39,9 @@ function ff_\type\()_\codec\()_chroma_mc8_neon, export=1
         add             r6,  r6,  r7,  lsl #1
         vld1.16         {d22[],d23[]}, [r6,:16]
   .endif
+  .ifc \codec,vc1
+        vmov.u16        q11, #28
+  .endif

 A       muls            r7,  r4,  r5
 T       mul             r7,  r4,  r5
@@ -183,6 +186,9 @@ function ff_\type\()_\codec\()_chroma_mc4_neon, export=1
         add             r6,  r6,  r7,  lsl #1
         vld1.16         {d22[],d23[]}, [r6,:16]
   .endif
+  .ifc \codec,vc1
+        vmov.u16        q11, #28
+  .endif

 A       muls            r7,  r4,  r5
 T       mul             r7,  r4,  r5
@@ -396,3 +402,10 @@ endconst
         h264_chroma_mc4 put, rv40
         h264_chroma_mc4 avg, rv40
 #endif
+
+#if CONFIG_VC1_DECODER
+        h264_chroma_mc8 put, vc1
+        h264_chroma_mc8 avg, vc1
+        h264_chroma_mc4 put, vc1
+        h264_chroma_mc4 avg, vc1
+#endif
diff --git a/libavcodec/arm/vc1dsp_init_neon.c 
b/libavcodec/arm/vc1dsp_init_neon.c
index 105e47d..218788c 100644
--- a/libavcodec/arm/vc1dsp_init_neon.c
+++ b/libavcodec/arm/vc1dsp_init_neon.c
@@ -54,6 +54,11 @@ void ff_put_vc1_mspel_mc31_neon(uint8_t *dst, const uint8_t 
*src, ptrdiff_t stri
 void ff_put_vc1_mspel_mc32_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t 
stride, int rnd);
 void ff_put_vc1_mspel_mc33_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t 
stride, int rnd);

+void ff_put_vc1_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride, int h, 
int x, int y);
+void ff_avg_vc1_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride, int h, 
int x, int y);
+void ff_put_vc1_chroma_mc4_neon(uint8_t *dst, uint8_t *src, int stride, int h, 
int x, int y);
+void ff_avg_vc1_chroma_mc4_neon(uint8_t *dst, uint8_t *src, int stride, int h, 
int x, int y);
+
 av_cold void ff_vc1dsp_init_neon(VC1DSPContext *dsp)
 {
     dsp->vc1_inv_trans_8x8 = ff_vc1_inv_trans_8x8_neon;
@@ -81,4 +86,9 @@ av_cold void ff_vc1dsp_init_neon(VC1DSPContext *dsp)
     dsp->put_vc1_mspel_pixels_tab[13] = ff_put_vc1_mspel_mc13_neon;
     dsp->put_vc1_mspel_pixels_tab[14] = ff_put_vc1_mspel_mc23_neon;
     dsp->put_vc1_mspel_pixels_tab[15] = ff_put_vc1_mspel_mc33_neon;
+
+    dsp->put_no_rnd_vc1_chroma_pixels_tab[0] = ff_put_vc1_chroma_mc8_neon;
+    dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = ff_avg_vc1_chroma_mc8_neon;
+    dsp->put_no_rnd_vc1_chroma_pixels_tab[1] = ff_put_vc1_chroma_mc4_neon;
+    dsp->avg_no_rnd_vc1_chroma_pixels_tab[1] = ff_avg_vc1_chroma_mc4_neon;
 }
--

ok

The first patch looks good too (no review) even though it's a
little verbose. full review will probably follow tomorrow.

I didn't see anything I'd object to in either of them. The _init.c file had a little long lines that I've splitted, will push with that changed.

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to