| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
When building with FLOAT_APPROX.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
| |
|
|
|
|
| |
To avoid issues with empty compilation units.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
The indentation for nested #ifs was all over the place.
|
| |
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
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>
|
| |
|
|
|
|
| |
Signed-off-by: Doug Nazar <nazard@nazar.ca>
|
|
|
|
|
|
|
|
|
|
| |
Commit 6577534a80c8 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.
|
| |
|
|
|
|
| |
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
|
|
| |
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
|
|
|
|
|
| |
Doxygen was not able to resolve the references because it looked
for OPUS_APPLICATION_VOIP/@ref.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
|
|
| |
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
|
|
|
|
|
| |
This will fix -Wunused-but-set-variable on gcc
9.3 release build. Also remove unused assert.h.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
| |
|
|
|
|
| |
Reviewed by Jean-Marc Valin.
|
|
|
|
| |
Reviewed by Timothy B. Terriberry.
|
|
|
|
|
|
| |
The values were never used, but ubsan + valgrind would complain.
Reviewed by Mark Harris
|
|
|
|
|
|
| |
Even when the macro itself would overflow.
Reviewed by Mark Harris
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
| |
Unlike OPUS_SET_INBAND_FEC(1), the encoder does not necessarily
switch to SILK if we have music.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
The function copies NLSFs from the stack to the state which for
order 10 means we were copying uninitialized values. That in turn
breaks check-asm when comparing the state under valgrind.
Reviewed by Timothy B. Terriberry.
|
|
|
|
|
| |
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.
|
|
|
|
| |
Thanks Tim
|
|
|
|
|
|
|
| |
Even if the redundancy is ignored, the final range from the decoder is
needed for testing.
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In https://github.com/xiph/opus/issues/253, the encoder generates a
Hybrid frame with redundancy, to switch to CELT-only mode, and then
activates DTX immediately afterwards. The decoder ran Hybrid PLC,
which isn't right. Use CELT PLC instead if there was already a
transition to CELT via redundancy at the end of the previous frame.
Also do not use a stale CELT decoder to decode a second redundancy
frame when the first redundancy frame for a transition from SILK-only
mode was lost. Instead of mixing in old audio from the last time
that CELT was used, ignore the second redundancy frame in this case.
Alternatively the CELT decoder could be reset before decoding, but
it would not be ready until after the 2.5 ms of audio that is needed.
Reviewed by Jean-Marc Valin.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|