[Ffmpeg-devel] SSE2 Crashing
Marco Manfredini
mldb
Fri Aug 18 11:04:52 CEST 2006
On Thursday 17 August 2006 05:13, Brian Brice wrote:
> Hi!
> I'm not sure if this is the right place to bring this up, but maybe
> others have experience with this issue. I've compiled ffmpeg with
> gcc-3.4.5/ld-2.16-91 in mingw. It seems to work correctly in the
> ffmpeg program, but when I use the libraries with something else,
> then I experience crashes involving SSE2 instructions. The crashes
> were occurring in lavc/i386/fdct_mmx.c, fdct_row_sse2. I do have
> SSE and the memalign hack enabled. The function that calls
> fdct_row_sse2 is ff_fdct_sse2 allocates a buffer that is aligned
> to to an 8 byte boundary. I've watched the allocation of this
> buffer and it seems to not actually be aligned correctly. Is this
> a problem with my version of gcc? Anyone else experience this and
> figure out a way around it? Thanks.
This happened with Mactel here on various occasions too. I found that, in my
cases, ff_fdct_sse2 got blocks from locals that were attributed
DECLARE_ALIGNED_8(t,v). For some reason DECLARE_ALIGNED_8 got defined in
dsputil.h as "__attribute__ ((aligned (8)))" and not "__attribute__ ((aligned
(16)))" as it should (I failed to understand the logic behind
DECLARE_ALIGN_{8,16} though :-) ).
I helped myself by replacing 16 for 8 in the first definition of
DECLARE_ALIGNED_8 and STRIDE_ALIGN in dsputil.h
Marco
More information about the ffmpeg-devel
mailing list