| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The values were never used, but ubsan + valgrind would complain.
Reviewed by Mark Harris
|
|
|
|
| |
Reviewed by Mark Harris
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Makes ti possible to randomize (with --enable-fuzzing) the CPU flags
so we can better test all the intrinsics implementations.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Make sure we don't try to use the rtcd table when rtcd is disabled.
That code still needs a lot more cleaning up.
|
|
|
|
| |
Reviewed by Timothy B. Terriberry.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
| |
These could result in 16-byte-aligned loads on unaligned data, causing
a segfault.
|
|
|
|
|
|
| |
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`.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Reported by toto.
|
|
|
|
|
|
|
|
| |
There is a small typo in celt/fixed_generic.h.
Should read `nearest` rather than `neareast`.
Signed-off-by: Ralph Giles <giles@thaumas.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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 43120f00758219a784f952754f33b9788a8d731b
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
|
|
| |
This lighter-weight intrinsics header is available starting
with Microsoft Visual Studio 2017, so the previous change
to allow this header failed when building with Visual
Studio 2015.
Restores the appveyor continuous integration build.
|
|
|
|
|
|
| |
remove usage of stdio.h in production code
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
| |
in tests.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
| |
Signed-off-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
|
|
|
|
|
| |
When using OPUS_CUSTOM, `CELTDecoder->end` can be larger than 21.
Assert against 25 instead in OPUS_CUSTOM builds.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
| |
Broken by earlier ARM optimizations.
|
|
|
|
| |
Reported in https://github.com/xiph/opus/issues/108
|
| |
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
| |
Addresses the rest of https://github.com/xiph/opus/pull/79
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
| |
As suggested in https://github.com/xiph/opus/pull/83
|
|
|
|
|
|
|
|
|
|
|
| |
The error was:
c:\projects\opus\celt\celt_encoder.c(1019): fatal error C1001: An internal error has occurred in the compiler. [C:\projects\opus\win32\VS2015\opus.vcxproj]
(compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 255)
To work around this problem, try simplifying or changing the program near the locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Internal Compiler Error in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\CL.exe. You will be prompted to send an error report to Microsoft later.
|
|
|
|
|
| |
Didn't cause any problem, but still good to fix. Reported by
keithchugg on github.
|
|
|
|
|
|
|
| |
clang -Wcast-align warnings with ambisonics enabled
clang -Wnull-pointer-arithmetic warnings in test_opus_api.c
gcc -Wimplicit-fallthrough warnings on arm
msvc warning C4244 in celt_encoder.c with fixed point
|
| |
|
|
|
|
| |
Fixes test_opus_projection failure under ubsan, due to clz(0).
|
| |
|