- Status Closed
- Percent Complete
- Task Type Bugs
- Category Codecs
- Assigned To No-one
- Operating System iPod 5G
- Severity Low
- Priority Very Low
- Reported Version Version 3.1
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#9745 - Selecting a .m4a crashes with "Undefined instruction at 40000184 (0)"
While selecting a m4a for playing it crashes. Works on ipod sim build.
Closed by zagor
2009-01-07 19:56
Reason for closing: Not a Bug
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
2009-01-07 19:56
Reason for closing: Not a Bug
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
Mystery solved.
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
Tested and failed on clean Subversion Build: r19641
Tested with files from: http://www.rjamorim.com/test/tests/Multiformat128.zip
Sample01/Bartok_strings2_4.m4a: hangs player in WPS
Sample02/Big Yellow2.m4a: crash with Undefined instruction
Disabled Cross Fade and get a different crash:
Sample02/Big Yellow4.m4a : Undefined instruction at 40017f24
From: http://www.rjamorim.com/test/tests/ This file fails on my actual Rockbox. Slightly different failure mechanism depending on Crossfade settings
e250 dosent freeze, it just slows down, and the audio gets choppy
Did you build using GCC 4.3.0?
11:04 alex@danny/x86_64 [ipod.build] >~/tools/arm-elf/bin/arm-elf-gcc-4.0.3 –version
arm-elf-gcc-4.0.3 (GCC) 4.0.3
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
IIRC it was built with the rockboxdev build script. Is this a known issue?
I’m having similiar problems(Undef instr…) on mpa codec with GCC 4.3.0 after r19612.
Codecs built before that works for me.
Official build works of course.
You may test 19611 and 19612.
rockbox.map may help?
r19611: Crash: Unidentified Instruction at 400164848 (0)
Map attached.
r19661: Crash “Prefetch abort at 41CBCD98 (0)”
Oh, sorry that seems not related to my issue.
Mine plays that file without problems.
For mpa mapping was ./apps/codecs/mpa.map
for m4a it would be ./apps/codecs/alac.map
I can’t interpret that file much.
Sorry I though that file was apple lossless.
Codec would be ./apps/codecs/aac.codec
You may replace that file for workaround.
Mapping would be ./apps/codecs/aac.map
I’m not sure how map could help,
but that might let you know where the problem is…
BigYellow_4.m4a works fine with r19667 (edit: er, I mean r19605 of course ;) on my Sansa e200… Tried with default settings?
I’ll check a few more from the test archive, just in case.
Damn seems to be a compiler toolchain issue. Works with official binaries: r19705
Comparing my aac.codec with the official build there are only a few bytes difference:
03e806d4 <codec_start>:
3e806d4: e92d4010 push {r4, lr}
3e806d8: e1a04000 mov r4, r0
3e806dc: e59f3068 ldr r3, [pc, #104] ; 3e8074c <codec_start+0×78>
3e806e0: e1a00003 mov r0, r3
3e806e4: e59f1064 ldr r1, [pc, #100] ; 3e80750 <codec_start+0x7c>
3e806e8: e59f2064 ldr r2, [pc, #100] ; 3e80754 <codec_start+0×80>
3e806ec: e0632002 rsb r2, r3, r2
3e806f0: e1a0e00f mov lr, pc
3e806f4: e594f094 ldr pc, [r4, #148]
3e806f8: e59f3058 ldr r3, [pc, #88] ; 3e80758 <codec_start+0×84>
3e806fc: e1a00003 mov r0, r3
3e80700: e3a01000 mov r1, #0 ; 0×0 3e80704: e59f2050 ldr r2, [pc, #80] ; 3e8075c <codec_start+0×88>
3e80708: e0632002 rsb r2, r3, r2
3e8070c: e1a0e00f mov lr, pc
3e80710: e594f090 ldr pc, [r4, #144]
3e80714: e59f3044 ldr r3, [pc, #68] ; 3e80760 <codec_start+0x8c>
3e80718: e1a00003 mov r0, r3
3e8071c: e3a01000 mov r1, #0 ; 0×0 3e80720: e59f203c ldr r2, [pc, #60] ; 3e80764 <codec_start+0×90>
3e80724: e0632002 rsb r2, r3, r2
3e80728: e1a0e00f mov lr, pc
3e8072c: e594f090 ldr pc, [r4, #144]
3e80730: e59f3030 ldr r3, [pc, #48] ; 3e80768 <codec_start+0×94>
3e80734: e5834000 str r4, [r3]
3e80738: ebffffd7 bl 3e8069c <flush_icache>
3e8073c: e59f3028 ldr r3, [pc, #40] ; 3e8076c <codec_start+0×98>
3e80740: e1a0e00f mov lr, pc
3e80744: e12fff13 bx r3
3e80748: e8bd8010 pop {r4, pc}
3e8074c: 4000c000 andmi ip, r0, r0
3e80750: f3ea5ec0 undefined instruction 0xf3ea5ec0
3e80754: 40011818 andmi r1, r1, r8, lsl r8
3e80758: 40011818 andmi r1, r1, r8, lsl r8
3e8075c: 40016818 andmi r6, r1, r8, lsl r8
3e80760: 03ea5ec0 mvneq r5, #3072 ; 0xc00
3e80764: 03ec5f70 mvneq r5, #448 ; 0x1c0
3e80768: 03eadf94 mvneq sp, #592 ; 0×250 3e8076c: 03e800c4 mvneq r0, #196 ; 0xc4
3e80770: e92d4030 push {r4, r5, lr}
3e80774: e1a0c000 mov ip, r0
With the undefined instruction in codec_start.
This leads to two questions:
1. How is this address related to what was actually reported
2. Why does my compiler hate me?
Mystery solved. I had a Gentoo cross-dev 2.18 binutils in my path which took precedence and b0rked the build
Testing with binutils 2.19 and it seems to generate a correct codec file with the right constant for plugin_bss_start