Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#10690 - Add 24-bit support to ALAC decoder

Attached to Project: Rockbox
Opened by Tom Ross (midgey34) - Monday, 19 October 2009, 08:46 GMT+2
Last edited by Tom Ross (midgey34) - Wednesday, 03 February 2010, 01:46 GMT+2
Task Type Patches
Category Codecs
Status Closed
Assigned To No-one
Player Type SW-codec
Severity Low
Priority Normal
Reported Version Release 3.4
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Private No

Details

I've merged in the changes from 0.2.0 of the ALAC decoder upstream into our implementation. Enables 24-bit ALAC files to playback. Seems to work on all of my samples. I did my best to mimic the current style of the code.

I'd like to make sure this doesn't overflow IRAM on any target (I can only build for ARM at the moment...). I'm also a bit unsure about the parts where uncompressed bytes are copied into our output buffer. Should that data be shifted?
   24bit_alac.diff (21.5 KiB)
 apps/codecs/libalac/alac.c   |  444 +++++++++++++++++++++++++------------------
 apps/codecs/libalac/decomp.h |    1 
 2 files changed, 269 insertions(+), 176 deletions(-)

This task depends upon

Closed by  Tom Ross (midgey34)
Wednesday, 03 February 2010, 01:46 GMT+2
Reason for closing:  Accepted
Comment by Frank Gevaerts (fg) - Monday, 19 October 2009, 12:26 GMT+2
Builds find on all currently auto-built targets
Comment by Tom Ross (midgey34) - Tuesday, 20 October 2009, 03:11 GMT+2
The patch above is a bit slower than SVN. This is fixed in the patch below (it's actually about 0.5% faster...). I used test_codec to dump one of my 16-bit test files and it dumped the same wave as SVN.

Still not sure about the part where it copies uncompressed bytes into the output buffer.
   24bit_alac.2.diff (23 KiB)
 apps/codecs/libalac/alac.c   |  466 +++++++++++++++++++++++++------------------
 apps/codecs/libalac/decomp.h |    1 
 2 files changed, 280 insertions(+), 187 deletions(-)

Loading...