| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
Fixes "FEC buffer full" issue
|
|
|
|
| |
Properly re-initialize DRED (only) when needed
|
| |
|
| |
|
|
|
|
| |
Probably still has many bugs
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Even if the redundancy is ignored, the final range from the decoder is
needed for testing.
Reviewed by Timothy B. Terriberry.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We make sure the CELT PLC we do in the transition uses the same bandwidth
as the previous (CELT) packet and not the new bandwidth
|
|
|
|
| |
Signed-off-by: Ralph Giles <giles@thaumas.net>
|
|
|
|
| |
Reported by Mark Warner.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
optimization, default is disabled.
3. Official test cases are verified and passed.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
| |
This was causing pseudostack builds to fail because opus_demo uses a 2-second
buffer.
|
|
|
|
| |
We only keep when concealing less than 10ms with SILK.
|
|
|
|
|
|
|
| |
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
| |
|
| |
|
| |
|
|
|
|
| |
Because it's indirectly used in the encoder (through the repackerizer).
|
|
|
|
|
|
|
| |
The library really depends on all the little fixed point math functions
being inlined in order to get acceptable performance. It turns out that
it's very easy for someone to compile with optimization disable when
twiddling cflags or cooking up their own build system.
|
|
|
|
|
|
|
|
|
| |
Newer versions of MSVC are unhappy with the strategy of the build
environment redefining "inline" (even though they don't support the
actual keyword). Instead we define OPUS_INLINE to the right thing
in opus_defines.h.
This is the same approach we use for restrict.
|
| |
|
|
|
|
|
| |
This should fix decoding of padded multistream packets and (hopefully)
multistream fec.
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
| |
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
|
|
| |
Decoding failed with OPUS_BAD_ARG on a packet containing a 40ms or
60ms zero-length frame when it followed a hybrid or MDCT frame.
It now invokes the PLC for the duration of the packet as expected.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
| |
Prevents the decoder from being out-of-sync on an invalid packet. Also
returns OPUS_INVALID_PACKET on a corrupted FEC packet.
|
| |
|
| |
|
|
|
|
|
| |
Also makes the CTL bad argument handling more consistent to avoid mistakes
like that in the future. Also updates the variable duration docs.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run-time CPU detection (RTCD) is enabled by default if target platform support
it.
It can be disable at compile time with --disable-rtcd option.
Add RTCD support for ARM architecture.
Thanks to Timothy B. Terriberry for help and code review
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
| |
|
|
|
|
|
|
| |
This left FEC disabled on the decoder side for all cases except concatenated
packets. Also fixes a FEC bug in opus_demo (wrong output buffer size
calculation).
|
|
|
|
|
|
|
|
| |
opus_decode() and opus_multistream_decode() now apply soft clipping
before converting to 16-bit int. This should produce better a higher
quality result than hard clipping like we were doing before. The _float()
API isn't affected, but the clipping function is exported so users can
manually apply the soft clipping.
|
|
|
|
| |
Calling PLC/FEC with a different size was not updating it
|
| |
|