---
 libavcodec/arm/hpeldsp_init_arm.c  |  2 +-
 libavcodec/dsputil.h               |  2 --
 libavcodec/dsputil_template.c      |  2 ++
 libavcodec/hpel_template.c         |  2 ++
 libavcodec/hpeldsp_template.c      |  2 ++
 libavcodec/{rnd_avg.h => pixels.h} | 35 ++++++++---------------------------
 libavcodec/rnd_avg.h               |  8 --------
 libavcodec/x86/dsputil_init.c      |  5 +++--
 libavcodec/x86/dsputil_x86.h       | 12 ------------
 libavcodec/x86/h264_qpel.c         |  5 +++--
 libavcodec/x86/hpeldsp_init.c      | 36 ++++++++++++++++++++++--------------
 libavcodec/x86/rnd_mmx.c           |  5 +++--
 12 files changed, 46 insertions(+), 70 deletions(-)
 copy libavcodec/{rnd_avg.h => pixels.h} (56%)

diff --git a/libavcodec/arm/hpeldsp_init_arm.c 
b/libavcodec/arm/hpeldsp_init_arm.c
index c675166..6390660 100644
--- a/libavcodec/arm/hpeldsp_init_arm.c
+++ b/libavcodec/arm/hpeldsp_init_arm.c
@@ -21,7 +21,7 @@
 
 #include "libavutil/arm/cpu.h"
 #include "libavutil/attributes.h"
-#include "libavcodec/rnd_avg.h"
+#include "libavcodec/pixels.h"
 #include "hpeldsp_arm.h"
 
 void ff_put_pixels8_arm(uint8_t *block, const uint8_t *pixels, ptrdiff_t 
line_size, int h);
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index b712d49..d596e29 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -31,7 +31,6 @@
 #define AVCODEC_DSPUTIL_H
 
 #include "avcodec.h"
-#include "rnd_avg.h"
 
 /* encoding scans */
 extern const uint8_t ff_alternate_horizontal_scan[64];
@@ -40,7 +39,6 @@ extern const uint8_t ff_zigzag248_direct[64];
 
 extern uint32_t ff_square_tab[512];
 
-/* pixel operations */
 void ff_put_pixels8x8_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
 void ff_avg_pixels8x8_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
 void ff_put_pixels16x16_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
diff --git a/libavcodec/dsputil_template.c b/libavcodec/dsputil_template.c
index f6e03ec..56f41ad 100644
--- a/libavcodec/dsputil_template.c
+++ b/libavcodec/dsputil_template.c
@@ -27,6 +27,8 @@
  * DSP utils
  */
 
+#include "pixels.h"
+
 #include "bit_depth_template.c"
 
 #if BIT_DEPTH == 8
