mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 06:08:21 +01:00
dsp/upsampling*.c: rework WEBP_USE_<arch> ifdef
add a dummy init rather than repeating the '#ifdef WEBP_USE_...' pattern. Change-Id: I3c753915eefe900987c9720733efb720ebe6bfa7
This commit is contained in:
parent
808094228c
commit
6584d398eb
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
#if defined(WEBP_USE_MIPS_DSP_R2)
|
#if defined(WEBP_USE_MIPS_DSP_R2)
|
||||||
|
|
||||||
#include "./yuv.h"
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include "./yuv.h"
|
||||||
|
|
||||||
#if !defined(WEBP_YUV_USE_TABLE)
|
#if !defined(WEBP_YUV_USE_TABLE)
|
||||||
|
|
||||||
@ -211,15 +211,12 @@ UPSAMPLE_FUNC(UpsampleRgb565LinePair, YuvToRgb565, 2)
|
|||||||
#undef LOAD_UV
|
#undef LOAD_UV
|
||||||
#undef UPSAMPLE_FUNC
|
#undef UPSAMPLE_FUNC
|
||||||
|
|
||||||
#endif // FANCY_UPSAMPLING
|
//------------------------------------------------------------------------------
|
||||||
|
// Entry point
|
||||||
#endif // WEBP_USE_MIPS_DSP_R2
|
|
||||||
|
|
||||||
extern void WebPInitUpsamplersMIPSdspR2(void);
|
extern void WebPInitUpsamplersMIPSdspR2(void);
|
||||||
|
|
||||||
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersMIPSdspR2(void) {
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersMIPSdspR2(void) {
|
||||||
#if defined(WEBP_USE_MIPS_DSP_R2)
|
|
||||||
#ifdef FANCY_UPSAMPLING
|
|
||||||
WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair;
|
WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair;
|
||||||
WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair;
|
WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair;
|
||||||
WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair;
|
WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair;
|
||||||
@ -231,15 +228,13 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersMIPSdspR2(void) {
|
|||||||
WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair;
|
WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair;
|
||||||
WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair;
|
WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair;
|
||||||
WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair;
|
WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair;
|
||||||
#endif // FANCY_UPSAMPLING
|
|
||||||
#endif // WEBP_USE_MIPS_DSP_R2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // FANCY_UPSAMPLING
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// YUV444 converter
|
// YUV444 converter
|
||||||
|
|
||||||
#if defined(WEBP_USE_MIPS_DSP_R2)
|
|
||||||
|
|
||||||
#define YUV444_FUNC(FUNC_NAME, FUNC, XSTEP) \
|
#define YUV444_FUNC(FUNC_NAME, FUNC, XSTEP) \
|
||||||
static void FUNC_NAME(const uint8_t* y, const uint8_t* u, const uint8_t* v, \
|
static void FUNC_NAME(const uint8_t* y, const uint8_t* u, const uint8_t* v, \
|
||||||
uint8_t* dst, int len) { \
|
uint8_t* dst, int len) { \
|
||||||
@ -257,12 +252,12 @@ YUV444_FUNC(Yuv444ToRgb565, YuvToRgb565, 2)
|
|||||||
|
|
||||||
#undef YUV444_FUNC
|
#undef YUV444_FUNC
|
||||||
|
|
||||||
#endif // WEBP_USE_MIPS_DSP_R2
|
//------------------------------------------------------------------------------
|
||||||
|
// Entry point
|
||||||
|
|
||||||
extern void WebPInitYUV444ConvertersMIPSdspR2(void);
|
extern void WebPInitYUV444ConvertersMIPSdspR2(void);
|
||||||
|
|
||||||
WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersMIPSdspR2(void) {
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersMIPSdspR2(void) {
|
||||||
#if defined(WEBP_USE_MIPS_DSP_R2)
|
|
||||||
WebPYUV444Converters[MODE_RGB] = Yuv444ToRgb;
|
WebPYUV444Converters[MODE_RGB] = Yuv444ToRgb;
|
||||||
WebPYUV444Converters[MODE_RGBA] = Yuv444ToRgba;
|
WebPYUV444Converters[MODE_RGBA] = Yuv444ToRgba;
|
||||||
WebPYUV444Converters[MODE_BGR] = Yuv444ToBgr;
|
WebPYUV444Converters[MODE_BGR] = Yuv444ToBgr;
|
||||||
@ -274,7 +269,16 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersMIPSdspR2(void) {
|
|||||||
WebPYUV444Converters[MODE_bgrA] = Yuv444ToBgra;
|
WebPYUV444Converters[MODE_bgrA] = Yuv444ToBgra;
|
||||||
WebPYUV444Converters[MODE_Argb] = Yuv444ToArgb;
|
WebPYUV444Converters[MODE_Argb] = Yuv444ToArgb;
|
||||||
WebPYUV444Converters[MODE_rgbA_4444] = Yuv444ToRgba4444;
|
WebPYUV444Converters[MODE_rgbA_4444] = Yuv444ToRgba4444;
|
||||||
#endif // WEBP_USE_MIPS_DSP_R2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
#else // !WEBP_USE_MIPS_DSP_R2
|
||||||
|
|
||||||
|
extern void WebPInitYUV444ConvertersMIPSdspR2(void);
|
||||||
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersMIPSdspR2(void) {}
|
||||||
|
|
||||||
|
#endif // WEBP_USE_MIPS_DSP_R2
|
||||||
|
|
||||||
|
#if !(defined(FANCY_UPSAMPLING) && defined(WEBP_USE_MIPS_DSP_R2))
|
||||||
|
extern void WebPInitUpsamplersMIPSdspR2(void);
|
||||||
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersMIPSdspR2(void) {}
|
||||||
|
#endif
|
||||||
|
@ -236,32 +236,27 @@ NEON_UPSAMPLE_FUNC(UpsampleBgrLinePair, Bgr, 3)
|
|||||||
NEON_UPSAMPLE_FUNC(UpsampleRgbaLinePair, Rgba, 4)
|
NEON_UPSAMPLE_FUNC(UpsampleRgbaLinePair, Rgba, 4)
|
||||||
NEON_UPSAMPLE_FUNC(UpsampleBgraLinePair, Bgra, 4)
|
NEON_UPSAMPLE_FUNC(UpsampleBgraLinePair, Bgra, 4)
|
||||||
|
|
||||||
#endif // FANCY_UPSAMPLING
|
|
||||||
|
|
||||||
#endif // WEBP_USE_NEON
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
// Entry point
|
||||||
extern void WebPInitUpsamplersNEON(void);
|
|
||||||
|
|
||||||
#ifdef FANCY_UPSAMPLING
|
|
||||||
|
|
||||||
extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */];
|
extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */];
|
||||||
|
|
||||||
|
extern void WebPInitUpsamplersNEON(void);
|
||||||
|
|
||||||
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersNEON(void) {
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersNEON(void) {
|
||||||
#if defined(WEBP_USE_NEON)
|
|
||||||
WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair;
|
WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair;
|
||||||
WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair;
|
WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair;
|
||||||
WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair;
|
WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair;
|
||||||
WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair;
|
WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair;
|
||||||
WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair;
|
WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair;
|
||||||
WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair;
|
WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair;
|
||||||
#endif // WEBP_USE_NEON
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
// this empty function is to avoid an empty .o
|
|
||||||
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersNEON(void) {}
|
|
||||||
|
|
||||||
#endif // FANCY_UPSAMPLING
|
#endif // FANCY_UPSAMPLING
|
||||||
|
|
||||||
|
#endif // WEBP_USE_NEON
|
||||||
|
|
||||||
|
#if !(defined(FANCY_UPSAMPLING) && defined(WEBP_USE_NEON))
|
||||||
|
extern void WebPInitUpsamplersNEON(void);
|
||||||
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersNEON(void) {}
|
||||||
|
#endif
|
||||||
|
@ -182,20 +182,14 @@ SSE2_UPSAMPLE_FUNC(UpsampleBgraLinePair, VP8YuvToBgra, 4)
|
|||||||
#undef CONVERT2RGB_32
|
#undef CONVERT2RGB_32
|
||||||
#undef SSE2_UPSAMPLE_FUNC
|
#undef SSE2_UPSAMPLE_FUNC
|
||||||
|
|
||||||
#endif // FANCY_UPSAMPLING
|
|
||||||
|
|
||||||
#endif // WEBP_USE_SSE2
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
// Entry point
|
||||||
extern void WebPInitUpsamplersSSE2(void);
|
|
||||||
|
|
||||||
#ifdef FANCY_UPSAMPLING
|
|
||||||
|
|
||||||
extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */];
|
extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */];
|
||||||
|
|
||||||
|
extern void WebPInitUpsamplersSSE2(void);
|
||||||
|
|
||||||
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) {
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) {
|
||||||
#if defined(WEBP_USE_SSE2)
|
|
||||||
VP8YUVInitSSE2();
|
VP8YUVInitSSE2();
|
||||||
WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair;
|
WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair;
|
||||||
WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair;
|
WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair;
|
||||||
@ -203,12 +197,13 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) {
|
|||||||
WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair;
|
WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair;
|
||||||
WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair;
|
WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair;
|
||||||
WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair;
|
WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair;
|
||||||
#endif // WEBP_USE_SSE2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
// this empty function is to avoid an empty .o
|
|
||||||
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) {}
|
|
||||||
|
|
||||||
#endif // FANCY_UPSAMPLING
|
#endif // FANCY_UPSAMPLING
|
||||||
|
|
||||||
|
#endif // WEBP_USE_SSE2
|
||||||
|
|
||||||
|
#if !(defined(FANCY_UPSAMPLING) && defined(WEBP_USE_SSE2))
|
||||||
|
extern void WebPInitUpsamplersSSE2(void);
|
||||||
|
WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) {}
|
||||||
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user