mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-03 05:10:03 +02:00
avcodec/x86/hevcdsp_init: fix SSE4 checks
Found-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
7be230b5fa
commit
fc7d0d8201
@ -346,43 +346,31 @@ void ff_hevcdsp_init_x86(HEVCDSPContext *c, const int bit_depth)
|
||||
int mm_flags = av_get_cpu_flags();
|
||||
|
||||
if (bit_depth == 8) {
|
||||
if (EXTERNAL_MMX(mm_flags)) {
|
||||
if (EXTERNAL_SSE4(mm_flags) && ARCH_X86_64) {
|
||||
|
||||
if (EXTERNAL_MMXEXT(mm_flags)) {
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 8);
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 8);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 8);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 8);
|
||||
|
||||
if (EXTERNAL_SSSE3(mm_flags) && ARCH_X86_64) {
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 8);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 8);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 8);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 8);
|
||||
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 8);
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 8);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 8);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 8);
|
||||
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 8);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 8);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 8);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 8);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (bit_depth == 10) {
|
||||
if (EXTERNAL_MMX(mm_flags)) {
|
||||
if (EXTERNAL_MMXEXT(mm_flags) && ARCH_X86_64) {
|
||||
if (EXTERNAL_SSE4(mm_flags) && ARCH_X86_64) {
|
||||
|
||||
if (EXTERNAL_SSSE3(mm_flags)) {
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 10);
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 10);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 10);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 10);
|
||||
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 10);
|
||||
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 10);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 10);
|
||||
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 10);
|
||||
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 10);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 10);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 10);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 10);
|
||||
}
|
||||
|
||||
}
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 10);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 10);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 10);
|
||||
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user