arm: Implement a NEON version of 422 h264_h_loop_filter_chroma
[libav.git] / libavcodec / arm / h264dsp_neon.S
index 5e75565..783e0f6 100644 (file)
@@ -237,6 +237,7 @@ function ff_h264_h_loop_filter_chroma_neon, export=1
         h264_loop_filter_start
 
         sub             r0,  r0,  #2
+h_loop_filter_chroma420:
         vld1.32         {d18[0]}, [r0], r1
         vld1.32         {d16[0]}, [r0], r1
         vld1.32         {d0[0]},  [r0], r1
@@ -271,6 +272,24 @@ function ff_h264_h_loop_filter_chroma_neon, export=1
         bx              lr
 endfunc
 
+function ff_h264_h_loop_filter_chroma422_neon, export=1
+        h264_loop_filter_start
+        push            {r4, lr}
+        add             r4,  r0,  r1
+        add             r1,  r1,  r1
+        sub             r0,  r0,  #2
+
+        bl              h_loop_filter_chroma420
+
+        ldr             r12, [sp, #8]
+        ldr             r12, [r12]
+        vmov.32         d24[0], r12
+        sub             r0,  r4,  #2
+
+        bl              h_loop_filter_chroma420
+        pop             {r4, pc}
+endfunc
+
 @ Biweighted prediction
 
 .macro  biweight_16     macs, macd