mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-26 13:48:21 +01:00
initialize pointers to function within VP8DspInit()
makes testing easier, allowing a reset to C-version Change-Id: I707d8338fedff4ae993e52eefe730c236ca3dcb5
This commit is contained in:
parent
d21b479581
commit
3cf2030653
@ -133,12 +133,6 @@ static void TransformDCUV(const int16_t* in, uint8_t* dst) {
|
||||
|
||||
#undef STORE
|
||||
|
||||
// default C implementations:
|
||||
VP8Idct2 VP8Transform = TransformTwo;
|
||||
VP8Idct VP8TransformUV = TransformUV;
|
||||
VP8Idct VP8TransformDC = TransformDC;
|
||||
VP8Idct VP8TransformDCUV = TransformDCUV;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Paragraph 14.3
|
||||
|
||||
@ -670,22 +664,6 @@ static void HFilter8i(uint8_t* u, uint8_t* v, int stride,
|
||||
FilterLoop24(v + 4, 1, stride, 8, thresh, ithresh, hev_thresh);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void (*VP8VFilter16)(uint8_t*, int, int, int, int) = VFilter16;
|
||||
void (*VP8HFilter16)(uint8_t*, int, int, int, int) = HFilter16;
|
||||
void (*VP8VFilter8)(uint8_t*, uint8_t*, int, int, int, int) = VFilter8;
|
||||
void (*VP8HFilter8)(uint8_t*, uint8_t*, int, int, int, int) = HFilter8;
|
||||
void (*VP8VFilter16i)(uint8_t*, int, int, int, int) = VFilter16i;
|
||||
void (*VP8HFilter16i)(uint8_t*, int, int, int, int) = HFilter16i;
|
||||
void (*VP8VFilter8i)(uint8_t*, uint8_t*, int, int, int, int) = VFilter8i;
|
||||
void (*VP8HFilter8i)(uint8_t*, uint8_t*, int, int, int, int) = HFilter8i;
|
||||
|
||||
void (*VP8SimpleVFilter16)(uint8_t*, int, int) = SimpleVFilter16;
|
||||
void (*VP8SimpleHFilter16)(uint8_t*, int, int) = SimpleHFilter16;
|
||||
void (*VP8SimpleVFilter16i)(uint8_t*, int, int) = SimpleVFilter16i;
|
||||
void (*VP8SimpleHFilter16i)(uint8_t*, int, int) = SimpleHFilter16i;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// SSE2 detection.
|
||||
//
|
||||
@ -729,20 +707,53 @@ VP8CPUInfo VP8DecGetCPUInfo = NULL;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
VP8Idct2 VP8Transform;
|
||||
VP8Idct VP8TransformUV;
|
||||
VP8Idct VP8TransformDC;
|
||||
VP8Idct VP8TransformDCUV;
|
||||
|
||||
VP8LumaFilterFunc VP8VFilter16;
|
||||
VP8LumaFilterFunc VP8HFilter16;
|
||||
VP8ChromaFilterFunc VP8VFilter8;
|
||||
VP8ChromaFilterFunc VP8HFilter8;
|
||||
VP8LumaFilterFunc VP8VFilter16i;
|
||||
VP8LumaFilterFunc VP8HFilter16i;
|
||||
VP8ChromaFilterFunc VP8VFilter8i;
|
||||
VP8ChromaFilterFunc VP8HFilter8i;
|
||||
VP8SimpleFilterFunc VP8SimpleVFilter16;
|
||||
VP8SimpleFilterFunc VP8SimpleHFilter16;
|
||||
VP8SimpleFilterFunc VP8SimpleVFilter16i;
|
||||
VP8SimpleFilterFunc VP8SimpleHFilter16i;
|
||||
|
||||
extern void VP8DspInitSSE2(void);
|
||||
|
||||
void VP8DspInit(void) {
|
||||
VP8Transform = TransformTwo;
|
||||
VP8TransformUV = TransformUV;
|
||||
VP8TransformDC = TransformDC;
|
||||
VP8TransformDCUV = TransformDCUV;
|
||||
|
||||
VP8VFilter16 = VFilter16;
|
||||
VP8HFilter16 = HFilter16;
|
||||
VP8VFilter8 = VFilter8;
|
||||
VP8HFilter8 = HFilter8;
|
||||
VP8VFilter16i = VFilter16i;
|
||||
VP8HFilter16i = HFilter16i;
|
||||
VP8VFilter8i = VFilter8i;
|
||||
VP8HFilter8i = HFilter8i;
|
||||
VP8SimpleVFilter16 = SimpleVFilter16;
|
||||
VP8SimpleHFilter16 = SimpleHFilter16;
|
||||
VP8SimpleVFilter16i = SimpleVFilter16i;
|
||||
VP8SimpleHFilter16i = SimpleHFilter16i;
|
||||
|
||||
// If defined, use CPUInfo() to overwrite some pointers with faster versions.
|
||||
if (VP8DecGetCPUInfo) {
|
||||
if (VP8DecGetCPUInfo(kSSE2)) {
|
||||
#if defined(__SSE2__) || defined(_MSC_VER)
|
||||
if (VP8DecGetCPUInfo(kSSE2)) {
|
||||
VP8DspInitSSE2();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (VP8DecGetCPUInfo(kSSE3)) {
|
||||
// later we'll plug some SSE3 variant here
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
|
Loading…
Reference in New Issue
Block a user