1
0
Fork 0
forked from len0rd/rockbox

Remove unneeded math wrappers. Clear state structs in decoder init. Start initial work at stripping away parts of Speex in preparation for its use as a statically linked voice UI codec.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15612 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thom Johansen 2007-11-14 00:55:05 +00:00
parent d75a5486e6
commit 91f618f1ba
6 changed files with 20 additions and 79 deletions

View file

@ -23,6 +23,11 @@ else
SPEEXOPTS += -O2 SPEEXOPTS += -O2
endif endif
# We build Speex separately for use as a voice codec
ifdef ROCKBOX_VOICE_CODEC
EXTRA_DEFINES += -DROCKBOX_VOICE_CODEC
endif
CFLAGS = $(INCLUDES) $(GCCOPTS) $(TARGET_INC) $(SPEEXOPTS) $(TARGET) \ CFLAGS = $(INCLUDES) $(GCCOPTS) $(TARGET_INC) $(SPEEXOPTS) $(TARGET) \
$(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} ${PROFILE_OPTS} -Wno-unused-parameter $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} ${PROFILE_OPTS} -Wno-unused-parameter

View file

@ -18,14 +18,15 @@ ltp.c
modes.c modes.c
modes_wb.c modes_wb.c
nb_celp.c nb_celp.c
oggframing.c
quant_lsp.c quant_lsp.c
rockbox.c
sb_celp.c sb_celp.c
speex.c speex.c
speex_callbacks.c speex_callbacks.c
speex_header.c speex_header.c
#ifndef ROCKBOX_VOICE_CODEC
oggframing.c
stereo.c stereo.c
#endif
#ifdef CPU_COLDFIRE #ifdef CPU_COLDFIRE
filters_cf.S filters_cf.S
ltp_cf.S ltp_cf.S

View file

@ -944,6 +944,7 @@ void *nb_decoder_init(const SpeexMode *m)
if (!st) if (!st)
return NULL; return NULL;
*/ */
memset(st, 0, sizeof(*st));
#if defined(VAR_ARRAYS) || defined (USE_ALLOCA) #if defined(VAR_ARRAYS) || defined (USE_ALLOCA)
st->stack = NULL; st->stack = NULL;
#else #else

View file

@ -1,77 +0,0 @@
/**************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2007 Dan Everton
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
#include "../codec.h"
#include "../lib/codeclib.h"
#if defined(DEBUG) || defined(SIMULATOR)
#undef DEBUGF
#define DEBUGF ci->debugf
#else
#define DEBUGF(...)
#endif
#ifdef ROCKBOX_HAS_LOGF
#undef LOGF
#define LOGF ci->logf
#else
#define LOGF(...)
#endif
extern struct codec_api* ci;
float floor(float x) {
return ((float)(((int)x)));
}
//Placeholders (not fixed point, only used when encoding):
float pow(float a, float b) {
DEBUGF("pow(%f, %f)\n", a, b);
return 0;
}
float log(float l) {
DEBUGF("log(%f)\n", l);
return 0;
}
float fabs(float a) {
DEBUGF("fabs(%f)\n", a);
return 0;
}
float sin(float a) {
DEBUGF("sin(%f)\n", a);
return 0;
}
float cos(float a) {
DEBUGF("cos(%f)\n", a);
return 0;
}
float sqrt(float a) {
DEBUGF("sqrt(%f)\n", a);
return 0;
}
float exp(float a) {
DEBUGF("exp(%f)\n", a);
return 0;
}

View file

@ -755,7 +755,10 @@ int sb_encode(void *state, void *vin, SpeexBits *bits)
static SBDecState global_decstate_wb IBSS_ATTR; static SBDecState global_decstate_wb IBSS_ATTR;
/* Do not include this for voice codec, files will never be UWB */
#ifndef SPEEX_ROCKBOX_VOICE_CODEC
static SBDecState global_decstate_uwb IBSS_ATTR; static SBDecState global_decstate_uwb IBSS_ATTR;
#endif
void *sb_decoder_init(const SpeexMode *m) void *sb_decoder_init(const SpeexMode *m)
{ {
@ -767,10 +770,13 @@ void *sb_decoder_init(const SpeexMode *m)
if (!st) if (!st)
return NULL; return NULL;
*/ */
#ifndef ROCKBOX_VOICE_CODEC
if (m->modeID == SPEEX_MODEID_UWB) if (m->modeID == SPEEX_MODEID_UWB)
st = &global_decstate_uwb; st = &global_decstate_uwb;
else else
#endif
st = &global_decstate_wb; st = &global_decstate_wb;
memset(st, 0, sizeof(*st));
st->mode = m; st->mode = m;
mode=(const SpeexSBMode*)m->mode; mode=(const SpeexSBMode*)m->mode;
st->encode_submode = 1; st->encode_submode = 1;

View file

@ -110,7 +110,12 @@ typedef struct SBDecState {
char *stack; char *stack;
spx_word16_t g0_mem[64], g1_mem[64]; spx_word16_t g0_mem[64], g1_mem[64];
/* Voice codec files will be WB mode, which has sub frame size of 40 */
#ifndef SPEEX_ROCKBOX_VOICE_CODEC
spx_word16_t excBuf[80]; spx_word16_t excBuf[80];
#else
spx_word16_t excBuf[40];
#endif
spx_lsp_t old_qlsp[8]; spx_lsp_t old_qlsp[8];
spx_coef_t interp_qlpc[8]; spx_coef_t interp_qlpc[8];