diff options
author | Zhao Zhili <zhilizhao@tencent.com> | 2024-09-06 16:48:20 +0800 |
---|---|---|
committer | Nuo Mi <nuomi2021@gmail.com> | 2024-09-14 16:36:34 +0800 |
commit | 46f07ce7d1e646ac98ba31897c2a76afc979bdf9 (patch) | |
tree | 9502faeddb1c59766666f992237f026652ef5977 | |
parent | 8beafb56564c3876aa4491980fb7a823c71e370f (diff) | |
download | ffmpeg-46f07ce7d1e646ac98ba31897c2a76afc979bdf9.tar.gz |
aarch64/hevc: Move epel/qpel to h26x directory
So vvc can reuse the implementation.
-rw-r--r-- | libavcodec/aarch64/Makefile | 4 | ||||
-rw-r--r-- | libavcodec/aarch64/h26x/dsp.h | 198 | ||||
-rw-r--r-- | libavcodec/aarch64/h26x/epel_neon.S (renamed from libavcodec/aarch64/hevcdsp_epel_neon.S) | 0 | ||||
-rw-r--r-- | libavcodec/aarch64/h26x/qpel_neon.S (renamed from libavcodec/aarch64/hevcdsp_qpel_neon.S) | 0 | ||||
-rw-r--r-- | libavcodec/aarch64/hevcdsp_init_aarch64.c | 197 |
5 files changed, 200 insertions, 199 deletions
diff --git a/libavcodec/aarch64/Makefile b/libavcodec/aarch64/Makefile index a01e665b55..9affb92789 100644 --- a/libavcodec/aarch64/Makefile +++ b/libavcodec/aarch64/Makefile @@ -71,6 +71,6 @@ NEON-OBJS-$(CONFIG_VP9_DECODER) += aarch64/vp9itxfm_16bpp_neon.o \ NEON-OBJS-$(CONFIG_HEVC_DECODER) += aarch64/hevcdsp_deblock_neon.o \ aarch64/hevcdsp_idct_neon.o \ aarch64/hevcdsp_init_aarch64.o \ - aarch64/hevcdsp_qpel_neon.o \ - aarch64/hevcdsp_epel_neon.o \ + aarch64/h26x/epel_neon.o \ + aarch64/h26x/qpel_neon.o \ aarch64/h26x/sao_neon.o diff --git a/libavcodec/aarch64/h26x/dsp.h b/libavcodec/aarch64/h26x/dsp.h index d3f7a4dfe3..902286872d 100644 --- a/libavcodec/aarch64/h26x/dsp.h +++ b/libavcodec/aarch64/h26x/dsp.h @@ -37,4 +37,202 @@ void ff_vvc_sao_edge_filter_16x16_8_neon(uint8_t *dst, const uint8_t *src, ptrdi const int16_t *sao_offset_val, int eo, int width, int height); void ff_vvc_sao_edge_filter_8x8_8_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height); + +#define NEON8_FNPROTO_PARTIAL_6(fn, args, ext) \ + void ff_hevc_put_hevc_##fn##_h4_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##_h6_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##_h8_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##_h12_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##_h16_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##_h32_8_neon##ext args; + +NEON8_FNPROTO_PARTIAL_6(qpel, (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, + intptr_t mx, intptr_t my, int width),) + +NEON8_FNPROTO_PARTIAL_6(qpel_uni, (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, + ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width),) + +NEON8_FNPROTO_PARTIAL_6(qpel_bi, (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, + ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t + mx, intptr_t my, int width),) + +#define NEON8_FNPROTO(fn, args, ext) \ + void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##6_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##12_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##24_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##48_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##64_8_neon##ext args + +#define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \ + void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##64_8_neon##ext args + +#define NEON8_FNPROTO_PARTIAL_5(fn, args, ext) \ + void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \ + void ff_hevc_put_hevc_##fn##64_8_neon##ext args + +NEON8_FNPROTO(pel_pixels, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(pel_bi_pixels, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_bi_h, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_bi_v, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(epel_v, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(pel_uni_pixels, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(pel_uni_w_pixels, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_uni_v, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(epel_uni_w_v, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO_PARTIAL_4(qpel_uni_w_v, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_h, (int16_t *dst, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_hv, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width), ); + +NEON8_FNPROTO(epel_h, (int16_t *dst, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(epel_hv, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(qpel_h, (int16_t *dst, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(qpel_v, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(qpel_hv, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(qpel_hv, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(qpel_uni_v, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO_PARTIAL_5(qpel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO_PARTIAL_5(qpel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, + const uint8_t *_src, ptrdiff_t _srcstride, + int height, int denom, int wx, int ox, + intptr_t mx, intptr_t my, int width), _i8mm); + +NEON8_FNPROTO(qpel_bi_v, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width),); + +NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + #endif diff --git a/libavcodec/aarch64/hevcdsp_epel_neon.S b/libavcodec/aarch64/h26x/epel_neon.S index 378b0f7fb2..378b0f7fb2 100644 --- a/libavcodec/aarch64/hevcdsp_epel_neon.S +++ b/libavcodec/aarch64/h26x/epel_neon.S diff --git a/libavcodec/aarch64/hevcdsp_qpel_neon.S b/libavcodec/aarch64/h26x/qpel_neon.S index 8ddaa32b70..8ddaa32b70 100644 --- a/libavcodec/aarch64/hevcdsp_qpel_neon.S +++ b/libavcodec/aarch64/h26x/qpel_neon.S diff --git a/libavcodec/aarch64/hevcdsp_init_aarch64.c b/libavcodec/aarch64/hevcdsp_init_aarch64.c index 26bbc8750f..386d7c59c8 100644 --- a/libavcodec/aarch64/hevcdsp_init_aarch64.c +++ b/libavcodec/aarch64/hevcdsp_init_aarch64.c @@ -93,203 +93,6 @@ void ff_hevc_idct_16x16_dc_10_neon(int16_t *coeffs); void ff_hevc_idct_32x32_dc_10_neon(int16_t *coeffs); void ff_hevc_transform_luma_4x4_neon_8(int16_t *coeffs); -#define NEON8_FNPROTO_PARTIAL_6(fn, args, ext) \ - void ff_hevc_put_hevc_##fn##_h4_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##_h6_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##_h8_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##_h12_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##_h16_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##_h32_8_neon##ext args; - -NEON8_FNPROTO_PARTIAL_6(qpel, (int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, - intptr_t mx, intptr_t my, int width),) - -NEON8_FNPROTO_PARTIAL_6(qpel_uni, (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, - ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width),) - -NEON8_FNPROTO_PARTIAL_6(qpel_bi, (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, - ptrdiff_t _srcstride, const int16_t *src2, int height, intptr_t - mx, intptr_t my, int width),) - -#define NEON8_FNPROTO(fn, args, ext) \ - void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##6_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##12_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##24_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##48_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##64_8_neon##ext args - -#define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \ - void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##64_8_neon##ext args - -#define NEON8_FNPROTO_PARTIAL_5(fn, args, ext) \ - void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \ - void ff_hevc_put_hevc_##fn##64_8_neon##ext args - -NEON8_FNPROTO(pel_pixels, (int16_t *dst, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(pel_bi_pixels, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *_src, ptrdiff_t _srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_bi_h, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_bi_v, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(epel_v, (int16_t *dst, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(pel_uni_pixels, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(pel_uni_w_pixels, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_uni_v, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(epel_uni_w_v, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO_PARTIAL_4(qpel_uni_w_v, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_h, (int16_t *dst, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_hv, (int16_t *dst, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width), ); - -NEON8_FNPROTO(epel_h, (int16_t *dst, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(epel_hv, (int16_t *dst, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(qpel_h, (int16_t *dst, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(qpel_v, (int16_t *dst, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(qpel_hv, (int16_t *dst, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(qpel_hv, (int16_t *dst, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(qpel_uni_v, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO_PARTIAL_5(qpel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO_PARTIAL_5(qpel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride, - const uint8_t *_src, ptrdiff_t _srcstride, - int height, int denom, int wx, int ox, - intptr_t mx, intptr_t my, int width), _i8mm); - -NEON8_FNPROTO(qpel_bi_v, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width),); - -NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, - const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, - int height, intptr_t mx, intptr_t my, int width), _i8mm); - #define NEON8_FNASSIGN(member, v, h, fn, ext) \ member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \ member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \ |