[FFmpeg-devel] [PATCH 2/2] mpegaudio: call ff_mpegaudiodec_init_mmx() only from float decoder

Vitor Sessak vitor1001
Thu Jul 1 19:01:45 CEST 2010


On 07/01/2010 06:26 PM, Mans Rullgard wrote:
> 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.
> ---
>   libavcodec/mpegaudiodec.c |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
> index 3edfc65..af5b3b8 100644
> --- a/libavcodec/mpegaudiodec.c
> +++ b/libavcodec/mpegaudiodec.c
> @@ -320,7 +320,7 @@ static av_cold int decode_init(AVCodecContext * avctx)
>
>       s->avctx = avctx;
>       s->apply_window_mp3 = apply_window_mp3_c;
> -#if HAVE_MMX
> +#if HAVE_MMX&&  CONFIG_FLOAT

I was thinking about committing something similar. Your patch should fix 
issue2054. I would also move the line

       s->apply_window_mp3 = apply_window_mp3_c;

inside a #if CONFIG_FLOAT.

-Vitor



More information about the ffmpeg-devel mailing list