From 520274219a0745384cb9bc6df4d7ee7905090f5d Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Tue, 5 Jun 2007 16:58:29 +0000 Subject: 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. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13562 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/demac/libdemac/filter.h | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 apps/codecs/demac/libdemac/filter.h (limited to 'apps/codecs/demac/libdemac/filter.h') diff --git a/apps/codecs/demac/libdemac/filter.h b/apps/codecs/demac/libdemac/filter.h new file mode 100644 index 0000000000..b98403cfc8 --- /dev/null +++ b/apps/codecs/demac/libdemac/filter.h @@ -0,0 +1,48 @@ +/* + +libdemac - A Monkey's Audio decoder + +$Id:$ + +Copyright (C) Dave Chapman 2007 + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA + +*/ + +#ifndef _APE_FILTER_H +#define _APE_FILTER_H + +#include + +/* The size of the history buffers */ +#define HISTORY_SIZE 512 + +void init_filter_16_11(int16_t* buf); +int apply_filter_16_11(int fileversion, int32_t* decoded0, int32_t* decoded1, int count); + +void init_filter_64_11(int16_t* buf); +int apply_filter_64_11(int fileversion, int32_t* decoded0, int32_t* decoded1, int count); + +void init_filter_32_10(int16_t* buf); +int apply_filter_32_10(int fileversion, int32_t* decoded0, int32_t* decoded1, int count); + +void init_filter_256_13(int16_t* buf); +int apply_filter_256_13(int fileversion, int32_t* decoded0, int32_t* decoded1, int count); + +void init_filter_1280_15(int16_t* buf); +int apply_filter_1280_15(int fileversion, int32_t* decoded0, int32_t* decoded1, int count); + +#endif -- cgit v1.2.3