- Jul 10, 2022
-
-
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.
-
Timothy B. Terriberry authored
The indentation for nested #ifs was all over the place.
-
- Jul 09, 2022
-
-
Jean-Marc Valin authored
-
Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
- Jul 08, 2022
-
-
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>
-
Mark Harris authored
-
- Jul 06, 2022
-
-
Doug Nazar authored
Signed-off-by:
Doug Nazar <nazard@nazar.ca>
-
Timothy B. Terriberry authored
Commit 6577534a 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.
-
Jean-Marc Valin authored
-
Signed-off-by:
Mark Harris <mark.hsj@gmail.com>
-
Mark Harris authored
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>
-
Jean-Marc Valin authored
-
Mark Harris authored
Reviewed by Jean-Marc Valin.
-
- Jul 05, 2022
-
-
Mark Harris authored
Reviewed by Timothy B. Terriberry.
-
Jean-Marc Valin authored
The values were never used, but ubsan + valgrind would complain. Reviewed by Mark Harris
-
Jean-Marc Valin authored
Even when the macro itself would overflow. Reviewed by Mark Harris
-
Jean-Marc Valin authored
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>
-
Jean-Marc Valin authored
-
- Jul 01, 2022
-
-
Jean-Marc Valin authored
Unlike OPUS_SET_INBAND_FEC(1), the encoder does not necessarily switch to SILK if we have music.
-
- 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
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.
-
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.
-
Jean-Marc Valin authored
Thanks Tim
-
- Jun 26, 2022
-
-
Mark Harris authored
Even if the redundancy is ignored, the final range from the decoder is needed for testing. Reviewed by Timothy B. Terriberry.
-
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.
-
- Jun 25, 2022
-
-
Mark Harris authored
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.
-
- Apr 02, 2022
-
-
Jean-Marc Valin authored
-
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.
-