summaryrefslogtreecommitdiff
path: root/silk/resampler_private_down_FIR.c
Commit message (Collapse)AuthorAgeFilesLines
* Converting some silk_assert()s into hardening celt_assert()sJean-Marc Valin2018-03-271-1/+1
| | | | | Only converted the ones that are really sure (not signal-dependent) and that shouldn't add much run-time complexity
* 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.
* Remove trailing whitespace from the license headers.Ralph Giles2013-09-161-1/+1
|
* Convert quotes in license headers to ASCII.Timothy B. Terriberry2013-05-191-1/+1
| | | | | | Since the last patch originally had them mangled (presumably by mailer, http server, or something else), let's just get rid of them.
* Use dynamic stack allocation in the SILK encoder.Timothy B. Terriberry2013-05-081-1/+6
| | | | | | | | | | | This makes all remaining large stack allocations use the vararray macros. This continues the work of 6f2d9f50 to allow compiling with NONTHREADSAFE_PSEUDOSTACK to move the memory for large buffers off the stack for devices where it is very limited. It also does this for some additional large buffers used by the PLC in the decoder.
* Fix several memory errors in the SILK resampler.Timothy B. Terriberry2013-05-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) The memcpy's were using sizeof(opus_int32), but the type of the local buffer was opus_int16. 2) Because the size was wrong, this potentially allowed the source and destination regions of the memcpy overlap. I _believe_ that nSamplesIn is at least fs_in_khZ, which is at least 8. Since RESAMPLER_ORDER_FIR_12 is only 8, I don't think that's a problem once you fix the type size. 3) The size of the buffer used RESAMPLER_MAX_BATCH_SIZE_IN, but the data stored in it was actually _twice_ the input batch size (nSamplesIn<<1). Because this never blew up in testing, I suspect that in practice the batch sizes are reasonable enough that none of these things was ever a problem, but proving that seems non-obvious. This patch just converts the whole thing to use CELT's vararrays. This fixes the buffer size problems (since we allocate a buffer with the actual size we use) and gets these large buffers off the stack on devices using the pseudo-stack. It also fixes the memcpy problems by changing the sizeof to opus_int16. It turns out sFIR, which saved state between calls, was being used elsewhere as opus_int32, so this converts it to a union to make this sharing explicit.
* Merge commit '390c89225d'Jean-Marc Valin2012-04-241-17/+17
|\
| * License update using the IETF Trust flavour of the BSD on the Silk codeJean-Marc Valin2012-04-201-17/+17
| |
* | Remove trailing whitespace.Ralph Giles2012-04-021-5/+5
|/ | | | Also fixes a minor typo.
* SILK fixes following last codec WG meetingKoen Vos2011-12-131-91/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | decoder: - fixed incorrect scaling of filter states for the smallest quantization step sizes - NLSF2A now limits the prediction gain of LPC filters encoder: - increased damping of LTP coefficients in LTP analysis - increased white noise fraction in noise shaping LPC analysis - introduced maximum total prediction gain. Used by Burg's method to exit early if prediction gain is exceeded. This improves packet loss robustness and numerical robustness in Burg's method - Prefiltered signal is now in int32 Q10 domain, from int16 Q0 - Increased max number of iterations in CBR gain control loop from 5 to 6 - Removed useless code from LTP scaling control - Optimization: smarter LPC loop unrolling - Switched default win32 compile mode to be floating-point resampler: - made resampler have constant delay of 0.75 ms; removed delay compensation from silk code. - removed obsolete table entries (~850 Bytes) - increased downsampling filter order from 16 to 18/24/36 (depending on frequency ratio) - reoptimized filter coefficients
* Reformatting changes with an update to the MSVC project filesKoen Vos2011-10-281-9/+22
|
* Removed all the silk_ prefixes in source file names (not symbols)Jean-Marc Valin2011-09-161-0/+162
|
* Moved all SILK source code to the silk/ directoryJean-Marc Valin2011-04-281-6/+0
|
* Relying on SILK for the switching decisionsJean-Marc Valin2011-04-281-5/+5
|
* SILK makefile updateJean-Marc Valin2011-04-271-5/+5
|
* Changing the SILK bandwidth only when there's no speechJean-Marc Valin2011-04-271-29/+5
|
* SILK updateKoen Vos2011-04-271-5/+29
|
* Project files updateJean-Marc Valin2011-03-181-8/+5
|
* DTX fixJean-Marc Valin2011-03-171-5/+8
|
* Support for glitchles mode switchingJean-Marc Valin2011-03-071-5/+5
| | | | | | Uses a 5ms redundant CELT frame embedded into the SILK or hybrid packet to handle the switching. It's still possible to use the PLC-based method when no redundant packet is included.
* SILK bugfixJean-Marc Valin2011-03-031-5/+5
|
* SILK updateJean-Marc Valin2011-03-021-17/+5
|
* SILK/CELT updateJean-Marc Valin2011-02-281-10/+10
|
* SILK updateJean-Marc Valin2011-02-171-5/+17
|
* fix make distJean-Marc Valin2011-02-151-5/+5
|
* missing filesJean-Marc Valin2011-02-141-8/+5
|
* SILK and CELT updatesJean-Marc Valin2011-02-141-5/+8
|
* Update for in-band FECKoen Vos2011-02-141-9/+5
|
* Update Opus range coder due to CELT refactoring.Timothy B. Terriberry2011-02-031-5/+9
| | | | | The byte buffer is now part of the range coder struct itself, and rangeenc.c and rangedec.c have gone away.
* Build fixesJean-Marc Valin2011-02-031-5/+5
|
* Testing the range coder final stateKoen Vos2011-02-031-5/+5
|
* SILK updateJean-Marc Valin2011-02-021-5/+5
|
* SILK updateJean-Marc Valin2011-02-021-5/+5
|
* SILK update (fixing segfault) and MSVS fixJean-Marc Valin2011-02-021-5/+5
|
* SILK updateJean-Marc Valin2011-02-021-5/+5
|
* Disabling debugJean-Marc Valin2011-01-311-5/+5
|
* Adding missing SILK files to the buildJean-Marc Valin2010-11-131-5/+5
|
* Updated to follow changes in SILK APIJean-Marc Valin2010-11-121-5/+5
|
* SILK build updateJean-Marc Valin2010-07-081-5/+5
|
* Build updateJean-Marc Valin2010-07-081-5/+5
|
* autotools-based build systemJean-Marc Valin2010-07-081-5/+5
|
* Adds a _ctl() control API to the encoder and decoderJean-Marc Valin2010-07-061-5/+5
|
* Fixing a high bit-rate bug in SILK -- now scales well above 64 kb/sJean-Marc Valin2010-07-051-5/+5
|
* silk update (ec_enc_done())Jean-Marc Valin2010-07-041-5/+5
|
* SILK update (interface for using the CELT range coder)Jean-Marc Valin2010-07-041-5/+5
|
* gitignore filesJean-Marc Valin2010-07-031-5/+5
|
* SILK updateJean-Marc Valin2010-06-301-5/+5
|
* Updated SILK versionJean-Marc Valin2010-06-301-4/+5
|
* Added SILK submoduleJean-Marc Valin2010-06-291-0/+5