[vlc-devel] commit: contrib: turn off Thumb ISA for libavcodec and libmad ( Rémi Denis-Courmont )

Rémi Denis-Courmont remi at remlab.net
Wed Sep 2 20:53:31 CEST 2009


Le mercredi 2 septembre 2009 21:45:08 Måns Rullgård, vous avez écrit :
> "Rémi Denis-Courmont" <remi at remlab.net> writes:
> > Le mardi 1 septembre 2009 23:40:23 Måns Rullgård, vous avez écrit :
> >> > I just started decoding MPEG4 Part 2 (in MKV with AAC) or Part 10
> >> > (in AVI with MP3). Disabling video decoding worked around it. VLC
> >> > did not use FFMPEG for MKV, AVI, AAC nor MP3. It fails immediately,
> >> > as far as I can tell.
> >>
> >> Compiler flags as below?
> >
> > Yes. I just retried with the entire stack (VLC+contribs)
> > -mtune=cortex-a8 -mcpu=cortex-a8 -march=arvm7-a -mfpu=neon
> > -O3 -fno-tree-vectorize
> >
> > and I get the exact same result.
> >
> >> Can you get a core dump?
> >> Where does it crash?
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 0x4159d490 (LWP 2571)]
> > 0x4285bfcc in ff_simple_idct_put_neon ()
> >    from /opt/VideoLAN/lib/vlc/codec/libavcodec_plugin.so
> > 0x4285bfcc <ff_simple_idct_put_neon+24>:        vld1.64 {d0-d1}, [r3,
> > :128] (gdb) bt
> > #0  0x4285bfcc in ff_simple_idct_put_neon ()
> >    from /opt/VideoLAN/lib/vlc/codec/libavcodec_plugin.so
> > #1  0x00000000 in ?? ()
>
> Please run these gdb command there:
>
> (gdb) info registers
r0             0x416e2020       1097736224                                 
r1             0x280    640                                                
r2             0x12ff80 1245056                                            
r3             0x498230 4817456                                            
r4             0xda950  895312                                             
r5             0x416e2020       1097736224                                 
r6             0x12ff80 1245056                                            
r7             0x12ff80 1245056                                            
r8             0xda950  895312                                             
r9             0x205c   8284                                               
r10            0x8      8                                                  
r11            0x416e2020       1097736224
r12            0x0      0
sp             0x4159ca3c       0x4159ca3c
lr             0x42563948       1112947016
pc             0x4285bfcc       0x4285bfcc <ff_simple_idct_put_neon+24>
fps            0x0      0
cpsr           0x60000050       1610612816

> (gdb) disas $pc-24 $pc+24
Dump of assembler code from 0x4285bfb4 to 0x4285bfe4:
0x4285bfb4 <ff_simple_idct_put_neon+0>: push    {r4, r5, r6, r7, lr}
0x4285bfb8 <ff_simple_idct_put_neon+4>: pld     [r2]
0x4285bfbc <ff_simple_idct_put_neon+8>: pld     [r2, #64]
0x4285bfc0 <ff_simple_idct_put_neon+12>:        vpush   {d8-d15}
0x4285bfc4 <ff_simple_idct_put_neon+16>:        movw    r3, #33328      ; 
0x8230
0x4285bfc8 <ff_simple_idct_put_neon+20>:        movt    r3, #73 ; 0x49
0x4285bfcc <ff_simple_idct_put_neon+24>:        vld1.64 {d0-d1}, [r3, :128]
0x4285bfd0 <ff_simple_idct_put_neon+28>:        bl      0x4285bd00 
<idct_row4_pld_neon>
0x4285bfd4 <ff_simple_idct_put_neon+32>:        bl      0x4285bd28 
<idct_row4_neon>
0x4285bfd8 <ff_simple_idct_put_neon+36>:        sub     r2, r2, #128    ; 0x80
0x4285bfdc <ff_simple_idct_put_neon+40>:        bl      0x4285be48 
<idct_col4_neon>
0x4285bfe0 <ff_simple_idct_put_neon+44>:        bl      0x4285bf80 
<idct_col4_st8_neon>
End of assembler dump.

> > (I guess VLC contribs strips ffmpeg debug symbols).
> >
> >> Can you decode the file with a standalone FFmpeg build?
> >
> > Yes.
>
> That suggests the problem is not in FFmpeg.

It may be so, but the normal inverse DCT code is not crashing.

-- 
Rémi Denis-Courmont
http://www.remlab.net/



More information about the vlc-devel mailing list