[FFmpeg-devel] [PATCH 0/9] DCA (DTS) decoder optimisations for ARMv6

Michael Niedermayer michaelni at gmx.at
Wed Jul 17 15:57:37 CEST 2013


Hi ben

On Tue, Jul 16, 2013 at 01:07:06PM +0100, Ben Avison wrote:
> Hi Michael,
> 
> Thanks very much for your testing. I think the problem with the files
> that you had trouble building was that I didn't anticipate that anyone
> would be trying to build them as Thumb code. Perhaps you could try making
> the following alterations - if they work, then I'll merge them into the
> full patch series and repost it:

With this patch i get:
ffmpeg/libavcodec/arm/mdct_vfp.S: Assembler messages:
ffmpeg/libavcodec/arm/mdct_vfp.S:155: Error: thumb conditional instruction should be in IT block -- `ldrne ip,=ff_imdct_half_c'
ffmpeg/libavcodec/arm/mdct_vfp.S:156: Error: thumb conditional instruction should be in IT block -- `bxne ip'
ffmpeg/libavcodec/arm/dcadsp_vfp.S: Assembler messages:
ffmpeg/libavcodec/arm/dcadsp_vfp.S:356: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:357: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:358: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:359: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:361: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:362: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:363: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:364: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:416: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:417: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:418: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:419: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:420: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:421: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:422: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:423: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:435: Error: co-processor offset out of range
ffmpeg/libavcodec/arm/dcadsp_vfp.S:436: Error: co-processor offset out of range


[...]
>
> >some part of this patchset causes
> >fate-acodec-dca2 and fate-dts
> >to fail, they dont fail without the patchsetfor me
> 
> Well, this is strange. Those both pass for me. The ones I'm having
> trouble with are
> 
> fate-aac-al07_96
> fate-aac-al15_44
> fate-aac-aref-encode
> fate-aac-ln-encode
> 
> but it sounds like they're OK for you! They fail for me even without my
> patches applied.

they pass with qemu
they also pass on a cubox and a panda board (see fate.ffmpeg.org)
The panda board failures we had on fate btw are due to hardware
problems with the board.
fate should work fine on arm


> 
> >(test done with qemu and without the patches that failed to build)
> 
> The way I see it, there are two most likely causes for your problems:
> * softfp/hardfp ABI differences (I've tested using hardfp, do you know
>   what you were using?)

I have toolchains for both if iam not mistaken the used one was
softfp


> * perhaps qemu doesn't emulate short vectors?
> 
> I have put together a quick test program below to see if short vectors
> are working. I would appreciate it if you could give it a quick try for
> me. It prints "Success" on my physical ARM11.

segfaults:
(gdb) bt
#0  0x000083a2 in test () at testshvec_asm.S:5
#1  0x000083e8 in main () at testshvec.c:13
(gdb) disassemble
Dump of assembler code for function test:
   0x000083a0 <+0>: vldr    s0, [r0]
   0x000083a4 <+4>: vldr    s1, [r1]
   0x000083a8 <+8>: vmrs    r0, fpscr
   0x000083ac <+12>:    ldr r1, [pc, #20]   ; 0x83c8 <test+40>
   0x000083b0 <+16>:    vmsr    fpscr, r1
   0x000083b4 <+20>:    vmov.f32    s9, s0
   0x000083b8 <+24>:    vmov.f32    s8, s1
   0x000083bc <+28>:    vstr    s9, [r2]
   0x000083c0 <+32>:    vmsr    fpscr, r0
   0x000083c4 <+36>:    bx  lr
   0x000083c8 <+40>:    movweq  r0, #4096   ; 0x1000
End of assembler dump.
(gdb) info all-registers
r0             0xffff4  1048564
r1             0xffff460    268432480
r2             0xffff45c    268432476
r3             0xffff45c    268432476
r4             0x0  0
r5             0xffff480    268432512
r6             0x8321   33569
r7             0x0  0
r8             0x0  0
r9             0x0  0
r10            0xf7fe000    260038656
r11            0x0  0
r12            0xf6f2c61    258944097
sp             0xffff458    0xffff458
lr             0x83e9   33769
pc             0x83a2   0x83a2 <test+2>
cpsr           0x30 48


-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130717/3e7bf33c/attachment.asc>


More information about the ffmpeg-devel mailing list