金牌会员
 
- 积分
- 1243
- 金钱
- 1243
- 注册时间
- 2016-1-23
- 在线时间
- 487 小时
|
发表于 2016-1-23 15:58:10
|
显示全部楼层
EXPORT void *speex_decoder_init(const SpeexMode *mode)
{
return mode->dec_init(mode);
}
/////////////////////////////////////////////////////////
void *nb_decoder_init(const SpeexMode *m)
{
DecState *st;
const SpeexNBMode *mode;
int i;
mode=(const SpeexNBMode*)m->mode;
st = (DecState *)speex_alloc(sizeof(DecState));//解码初始化第二步跳到这里,之后跳到os_support.h 56行
if (!st)
return NULL;
#if defined(VAR_ARRAYS) || defined (USE_ALLOCA)
st->stack = NULL;
///////////////////////////////
/** Speex的包装释放calloc。 做你自己的动态分配,所有你需要做的就是替换这个功能,Speex语音的realloc和 speex_free
注:speex_alloc需要清除内存 */
#ifndef OVERRIDE_SPEEX_ALLOC
static inline void *speex_alloc (int size)
{
/* 警告: 这不等同于malloc()函数。如果你想用malloc()
或者你自己的分配器,需要明确分配的内存。 除此以外
你会碰到一些奇怪的错误 */
return calloc(size,1);
}
#endif
/////////////////////////////////////////////////////////
EXPORT int speex_decoder_ctl(void *state, int request, void *ptr)
{
return (*((SpeexMode**)state))->dec_ctl(state, request, ptr);//解码初始化到这行后出现硬件异常
}
/////////////////////////
|
|