Age | Commit message (Collapse) | Author |
|
Test: make
Change-Id: I995f04a04951ca22916a7b418afdd8ba59bcd130
|
|
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
|
|
Bug: 167721530
Test: atest android.mediav2.cts
Test: run vts -m VtsHalMediaC2V1_0TargetAudioDecTest
Test: run vts -m VtsHalMediaC2V1_0TargetAudioEncTest
Change-Id: Id6900a9d5084fb6ae840f44a2b9133f95e1b96bc
|
|
_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
|
|
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
|
|
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>
|
|
|
|
|
|
This reverts commit 4f5557c3095a1d212161609ff638cdae67a9b303.
Signed-off-by: Felicia Lim <flim@google.com>
|
|
am: 5d2e0a05b7
Change-Id: I0f4b6c628e1b0119b3dcd6394394622142dbb55f
|
|
a prior change reduced iterations through the input buffer to avoid the
NEON operations from overrunning the end of the locally allocated
buffer. While avoiding the overrun, it generated bad results.
Here we instead extend the locally allocated buffers enough that the
original iteration count won't overrun.
Some pre-existing bit-exact issues remain.
Bug: 136616344
Test: CTS + bit-exact cross-checks.
(cherry picked from commit aae866aed579da4e1c3299a1e9b94a1713a0decb)
Merged-In: Ifb790a7d1d09a4ce7da900b43e3fa1f7ab01ac53
Change-Id: Ia4a94c89979d6b3b0ddead135036aec40259f53a
|
|
Thanks to Ray Essick
|
|
7daa5b5802
am: 3e8d8b2700
Change-Id: Id10de3b4f32d0ba2157453e731b56bb583a70405
|
|
am: 7daa5b5802
Change-Id: I634598d9b0d5d49cba03397dfa340502066593ca
|
|
Apply patch from https://git.xiph.org/?p=opus.git;a=commit;h=812ae3f
Bug: 138863511
Test: Verified builds for arm*
Change-Id: Ia5cc3e9be3372dcfddb4379a7afd135dbe6e21e0
|
|
NEON optimizations overrun buffer due to improper termination condition
Also mark several arm-optimized routines which deliberately cause integer overflow
so they won't trap.
Bug: 136616344
Test: run cts -m CtsMediaTestCases -t
android.media.cts.EncoderTest#testOpusEncoders' on 32 bits project
Change-Id: Ib48b17fd1e4b13fe37c0e71d5f33f6f59f1f97d1
|
|
|
|
|
|
Broken by earlier ARM optimizations.
|
|
Recast several points in the Opus code where integer overflow happens.
The code expects overflow in these macros, but doesn't expect the
system to abort when it happens. This also includes saturating math.
Bug: 123428774
Test: Cts android.media.cts.EncoderTest#testOpusEncoders
|
|
Bug: 63932386
Test: - verified builds for arm*/x86*
- checked functionality using an emulator and stagefright
Change-Id: I10c4b267be1c846d8992e3c5f6d2576c2cb258a9
Signed-off-by: Felicia Lim <flim@google.com>
|
|
|
|
or "just" 1 year and 4 months for 10-ms frames.
The overflow can eventually cause a divide-by-zero when counter == -16
Thanks to Dmitry Malinin for reporting the bug.
|
|
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
|
|
The bug was triggered because f982b84d started using prefill for
SILK bandwidth changes, which reinitialized the encoder state and
prevented the variable lowpass from working properly. To fix the problem,
we preserve the sampling rate and variable low-pass when prefilling.
|
|
Using a finer table for the rate to SNR curves in silk_control_SNR().
It's now possible to have an SNR that reaches 0, so we can lower bitrate
down to ~5 kbps for narrowband and 5.5 kbps for wideband.
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
|
|
|
Only converted the ones that are really sure (not signal-dependent)
and that shouldn't add much run-time complexity
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Reported by Chandrakala Madhira on the mailing list
|
|
SILK was being allocated too few bits for stereo hybrid, often resulting
in forced narrowing of the width. We now allocate more bits to SILK
and reduce the threshold for narrowing. This improves quality enough that
the bitrate threshold for switching to SILK can be increased to 44 kb/s.
|
|
Distinguish source files for the SSE 4.1 instruction
set extension consistently by their filename. This makes
it easier to check the correct flags are being set at
build time.
Signed-off-by: Jonathan Lennox <jonathan@vidyo.com>
|
|
Change-Id: I551f1de5c5e121ac1275334e67c7e0f96ab18114
Test: - verified builds for arm*/mips*/x86*
- checked functionality using an emulator and stagefright
|
|
Both versions of silk/tables_NLSF_CB had symbols
named silk_NLSF_CB1_Wght_Q9 which causes problems
if both files are build as part of the same
compilation unit. Rename the wideband version
to include a 'WB' string to avoid the conflict.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
It's unnecessary, and isn't defined correctly on floating-point.
This makes us correctly use Neon functions (in floating-point mode) on
platforms where Neon is detected by RTCD.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Thanks to petrufm for pointing that out:
https://github.com/xiph/opus/issues/35
|
|
Change-Id: I607a8b75b0711a485384d6f854cf6e2ec18b38b7
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
The optimization is bit exact with C function.
Change-Id: Ifb8f04b19f2d576e79ce5dcfa7e0fc374d71d6c8
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Split to silk_biquad_alt_stride1() and silk_biquad_alt_stride2(),
so that it can be optimized more efficiently when stride is 2.
This change in C code is bit exact with the origin.
Change-Id: Idaefe670397016ace2a489e3435ac61b7dbe79d5
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
The optimization is bit exact with C function.
This optimization speeds up fixed-point SILK encoder on NEON about
5% to 8%. (Tested on Acer Chromebook, ARMv7 Processor rev 3 (v7l).)
Change-Id: I582f6f3585b7946149e16a2ad3084ebc0ae79a4f
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
- celt/modes.c:430:14: warning: cast from 'const unsigned char *' to
'opus_int16 *' increases required alignment from 1 to 2 [-Wcast-align]
- 'C[0][1]' may be used uninitialized [-Wmaybe-uninitialized]
- Unused variable/parameter
- Value stored is never read
- MSVC warnings about "possible loss of data" due to type conversions
- MSVC warning C4146: unary minus operator applied to unsigned type
- silk/NLSF_del_dec_quant.c:137:20: warning: array subscript is above
array bounds [-Warray-bounds] (gcc -O3 false positive)
- src/mlp_train.h:39:20: warning: function declaration isn't a prototype
[-Wstrict-prototypes]
- Remove SMALL_FOOTPRINT code from SSE 4.1 FIR implementation, matching
the C implementation.
The clang -Wcast-align warnings with SSE intrinsics are a known
clang issue: https://llvm.org/bugs/show_bug.cgi?id=20670
|
|
|
|
|
|
The optimization is bit exact with C function.
Change-Id: Ib3bdc26a5a4ebe02e7f24be85104e8e9a2a9a738
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
It checks that no clearly unstable filter passes the LPC_inv_pred_gain()
test. Also, this will make it possible to check assembly for correctness.
Modified from an original patch from Linfeng Zhang <linfengz@google.com>.
|