rockbox/apps/codecs/demac
Rafaël Carré 45c7498f59 FS#11335 by me: make ARM assembly functions thumb-friendly
We can't pop into pc on ARMv4t when using thumb: the T bit won't be
modified if we are returning to a thumb function
Code running on ARMv4t should use the new ldrpc / ldmpc macros instead
of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc}
No modification on pure ARM builds and ARMv5+

Note: USE_THUMB is currently never defined, no targets can currently be
built with -mthumb, see FS#6734

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 04:41:36 +00:00
..
libdemac FS#11335 by me: make ARM assembly functions thumb-friendly 2010-06-11 04:41:36 +00:00
COPYING Initial commit of Monkey's Audio (.ape/.mac) support. Note that Monkey's is an extremely CPU-intensive codec, and that the decoding speed is directly related to the compression level (-c1000, -c2000, -c3000, -c4000 or -c5000) used when encoding the file. Current performance is: -c1000 to -c3000 are realtime on a Gigabeat, -c1000 is realtime on Coldfire targets (H100, H300 and Cowon), and nothing is realtime on PortalPlayer targets (iPods, H10, Sansa). Hopefully this can be improved. More information at FS #7256. 2007-06-05 16:58:29 +00:00
demac.c Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes). 2010-05-06 21:04:40 +00:00
libdemac.make Use all available codec iram for reciprocal table in APE codec on ARMv4. Done by linking first with the table empty to determine free space, then sizing table to fill it. 2010-02-04 08:45:38 +00:00
Makefile Fix decoding of stereo frames with silence in only one channel. * Make the standalone decoder contain debugging information. 2008-12-21 23:49:02 +00:00
README Initial commit of Monkey's Audio (.ape/.mac) support. Note that Monkey's is an extremely CPU-intensive codec, and that the decoding speed is directly related to the compression level (-c1000, -c2000, -c3000, -c4000 or -c5000) used when encoding the file. Current performance is: -c1000 to -c3000 are realtime on a Gigabeat, -c1000 is realtime on Coldfire targets (H100, H300 and Cowon), and nothing is realtime on PortalPlayer targets (iPods, H10, Sansa). Hopefully this can be improved. More information at FS #7256. 2007-06-05 16:58:29 +00:00
wavwrite.c Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes). 2010-05-06 21:04:40 +00:00
wavwrite.h Calculate watermark from bitrate and harddisk spinup time. 2009-01-10 21:10:56 +00:00

demac - a decoder for Monkey's Audio files.

Introduction

demac is an implementation in portable ANSI C of a decoder for the
Monkey's Audio lossless compression format.  It has the following
features:

  * Open source (GNU GPL)
  * Written in portable ANSI C
  * Designed for use on low memory and embedded devices.  All internal
    buffers are statically declared - the core library doesn't require 
    malloc/free.  This has the disadvantage that the library isn't 
    re-entrant.


Compatibility


libdemac is still in the early stages of development but has been
relatively well tested with v3.99 files at all compression levels.

v3.97 files have received less testing - 16-bit files seem to work,
but 24-bit files are causing problems in the range decoder.

Files earlier than v3.97 are not supported by libdemac, but support
might be added in the future.


Source Code

The source code in this directory is structured as follows:

demac/Makefile - Makefile for the standalone demac decoder
demac/demac.c - Simple standalone test program to decoder an APE file to WAV
demac/wavwrite.[ch] - Helper functions for demac.c
demac/libdemac/Makefile - A Makefile for use in Rockbox
demac/libdemac/*.[ch] - The main libdemac code


Latest Version

The latest version of demac and libdemac can always be found in the
"apps/codecs/demac/" directory in the Rockbox source.  You can check
this out from svn with the command:

svn co svn://svn.rockbox.org/rockbox/trunk/apps/codecs/demac demac

Or browse the source code online here:

http://svn.rockbox.org/viewvc.cgi/trunk/apps/codecs/demac



Acknowledgements

Thanks to Matt. T. Ashland for writing Monkey's Audio.  His website
can be found here: http://www.monkeysaudio.com


Copyright and license


libdemac is (C) 2007 Dave Chapman and is licensed under the GNU
GPL. See the COPYING file in this directory.

The exception is the majority of rangecoding.h, which is (C) 1997,
1998, 1999, 2000 Michael Schindler and is also licensed under the GPL.
See that source file for full details.