summaryrefslogtreecommitdiff
path: root/src/opus_decoder.c
Commit message (Collapse)AuthorAgeFilesLines
* Fixes build when ENABLE_NEURAL_FEC is offJean-Marc Valin2023-01-111-1/+2
|
* Controlling DRED on the encode sideJean-Marc Valin2022-12-211-0/+2
|
* Clear FEC buffer on new dred packetJean-Marc Valin2022-12-201-1/+4
| | | | Fixes "FEC buffer full" issue
* Fix DRED segfaultJean-Marc Valin2022-12-201-7/+14
| | | | Properly re-initialize DRED (only) when needed
* Should handle mixes of PLC and DREDJean-Marc Valin2022-12-191-7/+6
|
* Fix the normal PLC caseJean-Marc Valin2022-12-131-1/+1
|
* DRED: First version that (kinda) worksJean-Marc Valin2022-12-091-2/+20
| | | | Probably still has many bugs
* DRED: better namingJean-Marc Valin2022-12-071-3/+3
|
* DRED: Decode variable number of framesJean-Marc Valin2022-12-071-2/+4
|
* DRED cleanup, support for variable number of framesJean-Marc Valin2022-12-061-0/+4
|
* DRED integration work in progressJean-Marc Valin2022-12-061-0/+5
|
* Code for inserting/extracting DRED in/from packetsJean-Marc Valin2022-12-021-1/+52
|
* Fix 8101b33 to decode ignored redundancyMark Harris2022-06-261-5/+9
| | | | | | | Even if the redundancy is ignored, the final range from the decoder is needed for testing. Reviewed by Timothy B. Terriberry.
* Correct redundancy handling with lost/DTX framesMark Harris2022-06-251-2/+7
| | | | | | | | | | | | | | | | | 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.
* Some missing checksJean-Marc Valin2018-03-271-0/+2
|
* Asserting on some ctl() calls that should never failJean-Marc Valin2018-03-271-14/+14
|
* Adds Opus decoder state validationJean-Marc Valin2018-03-271-0/+21
|
* Fixing no-redundancy CELT->SILK and CELT->hybrid transitionsJean-Marc Valin2018-03-271-20/+28
| | | | | 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
* Fix typo in a comment in opus_decoder.cMatt Brubeck2017-08-291-1/+1
| | | | Signed-off-by: Ralph Giles <giles@thaumas.net>
* Fixing some opus_int vs opus_int32 mismatchesJean-Marc Valin2016-10-051-1/+1
| | | | Reported by Mark Warner.
* Make it possible to ignore inverted phase stereo for downmix purposesexp_bitstream7Jean-Marc Valin2016-09-011-0/+20
|
* Avoids having the Opus-level "arch" be set to 0 on encoder/decoder resetJean-Marc Valin2015-12-301-1/+1
|
* Cisco optimization for x86 & fixed pointxiangmingzhu2014-10-031-1/+3
| | | | | | | | | | 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>
* -DOPUS_WILL_BE_SLOW to disable the no-optimization warningJean-Marc Valin2014-09-301-1/+1
|
* Moves opus_packet_get_samples_per_frame() to opus.cJean-Marc Valin2014-01-301-21/+0
|
* Fixes the decode_fec case for b76888dMark Harris2014-01-071-2/+2
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Preventing unnecessary stack use when using a large decode bufferJean-Marc Valin2014-01-071-0/+18
| | | | | This was causing pseudostack builds to fail because opus_demo uses a 2-second buffer.
* Reduces the decoder stack use by removing the pcm_silk buffer in fixed-pointJean-Marc Valin2014-01-061-17/+29
| | | | We only keep when concealing less than 10ms with SILK.
* Adds Neon assembly for correlation/convolutionTimothy B. Terriberry2013-11-181-2/+0
| | | | | | | Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up FIRs, IIRs and auto-correlations Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* oops, don't need RESTORE_STACK when there's no stackJean-Marc Valin2013-11-111-6/+0
|
* More size-zero VLA fixes and making opus_decode* return BAD_ARG on framesize<0Jean-Marc Valin2013-11-111-3/+18
|
* Fixes some minor issues found by scan buildJean-Marc Valin2013-11-091-3/+3
|
* Moves opus_packet_parse_impl() from opus_decoder.c to opus.cJean-Marc Valin2013-10-281-181/+0
| | | | Because it's indirectly used in the encoder (through the repackerizer).
* Add a little missive when compiling without optimization.Gregory Maxwell2013-10-281-2/+6
| | | | | | | 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.
* Replace "inline" with OPUS_INLINE.Gregory Maxwell2013-10-281-1/+1
| | | | | | | | | 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.
* Oops, thanks to Mark Harris for spotting this!Jean-Marc Valin2013-10-141-1/+1
|
* opus_packet_parse_impl() now computes the packet size with paddingJean-Marc Valin2013-10-141-15/+16
| | | | | This should fix decoding of padded multistream packets and (hopefully) multistream fec.
* Rejects bad multistream frame lengthMark Harris2013-10-131-1/+1
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fixes PLC for sizes that don't match basic Opus frame sizes.Mark Harris2013-10-131-1/+9
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fix 40/60ms zero-length frame decode failureMark Harris2013-10-111-8/+18
| | | | | | | | 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>
* Do up-front validation of multistream packetsJean-Marc Valin2013-10-111-10/+9
| | | | | Prevents the decoder from being out-of-sync on an invalid packet. Also returns OPUS_INVALID_PACKET on a corrupted FEC packet.
* Braces go on the next line.Gregory Maxwell2013-06-291-7/+14
|
* Brace a number of if statements instead of one-lining them.Gregory Maxwell2013-06-291-7/+21
|
* Fixes some return without va_end in the api, adds tests.Gregory Maxwell2013-06-291-20/+10
| | | | | Also makes the CTL bad argument handling more consistent to avoid mistakes like that in the future. Also updates the variable duration docs.
* Add run-time CPU detection and support for ARM architectureAurélien Zanelli2013-06-041-0/+3
| | | | | | | | | | | | 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>
* Change few remaining instances of short to opus_int16Jean-Marc Valin2013-05-181-7/+7
|
* Fixes FEC issues introduced in 7fcd66cJean-Marc Valin2013-04-231-6/+9
| | | | | | 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).
* Applies soft-clipping to the int decoder API.Jean-Marc Valin2013-03-011-7/+16
| | | | | | | | 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.
* Fixes OPUS_GET_LAST_PACKET_DURATIONJean-Marc Valin2012-12-051-0/+7
| | | | Calling PLC/FEC with a different size was not updating it
* Adds assert to catch bug from previous commitJean-Marc Valin2012-12-051-0/+1
|