rockbox/apps/codecs/libtremor
Dave Hooper a3068ca863 Unroll and optimise channel coupling for arm gives 0.6Mhz speed for vorbis on pp(ipod video)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24808 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 15:36:35 +00:00
..
asm_arm.h Fix condition code clobbers (and one TAB) for inline arm code in lib and libtremor 2009-08-29 12:07:32 +00:00
asm_mcf5249.h Commit FS#9882 - make better use of iram at different quality encodings, remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire 2009-04-25 11:25:13 +00:00
backends.h
bitwise.c Commit FS#9915 by Sei Aoyumi. Adds hints to help GCC better optimize vorbis decoding. Gives a minor speed increase. 2009-02-17 17:01:09 +00:00
block.c Merge from branches/mdctexp - faster ifft+imdct in codec lib 2010-02-17 00:49:53 +00:00
CHANGELOG
codebook.c Assembler optimised bitreverse for ARM, again a little bit faster and smaller. * Separated 'x' and 'ret' gives gcc a bit more freedom regarding register allocation (except on coldfire where it doesn't matter). 2009-12-23 23:44:56 +00:00
codebook.h
codec_internal.h Merge from branches/mdctexp - faster ifft+imdct in codec lib 2010-02-17 00:49:53 +00:00
config-tremor.h Make the codecs use more IRAM on S5L870x, as we have plenty of it. 2009-11-09 20:01:07 +00:00
config_types.h
COPYING
ctype.c New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles. 2008-11-20 11:27:31 +00:00
floor0.c Remove floor0 stuff from IRAM. Results in a tiny speed decrease for files encoded with 6+ year old versions of the Xiph encoder, but saves IRAM which can be better used elsewhere. Thanks Nils Wallmenius in FS#7832 for the idea. 2009-01-21 18:22:46 +00:00
floor1.c Remove inline asm that hasn't been useful for years, no speed difference 2009-12-10 21:43:59 +00:00
framing.c Add STATICIRAM_NOT_MDCT as a workaround for the gcc bug where static functions are not long called. This is currently only an issue on the Nano2G (S5L8701 CPU) which is the only ARM target with enough IRAM for these functions. Also add multiple-inclusion protection for config-tremor.h. All plugins and codecs now compile cleanly for the Nano2G. 2009-10-04 08:49:23 +00:00
info.c Merge from branches/mdctexp - faster ifft+imdct in codec lib 2010-02-17 00:49:53 +00:00
ivorbiscodec.h Merge from branches/mdctexp - faster ifft+imdct in codec lib 2010-02-17 00:49:53 +00:00
ivorbisfile.h
libtremor.make Silence warning from 'ar' if the archive had to be created. 2009-03-01 09:04:15 +00:00
lsp_lookup.h Remove floor0 stuff from IRAM. Results in a tiny speed decrease for files encoded with 6+ year old versions of the Xiph encoder, but saves IRAM which can be better used elsewhere. Thanks Nils Wallmenius in FS#7832 for the idea. 2009-01-21 18:22:46 +00:00
mapping0.c Unroll and optimise channel coupling for arm gives 0.6Mhz speed for vorbis on pp(ipod video) 2010-02-21 15:36:35 +00:00
misc.h Commit FS#9882 - make better use of iram at different quality encodings, remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire 2009-04-25 11:25:13 +00:00
ogg.h Commit FS#9915 by Sei Aoyumi. Adds hints to help GCC better optimize vorbis decoding. Gives a minor speed increase. 2009-02-17 17:01:09 +00:00
oggmalloc.c FS#10466: Introduce a real malloc for tremor. 2009-08-29 12:23:40 +00:00
os.h Fix warning on new gcc for checking value or truth of undefined _WIN32 and MIPS. 2009-11-20 02:51:10 +00:00
os_types.h FS#10466: Introduce a real malloc for tremor. 2009-08-29 12:23:40 +00:00
README
README.rockbox
registry.c
registry.h
res012.c Commit FS#9882 - make better use of iram at different quality encodings, remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire 2009-04-25 11:25:13 +00:00
sharedbook.c FS#10466: Introduce a real malloc for tremor. 2009-08-29 12:23:40 +00:00
SOURCES
synthesis.c Merge from branches/mdctexp - faster ifft+imdct in codec lib 2010-02-17 00:49:53 +00:00
vorbisfile.c Add STATICIRAM_NOT_MDCT as a workaround for the gcc bug where static functions are not long called. This is currently only an issue on the Nano2G (S5L8701 CPU) which is the only ARM target with enough IRAM for these functions. Also add multiple-inclusion protection for config-tremor.h. All plugins and codecs now compile cleanly for the Nano2G. 2009-10-04 08:49:23 +00:00
window.c Commit FS#9882 - make better use of iram at different quality encodings, remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire 2009-04-25 11:25:13 +00:00
window.h
window_lookup.h Commit FS#9882 - make better use of iram at different quality encodings, remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire 2009-04-25 11:25:13 +00:00

This README covers the Ogg Vorbis 'Tremor' integer playback codec
source as of date 2002 09 02, version 1.0.0.

                            ******

The C source in this package will build on any ANSI C compiler and
function completely and properly on any platform.  The included build
system assumes GNU build system and make tools (m4, automake,
autoconf, libtool and gmake).  GCC is not required, although GCC is
the most tested compiler.  To build using GNU tools, type in the
source directory:

./autogen.sh
make

Currently, the source implements playback in pure C on all platforms
except ARM, where a [currently] small amount of assembly (see
asm_arm.h) is used to implement 64 bit math operations and fast LSP
computation.  If building on ARM without the benefit of GNU build
system tools, be sure that '_ARM_ASSEM_' is #defined by the build
system if this assembly is desired, else the resulting library will
use whatever 64 bit math builtins the compiler implements.

No math library is required by this source.  No floating point
operations are used at any point in either setup or decode.  This
decoder library will properly decode any past, current or future
Vorbis I file or stream.

                           ********

The build system produces a static and [when supported by the OS]
dynamic library named 'libvorbisidec'.  This library exposes an API
nearly identical to the BSD reference library's 'libvorbisfile',
including all the features familiar to users of vorbisfile.  This API
is similar enough that the proper header file to include is named
'ivorbisfile.h' [included in the source build directory].  Lower level
libvorbis-style headers and structures are in 'ivorbiscodec.h'
[included in the source build directory]. A simple example program,
ivorbisfile_example.c, can be built with 'make example'.

                           ********

Detailed Tremor API Documentation begins at doc/index.html

Monty
xiph.org