diff --git a/libavcodec/hpel_template.c b/libavcodec/hpel_template.c
index 0d90445..1bc18cc 100644
--- a/libavcodec/hpel_template.c
+++ b/libavcodec/hpel_template.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "pixels.h"
+
 #define DEF_HPEL(OPNAME, OP)                                            \
 static inline void FUNCC(OPNAME ## _pixels2)(uint8_t *block,            \
                                              const uint8_t *pixels,     \
diff --git a/libavcodec/hpeldsp_template.c b/libavcodec/hpeldsp_template.c
index 9456490..f190457 100644
--- a/libavcodec/hpeldsp_template.c
+++ b/libavcodec/hpeldsp_template.c
@@ -28,6 +28,8 @@
  * Half-pel DSP functions
  */
 
+#include "pixels.h"
+
 #include "bit_depth_template.c"
 
 #include "hpel_template.c"
diff --git a/libavcodec/rnd_avg.h b/libavcodec/pixels.h
similarity index 56%
copy from libavcodec/rnd_avg.h
copy to libavcodec/pixels.h
index 8feac28..d9d2fde 100644
--- a/libavcodec/rnd_avg.h
+++ b/libavcodec/pixels.h
@@ -16,41 +16,22 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#ifndef AVCODEC_RND_AVG_H
-#define AVCODEC_RND_AVG_H
+#ifndef AVCODEC_PIXELS_H
+#define AVCODEC_PIXELS_H
 
 #include <stddef.h>
 #include <stdint.h>
 
-#define CALL_2X_PIXELS(a, b, n)                      \
-static void a(uint8_t *block, const uint8_t *pixels, \
+/* pixel operations */
+#define CALL_2X_PIXELS_MACRO(STATIC, a, b, n)        \
+STATIC void a(uint8_t *block, const uint8_t *pixels, \
               ptrdiff_t line_size, int h)            \
 {                                                    \
     b(block, pixels, line_size, h);                  \
     b(block + n, pixels + n, line_size, h);          \
 }
 
-#define BYTE_VEC32(c) ((c) * 0x01010101UL)
-#define BYTE_VEC64(c) ((c) * 0x0001000100010001UL)
+#define CALL_2X_PIXELS(a, b, n) CALL_2X_PIXELS_MACRO(static, a, b, n)
+#define CALL_2X_PIXELS_EXPORT(a, b, n) CALL_2X_PIXELS_MACRO(, a, b, n)
 
-static inline uint32_t rnd_avg32(uint32_t a, uint32_t b)
-{
-    return (a | b) - (((a ^ b) & ~BYTE_VEC32(0x01)) >> 1);
-}
-
-static inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b)
-{
-    return (a & b) + (((a ^ b) & ~BYTE_VEC32(0x01)) >> 1);
-}
-
-static inline uint64_t rnd_avg64(uint64_t a, uint64_t b)
-{
-    return (a | b) - (((a ^ b) & ~BYTE_VEC64(0x01)) >> 1);
-}
-
-static inline uint64_t no_rnd_avg64(uint64_t a, uint64_t b)
-{
-    return (a & b) + (((a ^ b) & ~BYTE_VEC64(0x01)) >> 1);
-}
-
-#endif /* AVCODEC_RND_AVG_H */
+#endif /* AVCODEC_PIXELS_H */
diff --git a/libavcodec/rnd_avg.h b/libavcodec/rnd_avg.h
index 8feac28..412cda5 100644
--- a/libavcodec/rnd_avg.h
+++ b/libavcodec/rnd_avg.h
@@ -22,14 +22,6 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#define CALL_2X_PIXELS(a, b, n)                      \
-static void a(uint8_t *block, const uint8_t *pixels, \
-              ptrdiff_t line_size, int h)            \
-{                                                    \
-    b(block, pixels, line_size, h);                  \
-    b(block + n, pixels + n, line_size, h);          \
-}
-
 #define BYTE_VEC32(c) ((c) * 0x01010101UL)
 #define BYTE_VEC64(c) ((c) * 0x0001000100010001UL)
 
diff --git a/libavcodec/x86/dsputil_init.c b/libavcodec/x86/dsputil_init.c
index 288d1af..7b52874 100644
--- a/libavcodec/x86/dsputil_init.c
+++ b/libavcodec/x86/dsputil_init.c
@@ -24,6 +24,7 @@
 #include "libavutil/x86/cpu.h"
 #include "libavcodec/avcodec.h"
 #include "libavcodec/dsputil.h"
+#include "libavcodec/pixels.h"
 #include "libavcodec/simple_idct.h"
 #include "libavcodec/version.h"
 #include "dsputil_x86.h"
@@ -107,8 +108,8 @@ void ff_vector_clip_int32_sse4(int32_t *dst, const int32_t 
*src,
 
 #if HAVE_YASM
 
-PIXELS16(static, ff_avg, , , _mmxext)
-PIXELS16(static, ff_put, , , _mmxext)
+CALL_2X_PIXELS(ff_avg_pixels16_mmxext, ff_avg_pixels8_mmxext, 8)
+CALL_2X_PIXELS(ff_put_pixels16_mmxext, ff_put_pixels8_mmxext, 8)
 
 #define QPEL_OP(OPNAME, RND, MMX)                                       \
 static void OPNAME ## qpel8_mc00_ ## MMX(uint8_t *dst, uint8_t *src,    \
diff --git a/libavcodec/x86/dsputil_x86.h b/libavcodec/x86/dsputil_x86.h
index 41562e7..ad41e69 100644
--- a/libavcodec/x86/dsputil_x86.h
+++ b/libavcodec/x86/dsputil_x86.h
@@ -91,16 +91,4 @@ void ff_put_pixels8_xy2_mmx(uint8_t *block, const uint8_t 
*pixels,
 void ff_put_pixels16_xy2_mmx(uint8_t *block, const uint8_t *pixels,
                              ptrdiff_t line_size, int h);
 
-#define PIXELS16(STATIC, PFX1, PFX2, TYPE, CPUEXT)                      \
-STATIC void PFX1 ## _pixels16 ## TYPE ## CPUEXT(uint8_t *block,         \
-                                                const uint8_t *pixels,  \
-                                                ptrdiff_t line_size,    \
-                                                int h)                  \
-{                                                                       \
-    PFX2 ## PFX1 ## _pixels8 ## TYPE ## CPUEXT(block, pixels,           \
-                                               line_size, h);           \
-    PFX2 ## PFX1 ## _pixels8 ## TYPE ## CPUEXT(block + 8, pixels + 8,   \
-                                               line_size, h);           \
-}
-
 #endif /* AVCODEC_X86_DSPUTIL_X86_H */
