- Aug 11, 2023
-
-
Jean-Marc Valin authored
This only affects custom modes (builds with --enable-custom-modes) with frame sizes 2.5, 5, 10, and 20ms and sampling rates below 40 kHz. The problem does not affect normal use of Opus (using OpusEncoder/OpusDecoder) even when built with custom modes enabled, but only special applications that use OpusCustomEncoder/OpusCustomDecoder.
-
- Jan 18, 2023
-
-
This makes kiss_twiddle_cpx 4-byte aligned (instead of 2-byte) for fixed-point builds. Tested with an armv6j+nofp development board, CELT encoding becomes 1.4x as fast, and decoding over 2x. Performance gain is mostly attributed to the proper alignment of the static const array mdct_twiddles960. Co-authored-by:
David Gao <davidgao@google.com> Signed-off-by:
Felicia Lim <flim@google.com>
-
- Jul 22, 2022
-
-
Jean-Marc Valin authored
Reviewed by Mark Harris
-
Jean-Marc Valin authored
MULT16_32_QX() is now implemented using a signed-unsigned multiply, so the second argument can now have one extra bit compared to the old signed-signed implementation. Reviewed by Mark Harris
-
- Jul 15, 2022
-
-
Jean-Marc Valin authored
We need to move the history out of the way before we write to the shape array X, or else we get corruption of the audio. Signed-off-by:
Jean-Marc Valin <jmvalin@amazon.com>
-
- Jul 13, 2022
-
-
When building with FLOAT_APPROX. Signed-off-by:
Mark Harris <mark.hsj@gmail.com>
-
- Jul 10, 2022
-
-
Mark Harris authored
-
Timothy B. Terriberry authored
To avoid issues with empty compilation units.
-
Timothy B. Terriberry authored
Also #error if RTCD is enabled without a detection method, like Arm. A number of SILK functions also still used the lookup tables, even when RTCD was disabled. Fix those, too.
-
- Jul 09, 2022
-
-
Jean-Marc Valin authored
-
- Jul 08, 2022
-
-
Mark Harris authored
-
- Jul 06, 2022
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
- Jul 05, 2022
-
-
Jean-Marc Valin authored
The values were never used, but ubsan + valgrind would complain. Reviewed by Mark Harris
-
Jean-Marc Valin authored
Reviewed by Mark Harris
-
Jean-Marc Valin authored
Reviewed by Mark Harris
-
The underlying objects are all 8-bit integers. Verified that the generated assembly still just uses MOVD. Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
- Jun 30, 2022
-
-
Jean-Marc Valin authored
Estimate the rounding error so that we can have a useful margin of error when checking the asm against the C code even when the float operations get reordered due to -ffast-math.
-
Jean-Marc Valin authored
Makes ti possible to randomize (with --enable-fuzzing) the CPU flags so we can better test all the intrinsics implementations.
-
- Jun 29, 2022
-
-
Timothy B. Terriberry authored
Valgrind versions prior to 3.17.0 assume that an uninitialized value in ECX causes the whole output of CPUID to be uninitialized, even though ECX is only "read" by CPUID for certain values of EAX. Work around that by guaranteeing that ECX is initialized.
-
Timothy B. Terriberry authored
This function can fail if CPUID is not supported or the maximum supported value of EAX is less than the requested one. Check the return value and explicitly disable all SIMD if it does fail. This was happening before implicitly because of the initialization of info[] to zero, but being explicit about it makes it less likely someone will break this behavior because they did not realize what was going on.
-
- Jun 28, 2022
-
-
Jean-Marc Valin authored
Make sure we don't try to use the rtcd table when rtcd is disabled. That code still needs a lot more cleaning up.
-
Jean-Marc Valin authored
Reviewed by Timothy B. Terriberry.
-
- Jun 26, 2022
-
-
Jean-Marc Valin authored
We now update the background noise estimate even in frames classified as transient. It shouldn't be a problem because we're using min statistics. Also, it avoids problems when update frames get missclassified as transient. In addition, we now use the duration of losses rather than the number of lost packets to make decisions. That should make PLC/DTX behaviour more consistent across frame sizes.
-
- Apr 02, 2022
-
-
Jean-Marc Valin authored
Prevents using lrint/lrintf when compiling with -std=c90 even though the functions are in libm. This was causing tests to fail, likely due to incorrect prototypes.
-
- Jan 14, 2022
-
-
Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
- Dec 18, 2021
-
-
Jean-Marc Valin authored
These could result in 16-byte-aligned loads on unaligned data, causing a segfault.
-
- Dec 15, 2021
-
-
Felicia Lim authored
Before, an overflow can occur in the last loop if `len` is not a multiple of 4 as OP_CVTEPI16_EPI32_M64 tries to load 64 bits, but there are insufficient bits allocated in `x`.
-
- Jul 08, 2021
-
-
Felicia Lim authored
-
- Jun 10, 2021
-
-
Felicia Lim authored
-
- Jun 07, 2021
-
-
Felicia Lim authored
-
- Mar 03, 2021
-
-
Felicia Lim authored
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.
-
- Jan 23, 2021
-
-
Mark Harris authored
Reported by toto.
-
- Dec 08, 2020
-
-
There is a small typo in celt/fixed_generic.h. Should read `nearest` rather than `neareast`. Signed-off-by:
Ralph Giles <giles@thaumas.net>
-
- Oct 28, 2020
-
-
Tim-Philipp Müller authored
Tested on: - Linux/x86* with gcc - Android armv7 arm64 x86 x86_64 with clang - Windows x86 x86_64 with Visual Studio 2017 - Windows x86 x86_64 with MinGW - macOS x86_64 with clang - iOS arm64 x86_64 with clang Co-authored by: Nirbheek Chauhan <nirbheek@centricular.com> https://gitlab.xiph.org/xiph/opus/-/merge_requests/13
-
- Aug 22, 2020
-
-
Specify the precision as float to avoid truncating from double. Signed-off-by:
Mark Harris <mark.hsj@gmail.com>
-
_WIN32 is defined on all Windows platforms by every compiler that targets Windows. We do not need WIN32 at all. Signed-off-by:
Mark Harris <mark.hsj@gmail.com> Resolves https://github.com/xiph/opus/pull/104
-
This broke 5 years ago in 43120f00 Signed-off-by:
Mark Harris <mark.hsj@gmail.com>
-
- Jun 14, 2020
-
-
Ralph Giles authored
The autotools build doesn't set OPUS_HAVE_RTCD for arm targets, assuming all the supported intrinsics will work on the runtime cpu. The cmake build however defines this by default when the neon extension is available on the target. On Linux, the runtime cpu detection reads /proc/cpuinfo, so removing stdio.h from celt/os_support.h meant that the cmake build for arm targets failed. We don't currently have ci runs for that configuration, so this only became apparent through manual testing. Signed-off-by:
Marcus Asteborg <maastebo@microsoft.com> Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
Signed-off-by:
Ralph Giles <giles@thaumas.net>
-