1)SRC_STATE* (int converter_type, int channels, int *error) ; 2)SRC_STATE* (SRC_STATE *state) ; 3)int (SRC_STATE *state, SRC_DATA *data) ; 4)int (SRC_STATE *state) ; 5)int (SRC_STATE *state, double new_ratio) ;
初始化函数
函数1 )用于初始化,它会返回一个指向采样率对象的匿名指针。如果发生错误,则返回NULL指针,并且将错误码写入error指针。
清理函数
函数2)用于释放采样率转换过程中开辟的所有内存。如果发生错误,则返回NULL指针。调用者需要自己释放传递到SRC_DATA结构指针成员的内存。
处理函数
函数3)用于处理从SRC_DATA结构体传入的数据。当用于处理流数据时,这个函数可以被多次调用。
SRC_DATA结构体的说明见前面的一篇文章的说明。
需要注意的时候,data_in和data_out不可以重叠。
当处理正确时,该函数返回0,否则返回非零值。
复位函数
函数4)用于复位采样率转换器的内部状态。也就是SRC_STATE指针指向的区域。它需要在src_reset函数被调用之后立即被调用。
设置比例
函数5)用于设置新的采样转换率。调用该算法之后,采样率转换器会平滑的从原来的采样率过渡到新的采样率。
回调函数:
typedef long (*src_callback_t) (void *cb_data, float **data) ; SRC_STATE* (src_callback_t func, int converter_type, int channels, int *error, void* cb_data) ; SRC_STATE* (SRC_STATE *state) ; long (SRC_STATE *state, double src_ratio, long frames, float *data) ; int (SRC_STATE *state) ; int (SRC_STATE *state, double new_ratio) ;