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

Side by Side Diff: celt/celt.h

Issue 28553003: Updating Opus to a pre-release of 1.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/opus
Patch Set: Removing failing file Created 7 years, 2 months 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.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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 #include "arch.h" 43 #include "arch.h"
44 44
45 #ifdef __cplusplus 45 #ifdef __cplusplus
46 extern "C" { 46 extern "C" {
47 #endif 47 #endif
48 48
49 #define CELTEncoder OpusCustomEncoder 49 #define CELTEncoder OpusCustomEncoder
50 #define CELTDecoder OpusCustomDecoder 50 #define CELTDecoder OpusCustomDecoder
51 #define CELTMode OpusCustomMode 51 #define CELTMode OpusCustomMode
52 52
53 #define _celt_check_mode_ptr_ptr(ptr) ((ptr) + ((ptr) - (const CELTMode**)(ptr)) ) 53 typedef struct {
54 int valid;
55 float tonality;
56 float tonality_slope;
57 float noisiness;
58 float activity;
59 float music_prob;
60 int bandwidth;
61 }AnalysisInfo;
62
63 #define __celt_check_mode_ptr_ptr(ptr) ((ptr) + ((ptr) - (const CELTMode**)(ptr) ))
64
65 #define __celt_check_analysis_ptr(ptr) ((ptr) + ((ptr) - (const AnalysisInfo*)(p tr)))
54 66
55 /* Encoder/decoder Requests */ 67 /* Encoder/decoder Requests */
56 68
57 #define CELT_SET_PREDICTION_REQUEST 10002 69 #define CELT_SET_PREDICTION_REQUEST 10002
58 /** Controls the use of interframe prediction. 70 /** Controls the use of interframe prediction.
59 0=Independent frames 71 0=Independent frames
60 1=Short term interframe prediction allowed 72 1=Short term interframe prediction allowed
61 2=Long term prediction allowed 73 2=Long term prediction allowed
62 */ 74 */
63 #define CELT_SET_PREDICTION(x) CELT_SET_PREDICTION_REQUEST, __opus_check_int(x) 75 #define CELT_SET_PREDICTION(x) CELT_SET_PREDICTION_REQUEST, __opus_check_int(x)
(...skipping 10 matching lines...) Expand all
74 86
75 /* Internal */ 87 /* Internal */
76 #define CELT_SET_START_BAND_REQUEST 10010 88 #define CELT_SET_START_BAND_REQUEST 10010
77 #define CELT_SET_START_BAND(x) CELT_SET_START_BAND_REQUEST, __opus_check_int(x) 89 #define CELT_SET_START_BAND(x) CELT_SET_START_BAND_REQUEST, __opus_check_int(x)
78 90
79 #define CELT_SET_END_BAND_REQUEST 10012 91 #define CELT_SET_END_BAND_REQUEST 10012
80 #define CELT_SET_END_BAND(x) CELT_SET_END_BAND_REQUEST, __opus_check_int(x) 92 #define CELT_SET_END_BAND(x) CELT_SET_END_BAND_REQUEST, __opus_check_int(x)
81 93
82 #define CELT_GET_MODE_REQUEST 10015 94 #define CELT_GET_MODE_REQUEST 10015
83 /** Get the CELTMode used by an encoder or decoder */ 95 /** Get the CELTMode used by an encoder or decoder */
84 #define CELT_GET_MODE(x) CELT_GET_MODE_REQUEST, _celt_check_mode_ptr_ptr(x) 96 #define CELT_GET_MODE(x) CELT_GET_MODE_REQUEST, __celt_check_mode_ptr_ptr(x)
85 97
86 #define CELT_SET_SIGNALLING_REQUEST 10016 98 #define CELT_SET_SIGNALLING_REQUEST 10016
87 #define CELT_SET_SIGNALLING(x) CELT_SET_SIGNALLING_REQUEST, __opus_check_int(x) 99 #define CELT_SET_SIGNALLING(x) CELT_SET_SIGNALLING_REQUEST, __opus_check_int(x)
88 100
101 #define CELT_SET_TONALITY_REQUEST 10018
102 #define CELT_SET_TONALITY(x) CELT_SET_TONALITY_REQUEST, __opus_check_int(x)
103 #define CELT_SET_TONALITY_SLOPE_REQUEST 10020
104 #define CELT_SET_TONALITY_SLOPE(x) CELT_SET_TONALITY_SLOPE_REQUEST, __opus_check _int(x)
89 105
106 #define CELT_SET_ANALYSIS_REQUEST 10022
107 #define CELT_SET_ANALYSIS(x) CELT_SET_ANALYSIS_REQUEST, __celt_check_analysis_pt r(x)
108
109 #define OPUS_SET_LFE_REQUEST 10024
110 #define OPUS_SET_LFE(x) OPUS_SET_LFE_REQUEST, __opus_check_int(x)
111
112 #define OPUS_SET_ENERGY_MASK_REQUEST 10026
113 #define OPUS_SET_ENERGY_MASK(x) OPUS_SET_ENERGY_MASK_REQUEST, __opus_check_val16 _ptr(x)
90 114
91 /* Encoder stuff */ 115 /* Encoder stuff */
92 116
93 int celt_encoder_get_size(int channels); 117 int celt_encoder_get_size(int channels);
94 118
95 int celt_encode_with_ec(OpusCustomEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, int frame_size, unsigned char *compressed, int nbCompressedBytes, ec_enc * enc); 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);
96 120
97 int celt_encoder_init(CELTEncoder *st, opus_int32 sampling_rate, int channels); 121 int celt_encoder_init(CELTEncoder *st, opus_int32 sampling_rate, int channels);
98 122
99 123
100 124
101 /* Decoder stuff */ 125 /* Decoder stuff */
102 126
103 int celt_decoder_get_size(int channels); 127 int celt_decoder_get_size(int channels);
104 128
105 129
106 int celt_decoder_init(CELTDecoder *st, opus_int32 sampling_rate, int channels); 130 int celt_decoder_init(CELTDecoder *st, opus_int32 sampling_rate, int channels);
107 131
108 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); 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);
109 133
110 #define celt_encoder_ctl opus_custom_encoder_ctl 134 #define celt_encoder_ctl opus_custom_encoder_ctl
111 #define celt_decoder_ctl opus_custom_decoder_ctl 135 #define celt_decoder_ctl opus_custom_decoder_ctl
112 136
137
138 #ifdef CUSTOM_MODES
139 #define OPUS_CUSTOM_NOSTATIC
140 #else
141 #define OPUS_CUSTOM_NOSTATIC static inline
142 #endif
143
144 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% */
146 static const unsigned char spread_icdf[4] = {25, 23, 2, 0};
147
148 static const unsigned char tapset_icdf[3]={2,1,0};
149
150 #ifdef CUSTOM_MODES
151 static const unsigned char toOpusTable[20] = {
152 0xE0, 0xE8, 0xF0, 0xF8,
153 0xC0, 0xC8, 0xD0, 0xD8,
154 0xA0, 0xA8, 0xB0, 0xB8,
155 0x00, 0x00, 0x00, 0x00,
156 0x80, 0x88, 0x90, 0x98,
157 };
158
159 static const unsigned char fromOpusTable[16] = {
160 0x80, 0x88, 0x90, 0x98,
161 0x40, 0x48, 0x50, 0x58,
162 0x20, 0x28, 0x30, 0x38,
163 0x00, 0x08, 0x10, 0x18
164 };
165
166 static inline int toOpus(unsigned char c)
167 {
168 int ret=0;
169 if (c<0xA0)
170 ret = toOpusTable[c>>3];
171 if (ret == 0)
172 return -1;
173 else
174 return ret|(c&0x7);
175 }
176
177 static inline int fromOpus(unsigned char c)
178 {
179 if (c<0x80)
180 return -1;
181 else
182 return fromOpusTable[(c>>3)-16] | (c&0x7);
183 }
184 #endif /* CUSTOM_MODES */
185
186 #define COMBFILTER_MAXPERIOD 1024
187 #define COMBFILTER_MINPERIOD 15
188
189 extern const signed char tf_select_table[4][8];
190
191 int resampling_factor(opus_int32 rate);
192
193 void preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_RESTRICT inp,
194 int N, int CC, int upsample, const opus_val16 *coef, cel t_sig *mem, int clip);
195
196 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,
198 const opus_val16 *window, int overlap);
199
200 void init_caps(const CELTMode *m,int *cap,int LM,int C);
201
202 #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);
204
205 void compute_inv_mdcts(const CELTMode *mode, int shortBlocks, celt_sig *X,
206 celt_sig * OPUS_RESTRICT out_mem[], int C, int LM);
207 #endif
208
113 #ifdef __cplusplus 209 #ifdef __cplusplus
114 } 210 }
115 #endif 211 #endif
116 212
117 #endif /* CELT_H */ 213 #endif /* CELT_H */
OLDNEW
« no previous file with comments | « celt/bands.c ('k') | celt/celt.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698