summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Switch from narrowband to wideband at 9 kb/s, don't use mediumbandexp_bandwidth_fix4Jean-Marc Valin2018-05-241-8/+12
|
* Fix decision thresholds for larger frame sizesexp_bandwidth_fix3Jean-Marc Valin2018-05-241-1/+2
| | | | Don't assume that frames larger than 20 ms save any overhead compared to 20 ms.
* Fixes a SILK bandwidth switching regressionJean-Marc Valin2018-05-244-7/+27
| | | | | | | 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.
* Improving rate control for low bitrateJean-Marc Valin2018-05-174-53/+70
| | | | | | 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.
* Oops, fix NaN testJean-Marc Valin2018-05-171-1/+1
|
* Aborting on NaN in CELTJean-Marc Valin2018-05-152-0/+11
| | | | | | NaNs should be filtered at the Opus layer, so if there are any in the CELT encoder, then it's likely something went horribly wrong (e.g. corrupted state). In that case, better abort than have something bad happen.
* Silk makes use of Opus VADGustaf Ullberg2018-05-148-12/+44
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* README: Update to reflect RFC 7845 and 8251Mark Harris2018-05-061-5/+5
|
* Fix opus_packet_parse() non-null arg attributeMark Harris2018-05-031-1/+1
| | | | It is the size array that must be non-null.
* two more asserts I forgotJean-Marc Valin2018-03-272-1/+2
|
* Misc assertion cleanupJean-Marc Valin2018-03-272-3/+4
|
* Harden SILK x86 codeJean-Marc Valin2018-03-275-9/+9
|
* Hardening silk/fixedJean-Marc Valin2018-03-2712-38/+38
|
* Hardening asserts for SILK floatJean-Marc Valin2018-03-2711-32/+32
|
* Converting some silk_assert()s into hardening celt_assert()sJean-Marc Valin2018-03-2729-96/+96
| | | | | Only converted the ones that are really sure (not signal-dependent) and that shouldn't add much run-time complexity
* Some missing checksJean-Marc Valin2018-03-272-1/+3
|
* Adding multistream decoder validationJean-Marc Valin2018-03-271-0/+16
|
* Asserting on some ctl() calls that should never failJean-Marc Valin2018-03-272-14/+16
|
* Adds Opus decoder state validationJean-Marc Valin2018-03-271-0/+21
|
* Adding decoder state validationJean-Marc Valin2018-03-272-8/+48
|
* 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
* Adding ENABLE_HARDENINGJean-Marc Valin2018-03-2717-30/+57
| | | | Enables "safes" assertions even with ENABLE_ASSERTIONS isn't set
* Support for Ambisonics.Andrew Allen2018-03-213-0/+193
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Using a first-order filter for DC rejectionJean-Marc Valin2018-03-121-32/+12
| | | | | | | | | A second-order DC rejection filter is uselsss unless we have complex poles. However, complex poles means we have to compute the filter as a single pass (rather than two casdaded first-order filters), which has numerical issues that would require a higher complexity to solve. So rather than waste cycles with a second-order filter (with a longer impulse response), we just go with a first-order filter.
* Don't enable -fstack-protector-strong on Windows for nowJean-Marc Valin2018-03-021-1/+8
| | | | It adds a libssp-0.dll dependency and prevents static linking
* Adding -D_FORTIFY_SOURCE=2 when possibleJean-Marc Valin2018-02-222-0/+57
|
* Fixed off-by-one issue in Silk DTXGustaf Ullberg2018-02-222-2/+2
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Enable -fstack-protector-strong by default on x86Jean-Marc Valin2018-02-221-0/+31
| | | | | | The size overhead seems to be about 1% and the speed overhead is "in the noise" (<2%). The automake code is copied from opus-tools
* Fix comment to take into account previous commitJean-Marc Valin2018-02-211-1/+1
|
* Increasing the CELT bit allocation slightly for stereo hybridJean-Marc Valin2018-02-211-1/+1
| | | | | | Fixes a "regression" from 1.2 to 1.3-beta that was especially noticeable on a Korean speech sample. (it wasn't a real regression since 1.2 only worked because it was using CELT)
* Fix divide-by-zeros in opus_demo stats codeJean-Marc Valin2018-02-201-11/+20
|
* Fixes integer overflow in SILK VAD for 10-ms framesJean-Marc Valin2018-02-181-6/+5
| | | | Reported by Chandrakala Madhira on the mailing list
* Forgot one RFC8251 behaviour to disable with --disable-rfc8251Jean-Marc Valin2018-02-181-0/+2
| | | | Reported by daddesio in #opus
* Disabling weak transients and 5ms resolution on voiced framesJean-Marc Valin2018-02-151-2/+2
|
* Add a simple masking model to the spreading decisionJean-Marc Valin2018-02-133-8/+46
| | | | This improves cases where a whole region is dominated by a handful of tones
* Making sure importance[] is initialized even when we don't use dynallocJean-Marc Valin2018-02-131-0/+3
|
* oopsJean-Marc Valin2018-02-131-1/+1
|
* Improve TF analysis RDO to take into account how important each band isJean-Marc Valin2018-02-131-19/+34
| | | | Also adds the error terms for band 0 that were previously omitted
* Scaling back the pitch filter when most of the energy is above 3.2 kHzJean-Marc Valin2018-01-263-3/+22
| | | | That corresponds to the fundamental for the shortest pitch period allowed
* Fixes NaN issues in compute_stereo_width()Jean-Marc Valin2017-12-311-0/+6
|
* Making opus-uninstalled.pc use the .la instead of the .av1.3-betaJean-Marc Valin2017-12-191-1/+1
| | | | | This makes it possible to link dynamically with an uninstalled libopus. It does require the executable to use libtool however.
* Decouple OpusProjection* API from static matrices.Andrew Allen2017-12-073-33/+69
| | | | | Change-Id: I3db285875b6b5548decc436be00096b97be1be3c Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Ensure mapping matrix size is always valid.Andrew Allen2017-12-075-7/+40
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fix memory issues in Projection API.Andrew Allen2017-12-078-322/+448
| | | | | | Modified by Jean-Marc Valin Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* fix float constantsJean-Marc Valin2017-11-161-1/+1
|
* Define integer types from stdint.h where it's availableKári Tristan Helgason2017-11-161-9/+16
| | | | | | | This fixes issues when using neon intrinsics on 64-bit systems. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Tuning decision thresholds for low-bitrate musicJean-Marc Valin2017-11-161-13/+20
|
* Fix matrix export via CTL func.Andrew Allen2017-11-102-6/+10
| | | | | | | | Ensure matrix is properly exported from projection encoder. Change-Id: I5ede77e4f4d0dc82074e2230780777af542a416e Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Retrained speech/music RNNJean-Marc Valin2017-11-093-205/+642
| | | | Larger network, using 8-bit weights
* Add missing include to the listJean-Marc Valin2017-11-071-0/+1
|