aboutsummaryrefslogtreecommitdiff
path: root/src/dsp/lossless.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dsp/lossless.c')
-rw-r--r--src/dsp/lossless.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/dsp/lossless.c b/src/dsp/lossless.c
index a1bf3584..ee334bce 100644
--- a/src/dsp/lossless.c
+++ b/src/dsp/lossless.c
@@ -1590,7 +1590,12 @@ extern void VP8LDspInitSSE2(void);
extern void VP8LDspInitNEON(void);
extern void VP8LDspInitMIPS32(void);
+static volatile VP8CPUInfo lossless_last_cpuinfo_used =
+ (VP8CPUInfo)&lossless_last_cpuinfo_used;
+
void VP8LDspInit(void) {
+ if (lossless_last_cpuinfo_used == VP8GetCPUInfo) return;
+
memcpy(VP8LPredictors, kPredictorsC, sizeof(VP8LPredictors));
VP8LSubtractGreenFromBlueAndRed = VP8LSubtractGreenFromBlueAndRed_C;
@@ -1634,6 +1639,7 @@ void VP8LDspInit(void) {
}
#endif
}
+ lossless_last_cpuinfo_used = VP8GetCPUInfo;
}
//------------------------------------------------------------------------------