From 5716aec3f9e47d17d55a44f991381f8719812645 Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Mon, 4 Jan 2010 09:19:32 +0000 Subject: [PATCH] Fix XvMC. XvMCCreateBlocks() may not allocate 16-byte aligned blocks, so we can't use SSE-optimized routines. Originally committed as revision 21011 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/x86/dsputil_mmx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c index b9d2ad7513..abfebfbff5 100644 --- a/libavcodec/x86/dsputil_mmx.c +++ b/libavcodec/x86/dsputil_mmx.c @@ -2596,7 +2596,9 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx) c->add_pixels_clamped = add_pixels_clamped_mmx; c->clear_block = clear_block_mmx; c->clear_blocks = clear_blocks_mmx; - if (mm_flags & FF_MM_SSE){ + if ((mm_flags & FF_MM_SSE) && + !(CONFIG_MPEG_XVMC_DECODER && avctx->xvmc_acceleration > 1)){ + /* XvMCCreateBlocks() may not allocate 16-byte aligned blocks */ c->clear_block = clear_block_sse; c->clear_blocks = clear_blocks_sse; }