Commit graph

21 commits

Author SHA1 Message Date
Jean-Marc Valin
edffe56b30
Add PSHR32_ovflw() and use it in IMDCT
Prevents integer overflow UB in the shift rounding when the signal blows
up on bad bitstreams (if it triggers, the signal was already unusable
anyway).
2025-03-21 17:17:19 -04:00
Jean-Marc Valin
c79a9bd1dd
Support 32-bit window and comb filter 2025-02-13 12:50:05 -05:00
Jean-Marc Valin
3116093d34
Support for full 32-bit FFT/MDCT twiddles/scaling 2025-02-13 12:50:04 -05:00
Jean-Marc Valin
abd512f7f6
Defining MAXG/MING/GCONST for log gain 2025-02-13 12:50:02 -05:00
Felicia Lim
7b05f44f4b
celt_lpc: avoid overflows when computing lpcs in fixed point
The LPCs are computed in 32-bit, so increase the allowed range from +/-8
to +/-64 to avoid overflows caught during fuzzing. Before downshifting
back down to the +/-8 range in the final 16-bit output, perform bandwidth
extension to avoid any additional overflow issues.
2021-03-02 21:35:16 -08:00
Tim Gates
a923218e9b
docs: fix simple typo, neareast -> nearest
There is a small typo in celt/fixed_generic.h.

Should read `nearest` rather than `neareast`.

Signed-off-by: Ralph Giles <giles@thaumas.net>
2020-12-08 14:27:55 -08:00
Mark Harris
d6d70371e8
Fix compiler warnings
- celt/modes.c:430:14: warning: cast from 'const unsigned char *' to
  'opus_int16 *' increases required alignment from 1 to 2 [-Wcast-align]
- 'C[0][1]' may be used uninitialized [-Wmaybe-uninitialized]
- Unused variable/parameter
- Value stored is never read
- MSVC warnings about "possible loss of data" due to type conversions
- MSVC warning C4146: unary minus operator applied to unsigned type
- silk/NLSF_del_dec_quant.c:137:20: warning: array subscript is above
  array bounds [-Warray-bounds] (gcc -O3 false positive)
- src/mlp_train.h:39:20: warning: function declaration isn't a prototype
  [-Wstrict-prototypes]
- Remove SMALL_FOOTPRINT code from SSE 4.1 FIR implementation, matching
  the C implementation.

The clang -Wcast-align warnings with SSE intrinsics are a known
clang issue: https://llvm.org/bugs/show_bug.cgi?id=20670
2017-02-26 19:10:45 -08:00
Jean-Marc Valin
a0bd7d3b84 fixes overflows in celt_iir() by doing proper saturation 2016-07-22 15:57:01 -04:00
Jean-Marc Valin
273906404c silencing overflows in MDCT and FFT 2016-07-22 15:30:19 -04:00
Jonathan Lennox
d6a44c5511 Add OPUS_FAST_INT64 flavors of celt/fixed_generic.h macros.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:02 -07:00
Rhishikesh Agashe
f133bac6f9 MIPS optimizations
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-06-19 04:04:51 -04:00
Jean-Marc Valin
2e6876c07a Using SSAT in SIG2WORD16() on ARMv6 2014-01-22 19:22:05 -05:00
Jean-Marc Valin
17b197837f Speed up the comb filter on ARM by using MAC16_32_Q16() 2014-01-21 11:07:57 -05:00
Jean-Marc Valin
35a44c6100 Fixes OPUS_SET_GAIN (was a bug in MULT16_32_P16()) 2013-11-29 12:21:34 -05:00
Jean-Marc Valin
3ab03e0556 First pass at making the analysis code run with FIXED_POINT
Code is still float, but at least tonality esitmation seems to work.
Speech/music analysis is still disabled.
2013-09-06 16:00:39 -04:00
Jean-Marc Valin
02fed471a4 Implements fixed-point silk_LPC_analysis_filter() in terms of celt_fir()
Saves 2.5% on ARM without any asm. The float build still uses the old
code because celt_fir() then becomes a float function.
2013-08-29 15:29:02 -04:00
Timothy B. Terriberry
2040606f4a Minor ARMv5E cleanups.
Missed the armv5e extension on a couple of functions.
2013-05-22 08:52:00 -07:00
Gregory Maxwell
28b41ae5ae Add OPUS_{GET|SET}_GAIN CTLs for adjusting output gain.
This CTL was requested by Nicolas George for FFmpeg.
2012-07-11 00:04:24 -04:00
Jean-Marc Valin
cb05e7cd96 s/FOUNDATION/COPYRIGHT OWNER/ in CELT code and "glue code"
Also added 3rd clause to "master" COPYING file
2012-04-20 16:41:42 -04:00
Jean-Marc Valin
1ee139bca0 Making the left shift macros use unsigned to avoid undefined behaviour
Result should be bit-identical on most machines/compilers, minus the undefined
behaviour
2011-09-23 13:08:04 -04:00
Jean-Marc Valin
c37499090b renames the libcelt/ directory to celt/ 2011-09-13 18:21:18 -07:00
Renamed from libcelt/fixed_generic.h (Browse further)