doubao_chat/include_lib/media/spectrum/spectrum_fft.h

77 lines
3.0 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef SPECTRUM_FFT_API_H
#define SPECTRUM_FFT_API_H
#include "spectrum/SpectrumShow_api.h"
//该模块 mips 消耗5M
//RAM 单声道时:4.4Kbyte
//RAM 双声道时:5.4Kbyte
/**
* @brief 频谱运算参数结构体
*/
typedef struct _spectrum_fft_open_parm {
unsigned int sr; /*!< 采样率 */
unsigned char channel; /*!< 通道数 */
unsigned char mode; /*!< 模式,双声道起作用,0计算的是第一声道的频谱值,1计算的是第二声道频谱值,2为第一声道与第二声道相加除2的频谱值 */
unsigned short run_points; /*!< 运行一次采样点数 */
float attackFactor; /*!< 下降因子[0,1) */
float releaseFactor; /*!< 上升因子[0,1) */
} spectrum_fft_open_parm;
/*----------------------------------------------------------------------------*/
/**@brief 打开频谱运算
@param priv 私有指针
@param parm 始化参数,详见结构体spectrum_fft_open_parm
@return 句柄
*/
/*----------------------------------------------------------------------------*/
void *audio_spectrum_fft_open(void *priv, void *parm);
/*----------------------------------------------------------------------------*/
/**@brief 关闭频谱计算处理
@param priv 句柄
@return 0:成功 -1:失败
*/
/*----------------------------------------------------------------------------*/
int audio_spectrum_fft_close(void *priv);
/*----------------------------------------------------------------------------*/
/**@brief 频谱计算同步处理,每次run都会把输入buf消耗完,才会往下走
@param priv 句柄
@param data 输入数据
@param len 输入数据长度
@param sample_rate 采样率
@return len
@note 频谱计算处理,只获取输入的数据,不改变输入的数据
*/
/*----------------------------------------------------------------------------*/
int audio_spectrum_fft_run(void *priv, short *data, int len, int sample_rate);
/*----------------------------------------------------------------------------*/
/**@brief 频谱计算运行过程做开关处理
@param priv 句柄
@param en 0 关闭频响运算 1 打开频响运算
*/
/*----------------------------------------------------------------------------*/
void audio_spectrum_fft_switch(void *priv, unsigned char en);
/*----------------------------------------------------------------------------*/
/**@brief 获取频谱个数
@param priv 句柄
@return 返回频谱的个数
*/
/*----------------------------------------------------------------------------*/
int audio_spectrum_fft_get_num(void *priv);
/*----------------------------------------------------------------------------*/
/**@brief 获取频谱值
@param priv 句柄
@return 返回存储频谱值的地址
*/
/*----------------------------------------------------------------------------*/
short *audio_spectrum_fft_get_val(void *priv);
#endif