This commit is contained in:
lmx
2025-10-29 13:10:02 +08:00
commit 49a07fa419
2284 changed files with 642060 additions and 0 deletions

View File

@ -0,0 +1,63 @@
#ifndef __AUDIO_GAIN_PORCESS__H
#define __AUDIO_GAIN_PORCESS__H
#include "media/audio_stream.h"
#ifndef RUN_NORMAL
#define RUN_NORMAL 0
#endif
#ifndef RUN_BYPASS
#define RUN_BYPASS 1
#endif
struct aud_gain_parm {
float gain;//增加多少dB
u8 channel;//通道数
u8 indata_inc;//channel ==1 ?1:2;
u8 outdata_inc;//channel ==1 ?1:2;
u8 bit_wide;//0:16bit 132bit
u16 gain_name;
};
struct aud_gain_parm_update {
float gain;//增加多少dB powf(10, 界面值gain / 20.0f)
};
struct aud_gain_process {
struct audio_stream_entry entry; // 音频流入口
struct list_head hentry; //
struct aud_gain_parm parm;
u8 status; //内部运行状态机
u8 update; //设置参数更新标志
};
struct aud_gain_process *audio_gain_process_open(struct aud_gain_parm *parm);
void audio_gain_process_run(struct aud_gain_process *hdl, s16 *data, int len);
void audio_gain_process_close(struct aud_gain_process *hdl);
void audio_gain_process_update(u16 gain_name, struct aud_gain_parm_update *parm);
void audio_gain_process_bypass(u16 gain_name, u8 bypass);
struct aud_gain_process *get_cur_gain_hdl_by_name(u32 gain_name);
/*
* *in:输入数据地址
* *out:输出数据地址
* gain:dB值(powf(10, 界面值gain / 20.0f))
* channel:输入数据通道数
* Indatainc:同个声道相邻两点的差值 channel ==1 ?1:2
* OutdataInc:同个声道相邻两点的差值 channel ==1 ?1:2
* per_channel_npoint:一个声道的点数
* */
extern void GainProcess_16Bit(short *in, short *out, float gain, int channel, int IndataInc, int OutdataInc, int per_channel_npoint); //16位宽
/*
* *in:输入数据地址
* *out:输出数据地址
* gain:dB值powf(10, 界面值gain / 20.0f)
* channel:输入数据通道数
* Indatainc:同个声道相邻两点的差值 channel ==1 ?1:2
* OutdataInc:同个声道相邻两点的差值 channel ==1 ?1:2
* per_channel_npoint:一个声道的点数
* */
extern void GainProcess_32Bit(int *in, int *out, float gain, int channel, int IndataInc, int OutdataInc, int per_channel_npoint); //32位宽
#endif