Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1159656
  • 博文数量: 139
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 1712
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 23:10
个人简介

每天进步一点点。

文章分类

全部博文(139)

文章存档

2015年(3)

2014年(11)

2013年(25)

2011年(1)

2009年(3)

2008年(29)

2007年(45)

2006年(22)

分类: Windows平台

2014-07-11 20:12:35

Full API由下面的函数组成:
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) ;

                                   
阅读(2323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~