mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
swscale/x86/rgb2rgb_template: add mmx/sse2/avx optimized deinterleaveBytes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
1de064e21e
commit
3033cd7555
@ -1924,6 +1924,32 @@ static void RENAME(interleaveBytes)(const uint8_t *src1, const uint8_t *src2, ui
|
||||
::: "memory"
|
||||
);
|
||||
}
|
||||
#endif /* !COMPILE_TEMPLATE_AMD3DNOW && !COMPILE_TEMPLATE_AVX*/
|
||||
|
||||
#if !COMPILE_TEMPLATE_AMD3DNOW && (ARCH_X86_32 || COMPILE_TEMPLATE_SSE2) && COMPILE_TEMPLATE_MMXEXT == COMPILE_TEMPLATE_SSE2
|
||||
void RENAME(ff_nv12ToUV)(uint8_t *dstU, uint8_t *dstV,
|
||||
const uint8_t *unused0,
|
||||
const uint8_t *src1,
|
||||
const uint8_t *src2,
|
||||
int w, uint32_t *unused);
|
||||
static void RENAME(deinterleaveBytes)(const uint8_t *src, uint8_t *dst1, uint8_t *dst2,
|
||||
int width, int height, int srcStride,
|
||||
int dst1Stride, int dst2Stride)
|
||||
{
|
||||
int h;
|
||||
|
||||
for (h=0; h < height; h++) {
|
||||
RENAME(ff_nv12ToUV)(dst1, dst2, NULL, src, NULL, width, NULL);
|
||||
src += srcStride;
|
||||
dst1 += dst1Stride;
|
||||
dst2 += dst2Stride;
|
||||
}
|
||||
__asm__(
|
||||
EMMS" \n\t"
|
||||
SFENCE" \n\t"
|
||||
::: "memory"
|
||||
);
|
||||
}
|
||||
#endif /* !COMPILE_TEMPLATE_AMD3DNOW */
|
||||
|
||||
#if !COMPILE_TEMPLATE_SSE2
|
||||
@ -2497,4 +2523,7 @@ static av_cold void RENAME(rgb2rgb_init)(void)
|
||||
#if !COMPILE_TEMPLATE_AMD3DNOW && !COMPILE_TEMPLATE_AVX
|
||||
interleaveBytes = RENAME(interleaveBytes);
|
||||
#endif /* !COMPILE_TEMPLATE_AMD3DNOW && !COMPILE_TEMPLATE_AVX*/
|
||||
#if !COMPILE_TEMPLATE_AMD3DNOW && (ARCH_X86_32 || COMPILE_TEMPLATE_SSE2) && COMPILE_TEMPLATE_MMXEXT == COMPILE_TEMPLATE_SSE2
|
||||
deinterleaveBytes = RENAME(deinterleaveBytes);
|
||||
#endif
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user