diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-02-02 13:01:45 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-02 13:18:01 +0100 |
commit | 0d13a7b786b916830b4c58e8bdd4c8203df725ba (patch) | |
tree | adf9d1cb96ffdaa9ab331c177395d45f9c5f277d /libavfilter/vf_hqdn3d.c | |
parent | b45a3e167f497d82effbf8ada453ea47b0ee21da (diff) | |
parent | 76d90125cdc09a029f7fe87f1c272aaa1a8a808e (diff) | |
download | ffmpeg-0d13a7b786b916830b4c58e8bdd4c8203df725ba.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
vf_hqdn3d: x86: Add proper arch optimization initialization
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_hqdn3d.c')
-rw-r--r-- | libavfilter/vf_hqdn3d.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c index b30f8ae8ad..4381586bec 100644 --- a/libavfilter/vf_hqdn3d.c +++ b/libavfilter/vf_hqdn3d.c @@ -26,6 +26,7 @@ * libmpcodecs/vf_hqdn3d.c. */ +#include "config.h" #include "libavutil/common.h" #include "libavutil/pixdesc.h" #include "libavutil/intreadwrite.h" @@ -33,21 +34,7 @@ #include "formats.h" #include "internal.h" #include "video.h" - -typedef struct { - int16_t *coefs[4]; - uint16_t *line; - uint16_t *frame_prev[3]; - double strength[4]; - int hsub, vsub; - int depth; - void (*denoise_row[17])(uint8_t *src, uint8_t *dst, uint16_t *line_ant, uint16_t *frame_ant, ptrdiff_t w, int16_t *spatial, int16_t *temporal); -} HQDN3DContext; - -void ff_hqdn3d_row_8_x86(uint8_t *src, uint8_t *dst, uint16_t *line_ant, uint16_t *frame_ant, ptrdiff_t w, int16_t *spatial, int16_t *temporal); -void ff_hqdn3d_row_9_x86(uint8_t *src, uint8_t *dst, uint16_t *line_ant, uint16_t *frame_ant, ptrdiff_t w, int16_t *spatial, int16_t *temporal); -void ff_hqdn3d_row_10_x86(uint8_t *src, uint8_t *dst, uint16_t *line_ant, uint16_t *frame_ant, ptrdiff_t w, int16_t *spatial, int16_t *temporal); -void ff_hqdn3d_row_16_x86(uint8_t *src, uint8_t *dst, uint16_t *line_ant, uint16_t *frame_ant, ptrdiff_t w, int16_t *spatial, int16_t *temporal); +#include "vf_hqdn3d.h" #define LUT_BITS (depth==16 ? 8 : 4) #define LOAD(x) (((depth==8 ? src[x] : AV_RN16A(src+(x)*2)) << (16-depth)) + (((1<<(16-depth))-1)>>1)) @@ -311,12 +298,8 @@ static int config_input(AVFilterLink *inlink) return AVERROR(ENOMEM); } -#if HAVE_YASM - hqdn3d->denoise_row[ 8] = ff_hqdn3d_row_8_x86; - hqdn3d->denoise_row[ 9] = ff_hqdn3d_row_9_x86; - hqdn3d->denoise_row[10] = ff_hqdn3d_row_10_x86; - hqdn3d->denoise_row[16] = ff_hqdn3d_row_16_x86; -#endif + if (ARCH_X86) + ff_hqdn3d_init_x86(hqdn3d); return 0; } |