summaryrefslogtreecommitdiff
path: root/libavcodec/x86
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/x86')
-rw-r--r--libavcodec/x86/xvididct_init.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/x86/xvididct_init.c b/libavcodec/x86/xvididct_init.c
index ce5f240aee..e4f7345795 100644
--- a/libavcodec/x86/xvididct_init.c
+++ b/libavcodec/x86/xvididct_init.c
@@ -26,10 +26,16 @@
#include "idctdsp.h"
#include "xvididct.h"
-av_cold void ff_xvid_idct_init_x86(IDCTDSPContext *c)
+av_cold void ff_xvid_idct_init_x86(IDCTDSPContext *c, AVCodecContext *avctx,
+ unsigned high_bit_depth)
{
int cpu_flags = av_get_cpu_flags();
+ if (high_bit_depth ||
+ !(avctx->idct_algo == FF_IDCT_AUTO ||
+ avctx->idct_algo == FF_IDCT_XVID))
+ return;
+
if (INLINE_MMX(cpu_flags)) {
c->idct_put = ff_xvid_idct_mmx_put;
c->idct_add = ff_xvid_idct_mmx_add;