28 #define ENCODER_VERSION "0025"
31 #include "bt_target.h"
44 #define SBC_NO_PCM_CPY_OPTION TRUE
48 #define SBC_JOINT_STE_INCLUDED FALSE
50 #define SBC_MAX_NUM_OF_SUBBANDS 8
52 #define SBC_MAX_NUM_OF_CHANNELS 1
53 #define SBC_MAX_NUM_OF_BLOCKS 16
55 #define SBC_LOUDNESS 0
69 #define SBC_JOINT_STEREO 3
73 #define SBC_BLOCK_2 12
74 #define SBC_BLOCK_3 16
78 #ifndef SBC_MAX_NUM_FRAME
79 #define SBC_MAX_NUM_FRAME 1
83 #define SBC_DSP_OPT FALSE
87 #ifndef SBC_USE_ARM_PRAGMA
88 #define SBC_USE_ARM_PRAGMA FALSE
93 #ifndef SBC_ARM_ASM_OPT
94 #define SBC_ARM_ASM_OPT FALSE
98 #ifndef SBC_GHS_COMPILER
99 #define SBC_GHS_COMPILER FALSE
103 #ifndef SBC_ARM_COMPILER
104 #define SBC_ARM_COMPILER TRUE
110 #define SBC_IPAQ_OPT TRUE
115 #ifndef SBC_IS_64_MULT_IN_WINDOW_ACCU
116 #define SBC_IS_64_MULT_IN_WINDOW_ACCU FALSE
122 #ifndef SBC_IS_64_MULT_IN_IDCT
123 #define SBC_IS_64_MULT_IN_IDCT FALSE
128 #ifndef SBC_IS_64_MULT_IN_QUANTIZER
129 #define SBC_IS_64_MULT_IN_QUANTIZER TRUE
134 #define SBC_FAST_DCT TRUE
138 #ifndef SBC_JOINT_STE_INCLUDED
139 #define SBC_JOINT_STE_INCLUDED TRUE
143 #ifndef SBC_NO_PCM_CPY_OPTION
144 #define SBC_NO_PCM_CPY_OPTION FALSE
147 #define MINIMUM_ENC_VX_BUFFER_SIZE (8*10*2)
148 #ifndef ENC_VX_BUFFER_SIZE
149 #define ENC_VX_BUFFER_SIZE (MINIMUM_ENC_VX_BUFFER_SIZE + 64)
153 #ifndef SBC_FOR_EMBEDDED_LINUX
154 #define SBC_FOR_EMBEDDED_LINUX FALSE
158 #define SBC_BLK (SBC_MAX_NUM_OF_CHANNELS * SBC_MAX_NUM_OF_SUBBANDS)
160 #include "sbc_types.h"
162 typedef struct SBC_ENC_PARAMS_TAG
164 SINT16 s16SamplingFreq;
165 SINT16 s16ChannelMode;
166 SINT16 s16NumOfSubBands;
167 SINT16 s16NumOfChannels;
168 SINT16 s16NumOfBlocks;
169 SINT16 s16AllocationMethod;
175 UINT8 u8NumPacketToEncode;
176 #if (SBC_JOINT_STE_INCLUDED == TRUE)
177 SINT16 as16Join[SBC_MAX_NUM_OF_SUBBANDS];
180 SINT16 s16MaxBitNeed;
181 SINT16 as16ScaleFactor[SBC_MAX_NUM_OF_CHANNELS*SBC_MAX_NUM_OF_SUBBANDS];
183 SINT16 *ps16NextPcmBuffer;
184 #if (SBC_NO_PCM_CPY_OPTION == TRUE)
185 SINT16 *ps16PcmBuffer;
187 SINT16 as16PcmBuffer[SBC_MAX_NUM_FRAME*SBC_MAX_NUM_OF_BLOCKS * SBC_MAX_NUM_OF_CHANNELS * SBC_MAX_NUM_OF_SUBBANDS];
190 SINT16 s16ScartchMemForBitAlloc[16];
192 SINT32 s32SbBuffer[SBC_MAX_NUM_OF_CHANNELS * SBC_MAX_NUM_OF_SUBBANDS * SBC_MAX_NUM_OF_BLOCKS];
194 SINT16 as16Bits[SBC_MAX_NUM_OF_CHANNELS*SBC_MAX_NUM_OF_SUBBANDS];
197 UINT8 *pu8NextPacket;
199 UINT16 u16PacketLength;
209 SBC_API
extern void SBC_Encoder(SBC_ENC_PARAMS *strEncParams);
210 SBC_API
extern void SBC_Encoder_Init(SBC_ENC_PARAMS *strEncParams);