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

Måns Rullgård mans
Thu Jul 1 19:14:16 CEST 2010


Vitor Sessak <vitor1001 at gmail.com> writes:

> 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.

Don't we want to allow asm optimisation of the fixed-point one as well?

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list