1 
2 #ifndef _MED_AEC3_COMM_H_
3 #define _MED_AEC3_COMM_H_
4 
5 /*****************************************************************************
6   1 ����ͷ�ļ�����
7 *****************************************************************************/
8 #include "codec_typedefine.h"
9 #include "med_fft.h"
10 #include "codec_com_codec.h"
11 #include "med_aec3_main.h"
12 
13 #ifdef __cplusplus
14 #if __cplusplus
15 extern "C" {
16 #endif
17 #endif
18 
19 /*****************************************************************************
20   2 �궨��
21 *****************************************************************************/
22 /* FFT IFFT�ص����� */
23 typedef VOS_VOID (*MED_AEC_FFT_CALLBACK)(VOS_INT16 *, VOS_INT16 *);
24 
25 #ifdef AEC_ONLY_SUPPORT_8k
26 #ifdef SPEECH_STREAM_UNIT_128
27 #define MED_AEC_FFT_LEN_NB              (256)
28 #else
29 #define MED_AEC_FFT_LEN_NB              (240)
30 #endif
31 #define MED_AEC_MAX_FFT_LEN             (MED_AEC_FFT_LEN_NB)                    /* ���FFT���� */
32 #else
33 #ifdef SPEECH_STREAM_UNIT_128
34 #define MED_AEC_FFT_LEN_NB              (256)
35 #define MED_AEC_FFT_LEN_WB              (512)
36 #else
37 #define MED_AEC_FFT_LEN_NB              (240)
38 #define MED_AEC_FFT_LEN_WB              (480)
39 #endif
40 #define MED_AEC_MAX_FFT_LEN             (MED_AEC_FFT_LEN_WB)                    /* ���FFT���� */
41 #endif
42 
43 #define MED_AEC_HF_AF_M                 (6)
44 
45 /* ��ʱȫ�����飬��AEC��ģ��ʹ�� */
46 //extern VOS_INT16                        g_ashwMedAecTmp1Len640[MED_AEC_MAX_FFT_LEN];
47 //extern VOS_INT16                        g_ashwMedAecTmp2Len640[MED_AEC_MAX_FFT_LEN];
48 //extern VOS_INT32                        g_aswMedAecTmp1Len320[CODEC_FRAME_LENGTH_WB];
49 //extern VOS_INT32                        g_aswMedAecTmp1Len640[MED_AEC_MAX_FFT_LEN];
50 
51 /* AEC �����궨��*/
52 //#define MED_AEC_GetshwVecTmp640Ptr1()   (&g_ashwMedAecTmp1Len640[0])            /* ��ʱȫ������ָ�� ����640 INT16 */
53 //#define MED_AEC_GetshwVecTmp640Ptr2()   (&g_ashwMedAecTmp2Len640[0])            /* ��ʱȫ������ָ�� ����640 INT16 */
54 //#define MED_AEC_GetswVecTmp320Ptr1()    (&g_aswMedAecTmp1Len320[0])             /* ��ʱȫ������ָ�� ����320 INT32 */
55 //#define MED_AEC_GetswVecTmp640Ptr1()    (&g_aswMedAecTmp1Len640[0])             /* ��ʱȫ������ָ�� ����640 INT32 */
56 
57 #define MED_AEC_OFFSET_THD              (60)                                    /* �ӳٲ�����ֵ */
58 #define MED_AEC_MAX_OFFSET              (960)                                   /* ��������ȣ���λ������ Q0*/
59 #define MED_AEC_MAX_TAIL_LEN            (960)                                   /* ���β�˳��ȣ���λms�����֧��60msβ���ӳ� Q0*/
60 /*****************************************************************************
61   3 ö�ٶ���
62 *****************************************************************************/
63 /* AF FFT���� */
64 enum MED_AEC_AF_FFT_LEN_ENUM
65 {
66 #ifdef SPEECH_STREAM_UNIT_128
67     MED_AEC_AF_FFT_LEN_NB = 256,                                                /* խ��FFT���� */
68     MED_AEC_AF_FFT_LEN_WB = 512,                                                /* ���FFT���� */
69 #else
70     MED_AEC_AF_FFT_LEN_NB = 240,                                                /* խ��FFT���� */
71     MED_AEC_AF_FFT_LEN_WB = 480,                                                /* ���FFT���� */
72 #endif
73     MED_AEC_AF_FFT_LEN_BUTT
74 };
75 typedef VOS_INT16  MED_AEC_AF_FFT_LEN_ENUM_INT16;
76 
77 /* ������ö�� */
78 enum CODEC_SWITCH_ENUM
79 {
80 	CODEC_SWITCH_OFF = 0,
81 	CODEC_SWITCH_ON,
82 	CODEC_SWITCH_BUTT
83 };
84 typedef VOS_UINT16 CODEC_SWITCH_ENUM_UINT16;
85 
86 /*****************************************************************************
87   4 ȫ�ֱ�������
88 *****************************************************************************/
89 
90 /*****************************************************************************
91   5 STRUCT����
92 *****************************************************************************/
93 
94 /*****************************************************************************
95   6 UNION����
96 *****************************************************************************/
97 
98 /*****************************************************************************
99   7 OTHERS����
100 *****************************************************************************/
101 
102 /*****************************************************************************
103   8 ��������
104 *****************************************************************************/
105 #ifdef DEBUG_AEC
fprint_vec_int32(FILE * fd,VOS_INT32 * buf,VOS_INT32 len)106 static VOS_VOID fprint_vec_int32(FILE *fd, VOS_INT32 *buf, VOS_INT32 len)
107 {
108     for (VOS_INT32 i = 0; i < len - 1; i++) {
109         fprintf(fd, "%d ", buf[i]);
110     }
111     fprintf(fd, "%d\n", buf[len - 1]);
112 }
113 #endif
114 
115 #ifdef __cplusplus
116 #if __cplusplus
117 }
118 #endif
119 #endif
120 
121 #endif /* end of med_aec_main.h*/
122 
123