summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libopus/celt/celt.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libopus/celt/celt.h')
-rw-r--r--lib/rbcodec/codecs/libopus/celt/celt.h44
1 files changed, 38 insertions, 6 deletions
diff --git a/lib/rbcodec/codecs/libopus/celt/celt.h b/lib/rbcodec/codecs/libopus/celt/celt.h
index b1967516dc..24b6b2b520 100644
--- a/lib/rbcodec/codecs/libopus/celt/celt.h
+++ b/lib/rbcodec/codecs/libopus/celt/celt.h
@@ -50,6 +50,8 @@ extern "C" {
50#define CELTDecoder OpusCustomDecoder 50#define CELTDecoder OpusCustomDecoder
51#define CELTMode OpusCustomMode 51#define CELTMode OpusCustomMode
52 52
53#define LEAK_BANDS 19
54
53typedef struct { 55typedef struct {
54 int valid; 56 int valid;
55 float tonality; 57 float tonality;
@@ -57,17 +59,27 @@ typedef struct {
57 float noisiness; 59 float noisiness;
58 float activity; 60 float activity;
59 float music_prob; 61 float music_prob;
60 int bandwidth; 62 float music_prob_min;
61}AnalysisInfo; 63 float music_prob_max;
64 int bandwidth;
65 float activity_probability;
66 float max_pitch_ratio;
67 /* Store as Q6 char to save space. */
68 unsigned char leak_boost[LEAK_BANDS];
69} AnalysisInfo;
70
71typedef struct {
72 int signalType;
73 int offset;
74} SILKInfo;
62 75
63#define __celt_check_mode_ptr_ptr(ptr) ((ptr) + ((ptr) - (const CELTMode**)(ptr))) 76#define __celt_check_mode_ptr_ptr(ptr) ((ptr) + ((ptr) - (const CELTMode**)(ptr)))
64 77
65#define __celt_check_analysis_ptr(ptr) ((ptr) + ((ptr) - (const AnalysisInfo*)(ptr))) 78#define __celt_check_analysis_ptr(ptr) ((ptr) + ((ptr) - (const AnalysisInfo*)(ptr)))
66 79
67/* Encoder/decoder Requests */ 80#define __celt_check_silkinfo_ptr(ptr) ((ptr) + ((ptr) - (const SILKInfo*)(ptr)))
68 81
69/* Expose this option again when variable framesize actually works */ 82/* Encoder/decoder Requests */
70#define OPUS_FRAMESIZE_VARIABLE 5010 /**< Optimize the frame size dynamically */
71 83
72 84
73#define CELT_SET_PREDICTION_REQUEST 10002 85#define CELT_SET_PREDICTION_REQUEST 10002
@@ -116,6 +128,9 @@ typedef struct {
116#define OPUS_SET_ENERGY_MASK_REQUEST 10026 128#define OPUS_SET_ENERGY_MASK_REQUEST 10026
117#define OPUS_SET_ENERGY_MASK(x) OPUS_SET_ENERGY_MASK_REQUEST, __opus_check_val16_ptr(x) 129#define OPUS_SET_ENERGY_MASK(x) OPUS_SET_ENERGY_MASK_REQUEST, __opus_check_val16_ptr(x)
118 130
131#define CELT_SET_SILK_INFO_REQUEST 10028
132#define CELT_SET_SILK_INFO(x) CELT_SET_SILK_INFO_REQUEST, __celt_check_silkinfo_ptr(x)
133
119/* Encoder stuff */ 134/* Encoder stuff */
120 135
121int celt_encoder_get_size(int channels); 136int celt_encoder_get_size(int channels);
@@ -194,6 +209,13 @@ static OPUS_INLINE int fromOpus(unsigned char c)
194 209
195extern const signed char tf_select_table[4][8]; 210extern const signed char tf_select_table[4][8];
196 211
212#if defined(ENABLE_HARDENING) || defined(ENABLE_ASSERTIONS)
213void validate_celt_decoder(CELTDecoder *st);
214#define VALIDATE_CELT_DECODER(st) validate_celt_decoder(st)
215#else
216#define VALIDATE_CELT_DECODER(st)
217#endif
218
197int resampling_factor(opus_int32 rate); 219int resampling_factor(opus_int32 rate);
198 220
199void celt_preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_RESTRICT inp, 221void celt_preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_RESTRICT inp,
@@ -201,7 +223,17 @@ void celt_preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_RES
201 223
202void comb_filter(opus_val32 *y, opus_val32 *x, int T0, int T1, int N, 224void comb_filter(opus_val32 *y, opus_val32 *x, int T0, int T1, int N,
203 opus_val16 g0, opus_val16 g1, int tapset0, int tapset1, 225 opus_val16 g0, opus_val16 g1, int tapset0, int tapset1,
204 const opus_val16 *window, int overlap); 226 const opus_val16 *window, int overlap, int arch);
227
228#ifdef NON_STATIC_COMB_FILTER_CONST_C
229void comb_filter_const_c(opus_val32 *y, opus_val32 *x, int T, int N,
230 opus_val16 g10, opus_val16 g11, opus_val16 g12);
231#endif
232
233#ifndef OVERRIDE_COMB_FILTER_CONST
234# define comb_filter_const(y, x, T, N, g10, g11, g12, arch) \
235 ((void)(arch),comb_filter_const_c(y, x, T, N, g10, g11, g12))
236#endif
205 237
206void init_caps(const CELTMode *m,int *cap,int LM,int C); 238void init_caps(const CELTMode *m,int *cap,int LM,int C);
207 239