Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: celt/celt.h

Issue 107243004: Updating Opus to release 1.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/opus
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « celt/bands.c ('k') | celt/celt_decoder.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2007-2008 CSIRO 1 /* Copyright (c) 2007-2008 CSIRO
2 Copyright (c) 2007-2009 Xiph.Org Foundation 2 Copyright (c) 2007-2009 Xiph.Org Foundation
3 Copyright (c) 2008 Gregory Maxwell 3 Copyright (c) 2008 Gregory Maxwell
4 Written by Jean-Marc Valin and Gregory Maxwell */ 4 Written by Jean-Marc Valin and Gregory Maxwell */
5 /** 5 /**
6 @file celt.h 6 @file celt.h
7 @brief Contains all the functions for encoding and decoding audio 7 @brief Contains all the functions for encoding and decoding audio
8 */ 8 */
9 9
10 /* 10 /*
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 float music_prob; 59 float music_prob;
60 int bandwidth; 60 int bandwidth;
61 }AnalysisInfo; 61 }AnalysisInfo;
62 62
63 #define __celt_check_mode_ptr_ptr(ptr) ((ptr) + ((ptr) - (const CELTMode**)(ptr) )) 63 #define __celt_check_mode_ptr_ptr(ptr) ((ptr) + ((ptr) - (const CELTMode**)(ptr) ))
64 64
65 #define __celt_check_analysis_ptr(ptr) ((ptr) + ((ptr) - (const AnalysisInfo*)(p tr))) 65 #define __celt_check_analysis_ptr(ptr) ((ptr) + ((ptr) - (const AnalysisInfo*)(p tr)))
66 66
67 /* Encoder/decoder Requests */ 67 /* Encoder/decoder Requests */
68 68
69 /* Expose this option again when variable framesize actually works */
70 #define OPUS_FRAMESIZE_VARIABLE 5010 /**< Optimize the frame size d ynamically */
71
72
69 #define CELT_SET_PREDICTION_REQUEST 10002 73 #define CELT_SET_PREDICTION_REQUEST 10002
70 /** Controls the use of interframe prediction. 74 /** Controls the use of interframe prediction.
71 0=Independent frames 75 0=Independent frames
72 1=Short term interframe prediction allowed 76 1=Short term interframe prediction allowed
73 2=Long term prediction allowed 77 2=Long term prediction allowed
74 */ 78 */
75 #define CELT_SET_PREDICTION(x) CELT_SET_PREDICTION_REQUEST, __opus_check_int(x) 79 #define CELT_SET_PREDICTION(x) CELT_SET_PREDICTION_REQUEST, __opus_check_int(x)
76 80
77 #define CELT_SET_INPUT_CLIPPING_REQUEST 10004 81 #define CELT_SET_INPUT_CLIPPING_REQUEST 10004
78 #define CELT_SET_INPUT_CLIPPING(x) CELT_SET_INPUT_CLIPPING_REQUEST, __opus_check _int(x) 82 #define CELT_SET_INPUT_CLIPPING(x) CELT_SET_INPUT_CLIPPING_REQUEST, __opus_check _int(x)
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 115
112 #define OPUS_SET_ENERGY_MASK_REQUEST 10026 116 #define OPUS_SET_ENERGY_MASK_REQUEST 10026
113 #define OPUS_SET_ENERGY_MASK(x) OPUS_SET_ENERGY_MASK_REQUEST, __opus_check_val16 _ptr(x) 117 #define OPUS_SET_ENERGY_MASK(x) OPUS_SET_ENERGY_MASK_REQUEST, __opus_check_val16 _ptr(x)
114 118
115 /* Encoder stuff */ 119 /* Encoder stuff */
116 120
117 int celt_encoder_get_size(int channels); 121 int celt_encoder_get_size(int channels);
118 122
119 int celt_encode_with_ec(OpusCustomEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, int frame_size, unsigned char *compressed, int nbCompressedBytes, ec_enc * enc); 123 int celt_encode_with_ec(OpusCustomEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, int frame_size, unsigned char *compressed, int nbCompressedBytes, ec_enc * enc);
120 124
121 int celt_encoder_init(CELTEncoder *st, opus_int32 sampling_rate, int channels); 125 int celt_encoder_init(CELTEncoder *st, opus_int32 sampling_rate, int channels,
126 int arch);
122 127
123 128
124 129
125 /* Decoder stuff */ 130 /* Decoder stuff */
126 131
127 int celt_decoder_get_size(int channels); 132 int celt_decoder_get_size(int channels);
128 133
129 134
130 int celt_decoder_init(CELTDecoder *st, opus_int32 sampling_rate, int channels); 135 int celt_decoder_init(CELTDecoder *st, opus_int32 sampling_rate, int channels);
131 136
132 int celt_decode_with_ec(OpusCustomDecoder * OPUS_RESTRICT st, const unsigned cha r *data, int len, opus_val16 * OPUS_RESTRICT pcm, int frame_size, ec_dec *dec); 137 int celt_decode_with_ec(OpusCustomDecoder * OPUS_RESTRICT st, const unsigned cha r *data, int len, opus_val16 * OPUS_RESTRICT pcm, int frame_size, ec_dec *dec);
133 138
134 #define celt_encoder_ctl opus_custom_encoder_ctl 139 #define celt_encoder_ctl opus_custom_encoder_ctl
135 #define celt_decoder_ctl opus_custom_decoder_ctl 140 #define celt_decoder_ctl opus_custom_decoder_ctl
136 141
137 142
138 #ifdef CUSTOM_MODES 143 #ifdef CUSTOM_MODES
139 #define OPUS_CUSTOM_NOSTATIC 144 #define OPUS_CUSTOM_NOSTATIC
140 #else 145 #else
141 #define OPUS_CUSTOM_NOSTATIC static inline 146 #define OPUS_CUSTOM_NOSTATIC static OPUS_INLINE
142 #endif 147 #endif
143 148
144 static const unsigned char trim_icdf[11] = {126, 124, 119, 109, 87, 41, 19, 9, 4 , 2, 0}; 149 static const unsigned char trim_icdf[11] = {126, 124, 119, 109, 87, 41, 19, 9, 4 , 2, 0};
145 /* Probs: NONE: 21.875%, LIGHT: 6.25%, NORMAL: 65.625%, AGGRESSIVE: 6.25% */ 150 /* Probs: NONE: 21.875%, LIGHT: 6.25%, NORMAL: 65.625%, AGGRESSIVE: 6.25% */
146 static const unsigned char spread_icdf[4] = {25, 23, 2, 0}; 151 static const unsigned char spread_icdf[4] = {25, 23, 2, 0};
147 152
148 static const unsigned char tapset_icdf[3]={2,1,0}; 153 static const unsigned char tapset_icdf[3]={2,1,0};
149 154
150 #ifdef CUSTOM_MODES 155 #ifdef CUSTOM_MODES
151 static const unsigned char toOpusTable[20] = { 156 static const unsigned char toOpusTable[20] = {
152 0xE0, 0xE8, 0xF0, 0xF8, 157 0xE0, 0xE8, 0xF0, 0xF8,
153 0xC0, 0xC8, 0xD0, 0xD8, 158 0xC0, 0xC8, 0xD0, 0xD8,
154 0xA0, 0xA8, 0xB0, 0xB8, 159 0xA0, 0xA8, 0xB0, 0xB8,
155 0x00, 0x00, 0x00, 0x00, 160 0x00, 0x00, 0x00, 0x00,
156 0x80, 0x88, 0x90, 0x98, 161 0x80, 0x88, 0x90, 0x98,
157 }; 162 };
158 163
159 static const unsigned char fromOpusTable[16] = { 164 static const unsigned char fromOpusTable[16] = {
160 0x80, 0x88, 0x90, 0x98, 165 0x80, 0x88, 0x90, 0x98,
161 0x40, 0x48, 0x50, 0x58, 166 0x40, 0x48, 0x50, 0x58,
162 0x20, 0x28, 0x30, 0x38, 167 0x20, 0x28, 0x30, 0x38,
163 0x00, 0x08, 0x10, 0x18 168 0x00, 0x08, 0x10, 0x18
164 }; 169 };
165 170
166 static inline int toOpus(unsigned char c) 171 static OPUS_INLINE int toOpus(unsigned char c)
167 { 172 {
168 int ret=0; 173 int ret=0;
169 if (c<0xA0) 174 if (c<0xA0)
170 ret = toOpusTable[c>>3]; 175 ret = toOpusTable[c>>3];
171 if (ret == 0) 176 if (ret == 0)
172 return -1; 177 return -1;
173 else 178 else
174 return ret|(c&0x7); 179 return ret|(c&0x7);
175 } 180 }
176 181
177 static inline int fromOpus(unsigned char c) 182 static OPUS_INLINE int fromOpus(unsigned char c)
178 { 183 {
179 if (c<0x80) 184 if (c<0x80)
180 return -1; 185 return -1;
181 else 186 else
182 return fromOpusTable[(c>>3)-16] | (c&0x7); 187 return fromOpusTable[(c>>3)-16] | (c&0x7);
183 } 188 }
184 #endif /* CUSTOM_MODES */ 189 #endif /* CUSTOM_MODES */
185 190
186 #define COMBFILTER_MAXPERIOD 1024 191 #define COMBFILTER_MAXPERIOD 1024
187 #define COMBFILTER_MINPERIOD 15 192 #define COMBFILTER_MINPERIOD 15
188 193
189 extern const signed char tf_select_table[4][8]; 194 extern const signed char tf_select_table[4][8];
190 195
191 int resampling_factor(opus_int32 rate); 196 int resampling_factor(opus_int32 rate);
192 197
193 void preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_RESTRICT inp, 198 void celt_preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_RES TRICT inp,
194 int N, int CC, int upsample, const opus_val16 *coef, cel t_sig *mem, int clip); 199 int N, int CC, int upsample, const opus_val16 *coef, cel t_sig *mem, int clip);
195 200
196 void comb_filter(opus_val32 *y, opus_val32 *x, int T0, int T1, int N, 201 void comb_filter(opus_val32 *y, opus_val32 *x, int T0, int T1, int N,
197 opus_val16 g0, opus_val16 g1, int tapset0, int tapset1, 202 opus_val16 g0, opus_val16 g1, int tapset0, int tapset1,
198 const opus_val16 *window, int overlap); 203 const opus_val16 *window, int overlap);
199 204
200 void init_caps(const CELTMode *m,int *cap,int LM,int C); 205 void init_caps(const CELTMode *m,int *cap,int LM,int C);
201 206
202 #ifdef RESYNTH 207 #ifdef RESYNTH
203 void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsample, c onst opus_val16 *coef, celt_sig *mem, celt_sig * OPUS_RESTRICT scratch); 208 void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsample, c onst opus_val16 *coef, celt_sig *mem, celt_sig * OPUS_RESTRICT scratch);
204 209
205 void compute_inv_mdcts(const CELTMode *mode, int shortBlocks, celt_sig *X, 210 void compute_inv_mdcts(const CELTMode *mode, int shortBlocks, celt_sig *X,
206 celt_sig * OPUS_RESTRICT out_mem[], int C, int LM); 211 celt_sig * OPUS_RESTRICT out_mem[], int C, int LM);
207 #endif 212 #endif
208 213
209 #ifdef __cplusplus 214 #ifdef __cplusplus
210 } 215 }
211 #endif 216 #endif
212 217
213 #endif /* CELT_H */ 218 #endif /* CELT_H */
OLDNEW
« no previous file with comments | « celt/bands.c ('k') | celt/celt_decoder.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698