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

Michael Niedermayer michaelni
Wed Dec 6 16:37:07 CET 2006


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

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you really think that XML is the answer, then you definitly missunderstood
the question -- Attila Kinali




More information about the ffmpeg-devel mailing list