diff --git a/libavcodec/x86/h264_qpel.c b/libavcodec/x86/h264_qpel.c
index 90857ce..8e067e3 100644
--- a/libavcodec/x86/h264_qpel.c
+++ b/libavcodec/x86/h264_qpel.c
@@ -25,6 +25,7 @@
 #include "libavutil/x86/cpu.h"
 #include "libavcodec/h264qpel.h"
 #include "libavcodec/mpegvideo.h"
+#include "libavcodec/pixels.h"
 #include "dsputil_x86.h"
 
 #if HAVE_YASM
@@ -49,8 +50,8 @@ void ff_avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, 
uint8_t *src2,
 #define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext
 #define ff_avg_pixels16_l2_sse2 ff_avg_pixels16_l2_mmxext
 
-PIXELS16(static, ff_avg, , , _mmxext)
-PIXELS16(static, ff_put, , , _mmxext)
+CALL_2X_PIXELS(ff_avg_pixels16_mmxext, ff_avg_pixels8_mmxext, 8)
+CALL_2X_PIXELS(ff_put_pixels16_mmxext, ff_avg_pixels8_mmxext, 8)
 
 #define DEF_QPEL(OPNAME)\
 void ff_ ## OPNAME ## _h264_qpel4_h_lowpass_mmxext(uint8_t *dst, uint8_t *src, 
int dstStride, int srcStride);\
diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c
index 83d53de..9be9fcc 100644
--- a/libavcodec/x86/hpeldsp_init.c
+++ b/libavcodec/x86/hpeldsp_init.c
@@ -28,6 +28,7 @@
 #include "libavutil/x86/cpu.h"
 #include "libavcodec/avcodec.h"
 #include "libavcodec/hpeldsp.h"
