On Fri, 14 Mar 2014 05:42:24 -0700, Diego Biurrun <di...@biurrun.de> wrote:
> ---
>  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)

This is now much less readable

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

Reply via email to