- Oct 27, 2011
-
-
Jean-Marc Valin authored
-
Gregory Maxwell authored
-
- Oct 26, 2011
-
-
Gregory Maxwell authored
Renames test_opus to opus_demo and adds the test_opus_api, test_opus_encode, test_opus_decode test programs.
-
Jean-Marc Valin authored
Making SILK bandwidth changes non-normative when there's no redundancy
-
Jean-Marc Valin authored
-
-
Jean-Marc Valin authored
-
- Oct 25, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
When FEC is enabled in the decoder but not included in the bit-stream we could end up applying the PLC on a non-existant side.
-
- Oct 24, 2011
-
-
Some clean-up from JM's prior edits, as well as * Additional clarificatino of TOC sequence restrictions (e.g., if you need to decode a length, there must be enough bytes in the packet for it, etc.). * Added a summary of TOC sequence restrictions. * Added a stereo unmixing section. * Reworked Delay Compensation section into a general Resampling section. * Further cleanups of switching/transitions, including new diagrams for all of the normative and recommended non-normative transitions.
-
Jean-Marc Valin authored
-
Also some comment/warning fixes
-
- Oct 22, 2011
-
-
Jean-Marc Valin authored
Only encoder changes were necessary because this uses the same "redundant frames" mechanism as SILK<->CELT switching. This also fixes a regression introduced in 78291b27 that was causing the encoder to go back and forth between bandwidths when SILK wasn't ready to change.
-
- Oct 21, 2011
-
-
Gregory Maxwell authored
-
Gregory Maxwell authored
Fix stack corruption with high rate SILK encoding added by the recent CBR changes and enable -fstack-protector-all on gcc autotools builds.
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
This fixes an overflow that was caused by having a huge gain
-
Jean-Marc Valin authored
-
- Oct 20, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
This is achieved by running the encoding process in a loop and padding when we don't reach the exact rate. It also implements VBR-with-cap, which means we no longer need to artificially decrease the SILK bandwidth when it's close to the cap.
-
- Oct 19, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Gregory Maxwell authored
Correct encoder/decoder state mismatch and spurious state resetting in the encoder when side is reset. Patch from Tim which corrects a glitch during mode switching tests.
-
- Oct 18, 2011
-
-
Jean-Marc Valin authored
-
If there is activity in a regular, side SILK frame, then it must be coded, so we don't need to send a mid-only flag.
-
- Oct 17, 2011
-
-
Jean-Marc Valin authored
-
-
Neither the encoder nor decoder were incrementing the side-channel index for a mid-only frame. Unfortunately, they used that index to index the VAD flags and LBRR flags. This made the VAD flags for the side channel particularly useless, as you couldn't tell which frame a flag belonged to without decoding most of the packet. It also desynched the LBRR information, as look at the wrong LBRR flags to decide when it had to code a mid-only flag. If some frames were skipped in the side channel, then the last few VAD flags and LBRR flags would be garbage, but still get encoded. This patch fixes this by continuing to increment nFramesDecoded or nFramesEncoded, even when skipping a frame in the side channel. This makes the side-channel VAD and LBRR flags correspond to the correct time periods for frames greater than 20 ms. It also fixes a bug where if DTX was not used on the packet where the side channel got turned off, it would never get used again until the encoder attempted to encode something in the side channel again.
-
b24e5746 introduced changes to LastGainIndex which broke conditional coding for side frames after a mid-only frame (i.e., in a 60 ms frame where the side is coded, not coded, then coded again). These rules were a mess in general, however, because the side channel state kept a different nFramesDecoded count from the mid channel state, and had no way to tell if the prior side frame was coded. This patch attempts to rationalize them by moving the conditional coding decision up to the top level, where all this information is available. The first coded side frame after an uncoded side frame now always uses independent coding. If such a frame is also not the first side frame in an Opus frame, then it doesn't include an LTP scaling parameter (because the LTP state is well-defined).
-
Jean-Marc Valin authored
-
- Oct 16, 2011
-
-
Gregory Maxwell authored
Only one of the two required checks in the encoder were updated. Thanks to Tim for tracking down the actual cause of the mismatch.
-
- Oct 14, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
These were caused by not prefilling the hybrid CELT state
-