[Ffmpeg-devel] Re: sse sigsegv and libavcodec/wmadec.c
Franz Bakan
fbakan
Thu Dec 7 21:38:28 CET 2006
Benjamin Larsson wrote:
...
>> wmadec.c line 720 and 1110 :
>> DECLARE_ALIGNED_16()
>> does not work for stack-variables inside functions.
>> (at least not for GCC 331 on OS/2) but IIRC this is a
>> cross-platform-restriction.
>> If I move the two declarations to the top of the file
>> I get rid of these nasty SIGSEGVs on my PIII computer.
...
>> ------------------------------------------------------------------------
>>
>> --- wmadec.c 2006-12-01 22:26:06.000000000 +0100
>> +++ o:wmadec.c 2006-12-01 22:36:06.000000000 +0100
>> @@ -67,6 +67,9 @@
>> #define HGAINVLCBITS 9
>> #define HGAINMAX ((13+HGAINVLCBITS-1)/HGAINVLCBITS)
>>
>> +DECLARE_ALIGNED_16(FFTSample, output[BLOCK_MAX_SIZE * 2]);
>> +DECLARE_ALIGNED_16(float, window[BLOCK_MAX_SIZE * 2]);
>>
>
> Hi, can you move these 2 buffers to the WMADecodeContext and see if
that fixes the problem ?
You mean I add the buffers to the WMADecodeContext struct definition
and replace output with s->output and window with s->window ?
I tried this and the resulting executable works.
So perhaps this is a better workaround for the real problem.
Franz
More information about the ffmpeg-devel
mailing list