diff options
author | Nils Wallménius <nils@rockbox.org> | 2014-01-19 16:31:59 +0100 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2014-07-13 11:12:40 +0200 |
commit | 9b7ec42403073ee887efc531c153e6b1b6c15bab (patch) | |
tree | 07e72fe9d817c65a6fede22955344a870842d5e6 /lib/rbcodec/codecs/libopus/celt/celt.h | |
parent | e557951c94c1efa769900257e466900f0ffeb53b (diff) | |
download | rockbox-9b7ec42403073ee887efc531c153e6b1b6c15bab.tar.gz rockbox-9b7ec42403073ee887efc531c153e6b1b6c15bab.zip |
Sync to upstream libopus
Sync to commit bb4b6885a139644cf3ac14e7deda9f633ec2d93c
This brings in a bunch of optimizations to decode speed
and memory usage. Allocations are switched from using
the pseudostack to using the real stack. Enabled hacks
to reduce stack usage.
This should fix crashes on sansa clip, although some
files will not play due to failing allocations in the
codec buffer.
Speeds up decoding of the following test files:
H300 (cf) C200 (arm7tdmi) ipod classic (arm9e)
16 kbps (silk) 14.28 MHz 4.00 MHz 2.61 MHz
64 kbps (celt) 4.09 MHz 8.08 MHz 6.24 MHz
128 kbps (celt) 1.93 MHz 8.83 MHz 6.53 MHz
Change-Id: I851733a8a5824b61feb363a173091bc7e6629b58
Diffstat (limited to 'lib/rbcodec/codecs/libopus/celt/celt.h')
-rw-r--r-- | lib/rbcodec/codecs/libopus/celt/celt.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/rbcodec/codecs/libopus/celt/celt.h b/lib/rbcodec/codecs/libopus/celt/celt.h index 5deea1f0aa..b1967516dc 100644 --- a/lib/rbcodec/codecs/libopus/celt/celt.h +++ b/lib/rbcodec/codecs/libopus/celt/celt.h | |||
@@ -134,7 +134,8 @@ int celt_decoder_get_size(int channels); | |||
134 | 134 | ||
135 | 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); |
136 | 136 | ||
137 | int celt_decode_with_ec(OpusCustomDecoder * OPUS_RESTRICT st, const unsigned char *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 char *data, |
138 | int len, opus_val16 * OPUS_RESTRICT pcm, int frame_size, ec_dec *dec, int accum); | ||
138 | 139 | ||
139 | #define celt_encoder_ctl opus_custom_encoder_ctl | 140 | #define celt_encoder_ctl opus_custom_encoder_ctl |
140 | #define celt_decoder_ctl opus_custom_decoder_ctl | 141 | #define celt_decoder_ctl opus_custom_decoder_ctl |
@@ -205,10 +206,10 @@ void comb_filter(opus_val32 *y, opus_val32 *x, int T0, int T1, int N, | |||
205 | void init_caps(const CELTMode *m,int *cap,int LM,int C); | 206 | void init_caps(const CELTMode *m,int *cap,int LM,int C); |
206 | 207 | ||
207 | #ifdef RESYNTH | 208 | #ifdef RESYNTH |
208 | void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsample, const opus_val16 *coef, celt_sig *mem, celt_sig * OPUS_RESTRICT scratch); | 209 | void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsample, const opus_val16 *coef, celt_sig *mem); |
209 | 210 | void celt_synthesis(const CELTMode *mode, celt_norm *X, celt_sig * out_syn[], | |
210 | void compute_inv_mdcts(const CELTMode *mode, int shortBlocks, celt_sig *X, | 211 | opus_val16 *oldBandE, int start, int effEnd, int C, int CC, int isTransient, |
211 | celt_sig * OPUS_RESTRICT out_mem[], int C, int LM); | 212 | int LM, int downsample, int silence); |
212 | #endif | 213 | #endif |
213 | 214 | ||
214 | #ifdef __cplusplus | 215 | #ifdef __cplusplus |