Re: Bug#638250: Needs to be adapted for libav/0.7
On Sun, Sep 04, 2011 at 04:13:52PM -0400, Lennart Sorensen wrote:
> Are there any that don't experience it?
> I just tried running ffmpeg on a power6+ machine under gdb and got:
> Program received signal SIGSEGV, Segmentation fault.
> 0x0f6ff37c in ff_fft_calc_altivec () at /root/libav-0.7.1/libavcodec/ppc/fft_altivec_s.S:447
> 447 DECL_FFTS 0
> (gdb) where
> #0 0x0f6ff37c in ff_fft_calc_altivec () at /root/libav-0.7.1/libavcodec/ppc/fft_altivec_s.S:447
> #1 0x0f6feaa8 in ff_imdct_half_altivec (s=<optimized out>, output=<optimized out>, input=<optimized out>) at /root/libav-0.7.1/libavcodec/ppc/fft_altivec.c:93
> #2 0x0f437ce8 in imdct_and_windowing (ac=0x10040ca0, sce=0xf7f260c0) at /root/libav-0.7.1/libavcodec/aacdec.c:1856
> #3 0x0f43caa8 in spectral_to_sample (ac=<optimized out>) at /root/libav-0.7.1/libavcodec/aacdec.c:2015
> #4 aac_decode_frame_int (avctx=<optimized out>, data=0xf7f95020, data_size=0xffffda78, gb=<optimized out>) at /root/libav-0.7.1/libavcodec/aacdec.c:2170
> #5 0x0f43ccec in aac_decode_frame (avctx=<optimized out>, data=<optimized out>, data_size=<optimized out>, avpkt=<optimized out>)
> at /root/libav-0.7.1/libavcodec/aacdec.c:2216
> #6 0x0f77f25c in avcodec_decode_audio3 (avctx=0x100406a0, samples=<optimized out>, frame_size_ptr=<optimized out>, avpkt=<optimized out>)
> at /root/libav-0.7.1/libavcodec/utils.c:726
> #7 0x0ff3f924 in try_decode_frame (avpkt=0x100466e0, st=0x1003ede0) at /root/libav-0.7.1/libavformat/utils.c:2104
> #8 av_find_stream_info (ic=0x1003e840) at /root/libav-0.7.1/libavformat/utils.c:2388
> #9 0x1000b200 in opt_input_file (opt=<optimized out>, filename=<optimized out>) at /root/libav-0.7.1/ffmpeg.c:3271
> #10 0x1000f0fc in parse_options (argc=4, argv=0xffffe184, options=0x10026720, parse_arg_function=0x1000cfd0 <opt_output_file>) at /root/libav-0.7.1/cmdutils.c:287
> #11 0x100067c8 in main (argc=4, argv=<optimized out>) at /root/libav-0.7.1/ffmpeg.c:4444
> (gdb) Program received signal SIGSEGV, Segmentation fault.
> Anyone have an idea what to look at exactly? I really wish debug builds
> wouldn't have so much 'optimized out' stuff that makes reading stack
> traces so hard.
So it turns out it was reported to ffmpeg upstream 3 months ago and fixed already.
The patch to libavcodec/ppc/asm.S is in comment #8.
It no longer segfaults for me with that patch applied.
Apparently when compiling in pic mode, the new assembly altived fft
code always segfaults, while the old version was C code and worked fine.
Apparently an offset calculation was done wrong as far as I understand it.