summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Reset nb_no_activity_frames when analysis DTX isn't usedanalysis_fix2Jean-Marc Valin2019-02-131-0/+2
|
* Improve silence handlingJean-Marc Valin2019-02-131-1/+5
| | | | Copy the previous analysis data instead of flagging as invalid
* Fixing initialization issues on small frame sizesJean-Marc Valin2019-02-131-3/+5
|
* Fixes analysis buffering for silence and complexity changesJean-Marc Valin2019-02-134-20/+50
| | | | The previous code would go out of sync in those cases.
* Avoiding problems with x87Jean-Marc Valin2019-02-121-1/+1
| | | | logE[b] can end up slightly larger than tonal->highE[b] due to rounding
* Properly handle a bad stream_id in OPUS_MULTISTREAM_GET_*_STATE_REQUESTJean-Marc Valin2019-01-232-2/+2
| | | | Thanks to Dmitriy for reporting this.
* Refactoring: Isolating the matrix-vector product in gemm_accum()Jean-Marc Valin2018-11-221-36/+39
|
* Remove useless OPUS_SET_EXPERT_FRAME_DURATION() on CELTJean-Marc Valin2018-10-301-1/+0
| | | | | | | frame diration is only handled at the Opus layer. There's no change in behaviour, just less puzzling code. Thanks to Dmitriy <dmilvdv@gmail.com> for reporting this.
* Retrain RNN classifier weights to include reverberated speechJean-Marc Valin2018-09-252-627/+625
|
* Fixes packet parsing for 16-bit CPUsv1.3-rc2Jean-Marc Valin2018-09-141-1/+1
| | | | | | | Without that change, a very long (> 682 ms) illegal packet could trigger a wrap-around in the test and be accepted as valid. Only 16-bit architectures (e.g. TI C5x) were affected.
* Avoiding get_demixing_matrix() symbol clash on unified buildJean-Marc Valin2018-09-102-8/+8
|
* OpusMSDecoder does not have an arch fieldJean-Marc Valin2018-09-101-4/+0
|
* Apply equal bit allocation to ambisonic channelsMarcin Gorzel2018-08-311-51/+6
| | | | | | Fixes issue #95 on GitHub. Signed-off-by: Felicia Lim <flim@google.com>
* Fixing arithmetic problems for 16-bit CPUs in ambisonics_rate_allocation()Jean-Marc Valin2018-07-281-5/+5
|
* Fix bitrate allocation for channel mapping 2Felicia Lim2018-07-281-1/+3
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fixes C90 "mixed declarations and code" errorJean-Marc Valin2018-07-261-1/+1
|
* Remove ambisonics experimental flagJean-Marc Valin2018-07-266-223/+1
|
* Use ambisonics families 2 and 3 instead of 254 and 253Jean-Marc Valin2018-07-252-5/+5
|
* Validate multistream/projection decoder frame_sizeMark Harris2018-07-211-0/+5
|
* Silence compiler warningsMark Harris2018-07-213-7/+19
| | | | | | | 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
* Make bandwidth detection more conservative to avoid low-passing framesJean-Marc Valin2018-06-141-0/+16
|
* Avoiding arithmetic on NULL pointerv1.3-rcJean-Marc Valin2018-05-291-2/+0
| | | | | Causes a warning with -Wnull-pointer-arithmetic and the code wasn't doing anything anyway (the ctl call ignores NULLs)
* Avoiding leaks when opus_demo exits with an errorJean-Marc Valin2018-05-291-46/+36
| | | | | This gets rid of false positives in static analysis (see https://trac.webkit.org/changeset/232236/webkit)
* Only call isqrt32() with a positive argumentMark Harris2018-05-282-6/+10
| | | | Fixes test_opus_projection failure under ubsan, due to clz(0).
* 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-241-2/+5
| | | | | | | 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.
* Silk makes use of Opus VADGustaf Ullberg2018-05-141-2/+11
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Misc assertion cleanupJean-Marc Valin2018-03-272-3/+4
|
* 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-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
* Support for Ambisonics.Andrew Allen2018-03-212-0/+190
| | | | 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.
* 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
|
* Scaling back the pitch filter when most of the energy is above 3.2 kHzJean-Marc Valin2018-01-261-0/+15
| | | | 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
|
* Decouple OpusProjection* API from static matrices.Andrew Allen2017-12-072-32/+68
| | | | | Change-Id: I3db285875b6b5548decc436be00096b97be1be3c Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Ensure mapping matrix size is always valid.Andrew Allen2017-12-074-4/+33
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fix memory issues in Projection API.Andrew Allen2017-12-077-190/+345
| | | | | | Modified by Jean-Marc Valin Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* fix float constantsJean-Marc Valin2017-11-161-1/+1
|
* 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
* Support for Channel Mapping 253Andrew Allen2017-11-077-44/+1104
| | | | | | | | | OpusProjection* classes MixingMatrix class Projection tests Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fixing (hopefully) bandwidth detection for 24 kHz analysisJean-Marc Valin2017-10-061-20/+31
| | | | | | | | | The masking term was previously completely broken (even in 1.1). The bandwidth detection relies mostly on the noise floor and can only use masking to cut one extra band. The 12-24 kHz energy is now normalized properly but uses a higher noise floor due to the leakage in the resampler. Bandwidth detection is still mostly useless at identifying SWB speech (it usually says FB).