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.
Would fail like:
Checking if "compiler supports ARMv7/AArch64 NEON intrinsics" : links: NO
Checking if "compiler supports ARMv7/AArch64 NEON intrinsics with -mfpu=neon" : links: YES
Checking if "compiler supports AArch64 NEON intrinsics" : links: NO
Checking if "compiler supports AArch64 NEON intrinsics with -mfpu=neon" : links: NO
Message: Compiler does not support AArch64 NEON intrinsics
../silk/meson.build:28:45: ERROR: Unknown variable "have_arm_intrinsics_or_asm".
since commit 0808841125.
It's been deprecated for decades and in Debian system it's starting
to print warnings. Just use grep -F instead.
Signed-off-by: Ralph Giles <giles@thaumas.net>
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>
Not sure if it was the original intent, but we now reduce the
loss percentage threshold for pitch scaling as 1/nFramesPerPacket
since only the first frame will have pitch scaling anyway.
As a side effect, this brings back the original behavior of
disabling pitch scaling for 0% loss.
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
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>
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.
Opus compare is used to generate test vectors so no cosmetic changes
is taken. Hence we move this warning to level 4 for opus compare.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
This commit addresses the issues of not finding lrintf and lrint. We
switch to check_symbol_exists instead per cmake documentation. Also
make sure to link math lib for detection for nix.
For MSVC the issue for non x86 builds was that the standard was set to
default which is 199409L. This resulted in not using lrintf even that
it was found. To address this we set the C standard to C11 and it will
only apply to newer versions of MSVC where the /std flag is supported.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Commit 6577534a80 switched from using __get_cpuid() to
__get_cpuid_count(), but the corresponding configure check was not
updated.
Since __get_cpuid_count() was introduced much later, make sure we
check for the function we actually use.
Thanks to Mark Harris for the report.