+#include "libavcodec/pixels.h"
 #include "dsputil_x86.h"
 
 void ff_put_pixels8_x2_mmxext(uint8_t *block, const uint8_t *pixels,
@@ -109,11 +110,11 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const 
uint8_t *pixels,
 #undef PAVGB
 #undef STATIC
 
-PIXELS16(static, avg_no_rnd, , _y2, _mmx)
-PIXELS16(static, put_no_rnd, , _y2, _mmx)
+CALL_2X_PIXELS(avg_no_rnd_pixels16_y2_mmx, avg_no_rnd_pixels8_y2_mmx, 8)
+CALL_2X_PIXELS(put_no_rnd_pixels16_y2_mmx, put_no_rnd_pixels8_y2_mmx, 8)
 
-PIXELS16(static, avg_no_rnd, , _xy2, _mmx)
-PIXELS16(static, put_no_rnd, , _xy2, _mmx)
+CALL_2X_PIXELS(avg_no_rnd_pixels16_xy2_mmx, avg_no_rnd_pixels8_xy2_mmx, 8)
+CALL_2X_PIXELS(put_no_rnd_pixels16_xy2_mmx, put_no_rnd_pixels8_xy2_mmx, 8)
 
 /***********************************/
 /* MMX rounding */
@@ -130,22 +131,29 @@ PIXELS16(static, put_no_rnd, , _xy2, _mmx)
 #undef PAVGBP
 #undef PAVGB
 
-PIXELS16(static, avg, , _y2, _mmx)
-PIXELS16(static, put, , _y2, _mmx)
+CALL_2X_PIXELS(avg_pixels16_y2_mmx, avg_pixels8_y2_mmx, 8)
+CALL_2X_PIXELS(put_pixels16_y2_mmx, put_pixels8_y2_mmx, 8)
 
 #endif /* HAVE_INLINE_ASM */
 
 
 #if HAVE_YASM
 
-#define HPELDSP_AVG_PIXELS16(CPUEXT)                \
-    PIXELS16(static, put_no_rnd, ff_,  _x2, CPUEXT) \
-    PIXELS16(static, put,        ff_,  _y2, CPUEXT) \
-    PIXELS16(static, put_no_rnd, ff_,  _y2, CPUEXT) \
-    PIXELS16(static, avg,        ff_,     , CPUEXT) \
-    PIXELS16(static, avg,        ff_,  _x2, CPUEXT) \
-    PIXELS16(static, avg,        ff_,  _y2, CPUEXT) \
-    PIXELS16(static, avg,        ff_, _xy2, CPUEXT)
+#define HPELDSP_AVG_PIXELS16(CPUEXT)                      \
+    CALL_2X_PIXELS(put_no_rnd_pixels16_x2 ## CPUEXT,      \
+                   ff_put_no_rnd_pixels8_x2 ## CPUEXT, 8) \
+    CALL_2X_PIXELS(put_pixels16_y2 ## CPUEXT,             \
+                   ff_put_pixels8_y2 ## CPUEXT, 8)        \
+    CALL_2X_PIXELS(put_no_rnd_pixels16_y2 ## CPUEXT,      \
+                   ff_put_no_rnd_pixels8_y2 ## CPUEXT, 8) \
+    CALL_2X_PIXELS(avg_pixels16 ## CPUEXT,                \
+                   ff_avg_pixels8 ## CPUEXT, 8)           \
+    CALL_2X_PIXELS(avg_pixels16_x2 ## CPUEXT,             \
+                   ff_avg_pixels8_x2 ## CPUEXT, 8)        \
+    CALL_2X_PIXELS(avg_pixels16_y2 ## CPUEXT,             \
+                   ff_avg_pixels8_y2 ## CPUEXT, 8)        \
+    CALL_2X_PIXELS(avg_pixels16_xy2 ## CPUEXT,            \
+                   ff_avg_pixels8_xy2 ## CPUEXT, 8)
 
 HPELDSP_AVG_PIXELS16(_3dnow)
 HPELDSP_AVG_PIXELS16(_mmxext)
diff --git a/libavcodec/x86/rnd_mmx.c b/libavcodec/x86/rnd_mmx.c
index f5239fc..720d88f 100644
--- a/libavcodec/x86/rnd_mmx.c
+++ b/libavcodec/x86/rnd_mmx.c
@@ -17,6 +17,7 @@
  */
 
 #include "config.h"
+#include "libavcodec/pixels.h"
 #include "dsputil_x86.h"
 #include "inline_asm.h"
 
@@ -30,7 +31,7 @@
 
 #include "rnd_template.c"
 
-PIXELS16(, ff_avg, , _xy2, _mmx)
-PIXELS16(, ff_put, , _xy2, _mmx)
+CALL_2X_PIXELS_EXPORT(ff_avg_pixels16_xy2_mmx, ff_avg_pixels8_xy2_mmx, 8)
+CALL_2X_PIXELS_EXPORT(ff_put_pixels16_xy2_mmx, ff_put_pixels8_xy2_mmx, 8)
 
 #endif /* HAVE_INLINE_ASM */
-- 
1.8.3.2

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to