Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Ladies and Gentlemen, we have sound (on iriver iFP)

Ladies and Gentlemen, we have sound (on iriver iFP)

From: Tomasz Malesinski <tmal_at_mimuw.edu.pl>
Date: 2006-02-20

I managed to implement preliminary audio support for Rockbox on
iriver iFP790. I have not prepared a clean patch yet and I am not sure
if I will have time for Rockbox in the following week, so I just put
what I currently have to the patch tracker:

https://sourceforge.net/tracker/index.php?func=detail&aid=1434898&group_id=44306&atid=439120

The patch includes some changes not directly connected with audio
support, like keybindings and a bugfix for flash disk support.

There are several problems with audio support on iFP. The biggest one
is small amount of memory. There is probably only 1 MB of DRAM and 64
kB of internal SRAM. I have not opened the player, so I am not sure
what DRAM chip is actually inside. However, DRAM is located at
0x24000000 and USB chip is located 1 MB further at 0x24100000. Trying
to access memory at 0x24200000 freezes the player. I reduced the
malloc buffer from 512 kB to 40 kB, which is too little for the Ogg
Vorbis codec, which requires at least 120 kB (according to a test in
the emulator with 2 MB of DRAM). There is a low mem branch of the
Tremor. I have not tested it, although it probably requires more CPU
power.

Because of this I think we have to make some kind of configuration
system in which memory hungry features, like unicode support could be
disabled. Also there is a need for IRAM prioritization support which
has been talked about recently. iFP790 has only 64 kB of IRAM.

I also have a problem with CPU power. The mp3 codec does not work in
real time yet. I believe that I enabled the cache for DRAM and
configured CPU speed in the same way as the original firmware does it
for Ogg Vorbis playback. Of course without PNX0101 datasheet I can't
be sure. Maybe a change to what is stored in IRAM what in DRAM would
help here.

The only tested and working codec is WAV.

Sound playback sometimes does not start. Pausing and resuming helps in
this case.

We should also find a way to smoothly shut down the audio
hardware. Currently there is a quite loud noise during power off.
I wonder if the audio codec in PNX0101 is a custom one or if it is
similar to some codec with publicly available datasheets. I have to
take a look at it.

All the decoding is done in software. I don't know anything about the
DSP core in PNX0101. The original firmware seems not to use it for
Vorbis decoding (I managed to decode a piece of a song in my emulator,
which does not emulate the DSP), although it probably uses it for mp3
decoding (when I play an mp3 file in the emulator, the spectrum
analyzer does not work, but it works during Vorbis playback; I have
not looked at it further). I have not traced communication of the
original firmware with DSP, so I can't tell if we could use it to
implement equaliser, mp3 decoder, encoder or use it with other
formats.

-- 
Tomek Malesinski
Received on Mon Feb 20 02:17:39 2006

Page was last modified "Jan 10 2012" The Rockbox Crew
aaa