On Fri, 14 Mar 2014 05:42:24 -0700, Diego Biurrun <[email protected]> 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 [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
