mpegaudio: call ff_mpegaudiodec_init_mmx() only from float decoder

The mmx code is floating-point only, and this function does not know
from which decoder it is called.  Without this change, the integer
decoder only "works" because the size of the context struct is smaller
in this case, and the mmx init function writes the function pointer
outside the allocated context.

Fixes issue 2054.

Originally committed as revision 23949 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2010-07-01 23:21:17 +00:00
parent 525fcb2798
commit 35d597d556

View File

@ -322,7 +322,7 @@ static av_cold int decode_init(AVCodecContext * avctx)
s->avctx = avctx; s->avctx = avctx;
s->apply_window_mp3 = apply_window_mp3_c; s->apply_window_mp3 = apply_window_mp3_c;
#if HAVE_MMX #if HAVE_MMX && CONFIG_FLOAT
ff_mpegaudiodec_init_mmx(s); ff_mpegaudiodec_init_mmx(s);
#endif #endif
if (HAVE_ALTIVEC && CONFIG_FLOAT) ff_mpegaudiodec_init_altivec(s); if (HAVE_ALTIVEC && CONFIG_FLOAT) ff_mpegaudiodec_init_altivec(s);