SoundTouch音频处理库源码分析及算法提取(3)
SoundTouch音频处理库初始化流程剖析 2
紧接上文《SoundTouch音频处理库初始化流程剖析》
TDStretch类和基类的关系:FIFOSamplePipe -> FIFOProcessor ->TDStretch
SoundTouch类成员class TDStretch *pTDStretch变量的初始化在SoundTouch的构造函数
SoundTouch::SoundTouch()中进行。
pTDStretch = TDStretch::newInstance();
他通过调用TDStretch类成员函数newInstance()构造,代码如下:
TDStretch * TDStretch::newInstance()
{
uint uExtensions;
uExtensions = detectCPUextensions();
// Check if MMX/SSE/3DNow! instruction set extensions supported by CPU
#ifdef ALLOW_MMX
// MMX routines available only with integer sample types
if (uExtensions & SUPPORT_MMX)
{
return ::new TDStretchMMX;
}