mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
x86/vf_v360: make remap{1,2}_8bit_line_avx2 work on x86_32
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
cb8c353032
commit
2200cf1aca
@ -285,7 +285,7 @@ void ff_v360_init(V360Context *s, int depth)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ARCH_X86_64)
|
||||
if (ARCH_X86)
|
||||
ff_v360_init_x86(s, depth);
|
||||
}
|
||||
|
||||
|
@ -18,10 +18,11 @@
|
||||
;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
;******************************************************************************
|
||||
|
||||
%if HAVE_AVX2_EXTERNAL && ARCH_X86_64
|
||||
|
||||
%include "libavutil/x86/x86util.asm"
|
||||
|
||||
%if HAVE_AVX2_EXTERNAL
|
||||
|
||||
SECTION_RODATA
|
||||
|
||||
pb_mask: db 0,4,8,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
@ -62,8 +63,11 @@ cglobal remap1_8bit_line, 6, 7, 6, dst, width, src, in_linesize, u, v, x
|
||||
INIT_YMM avx2
|
||||
cglobal remap2_8bit_line, 7, 8, 8, dst, width, src, in_linesize, u, v, ker, x
|
||||
movsxdifnidn widthq, widthd
|
||||
xor xq, xq
|
||||
movd xm0, in_linesized
|
||||
%if ARCH_X86_32
|
||||
DEFINE_ARGS dst, width, src, x, u, v, ker
|
||||
%endif
|
||||
xor xq, xq
|
||||
pcmpeqw m7, m7
|
||||
vpbroadcastd m0, xm0
|
||||
vpbroadcastd m6, [pd_255]
|
||||
@ -92,6 +96,8 @@ cglobal remap2_8bit_line, 7, 8, 8, dst, width, src, in_linesize, u, v, ker, x
|
||||
jl .loop
|
||||
RET
|
||||
|
||||
%if ARCH_X86_64
|
||||
|
||||
INIT_YMM avx2
|
||||
cglobal remap4_8bit_line, 7, 9, 11, dst, width, src, in_linesize, u, v, ker, x, y
|
||||
movsxdifnidn widthq, widthd
|
||||
@ -140,3 +146,4 @@ cglobal remap4_8bit_line, 7, 9, 11, dst, width, src, in_linesize, u, v, ker, x,
|
||||
RET
|
||||
|
||||
%endif
|
||||
%endif
|
||||
|
@ -34,7 +34,6 @@ void ff_remap4_8bit_line_avx2(uint8_t *dst, int width, const uint8_t *src, ptrdi
|
||||
|
||||
av_cold void ff_v360_init_x86(V360Context *s, int depth)
|
||||
{
|
||||
#if ARCH_X86_64
|
||||
int cpu_flags = av_get_cpu_flags();
|
||||
|
||||
if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == NEAREST && depth <= 8)
|
||||
@ -43,6 +42,7 @@ av_cold void ff_v360_init_x86(V360Context *s, int depth)
|
||||
if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == BILINEAR && depth <= 8)
|
||||
s->remap_line = ff_remap2_8bit_line_avx2;
|
||||
|
||||
#if ARCH_X86_64
|
||||
if (EXTERNAL_AVX2_FAST(cpu_flags) && (s->interp == BICUBIC ||
|
||||
s->interp == LANCZOS) && depth <= 8)
|
||||
s->remap_line = ff_remap4_8bit_line_avx2;
|
||||
|
Loading…
Reference in New Issue
Block a user