[Ffmpeg-devel] sse sigsegv and libavcodec/wmadec.c

Benjamin Larsson banan
Wed Dec 6 22:24:29 CET 2006


Michael Niedermayer wrote:

>Hi
>
>On Wed, Dec 06, 2006 at 04:29:44PM +0100, Benjamin Larsson wrote:
>  
>
>>Michael Niedermayer skrev:
>>    
>>
>>>Hi
>>>
>>>On Wed, Dec 06, 2006 at 02:35:16PM +0100, Benjamin Larsson wrote:
>>> 
>>>      
>>>
>>>>Michael Niedermayer skrev:
>>>>   
>>>>        
>>>>
>>>>>Hi
>>>>>
>>>>>On Fri, Dec 01, 2006 at 10:40:53PM +0100, Franz Bakan wrote:
>>>>>
>>>>>     
>>>>>          
>>>>>
>>>>>>Hi,
>>>>>>
>>>>>>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.
>>>>>>
>>>>>>Please patch
>>>>>>  
>>>>>>       
>>>>>>            
>>>>>>
>>>>>patch rejected not thread safe
>>>>>
>>>>>furthermore if the compiler cannot gurantee the specfied alignment then 
>>>>>it
>>>>>has to fail hard not randomly provide less alignemnt, this is a compiler 
>>>>>bug
>>>>>(= generates invalid code)
>>>>>
>>>>>[...]
>>>>>
>>>>>     
>>>>>          
>>>>>
>>>>Hi, do you have any good suggestion how this can be fixed without fixing 
>>>>the compiler. This affects all codecs that needs aligned float buffers 
>>>>when using sse on windows (and other platforms). We could try to 
>>>>manually align the contexts (hacky but could work) or should we disable 
>>>>sse on platforms with broken compilers ?
>>>>   
>>>>        
>>>>
>>>why exactly does gcc on windows fail to provide the specified alignment 
>>>while
>>>it works on linux? are all gcc versions affected?
>>>if its just gcc 3 then id say drop official gcc 3 support for windows
>>>
>>>[...]
>>> 
>>>      
>>>
>>It fails to respect the align attribute in structs, so when properly 
>>aligning a codec context with malloc the actual struct members don't get 
>>aligned properly. I don't know exactly what versions are affected, but 
>>this is causing problems for gcc 2.95 on BeOS also.
>>    
>>
>
>order struct members so that correct alignment is provided if everything
>gets packed
>
>[...]
>
>  
>
I might have been wrong, I think it can't align the stackframe
variables. One solution would be to move them to the context if that is
an acceptable solution.

MvH
Benjamin Larsson

-- 
new tiny signature





More information about the ffmpeg-devel mailing list