Preparing for version 0.5.2
Fixed an overflow in the bit allocation table for large frame stereo
Better allocation rounding as suggested by derf
Simple check that application supplied packet length is not negative.
Changed the allocator to be smarter about the way it allocates
Update comment in celt.h to reflect that frame sizes up to 512 are supported.
License for the kiss-fft headers
Some additional documentaion in the celtenc UI.
Additional copyright notices.
Include missing copyright information in various files, for signoff.
Minor enhancements to celtenc to avoid silently capping bitrate and allow an
Enlarge CELT pseudo-stack for floating point unless an architecture specific value
This fixes a budget overrun and segfault for unreasonably low bitrates.
This fixes a couple of issues with celtclient.c and makes it easier to
Pitch now quantised at the band level, got rid of all the VQ code.
Moved the application of the pitch gain to (un)quant_bands(). This doesn't
Spec file
mode parameters in ietf draft
cross-referencing the source code
Details on the reference implementation
Added all the source files to the draft
More text in the IETF draft
Some details on the MDCT, fixed a bunch of warnings
Test whether the compiler supports -fvisibility=hidden
Unit tests now #include the relevant source files to prevent symbol visibility
Miscellaneous compiler warning cleanups.
IETF draft for CELT itself
Fix ectest to not check a case which isn't guaranteed to work, and which we don't use.
Ensure that log2_frac() is _really_ an upper bound.
Fix log2_frac() to return an upper bound, not a lower bound.
Compute the real maximum required bits for a split.
Add a SET_LTP call to allow on the fly activation/deactivation of the long term
Minor pitch handling cleanups.
New VQ search is now enabled by default after fixing the last remaining issues:
Fix optional synthesis bug in fixed point mode.
Fixes two bugs in get_required_bits() for the split cwrs case.
Fix a case where the new search can leave us with no pulse left
Cleaned up some junk left from the last allocator change
New VQ search nearly fixed-point ready
New VQ search works in fixed-point even though there's still some float ops left
Experimental code to improve both the speed and accuracy of the VQ search
alg_quant() now handles the sign of X[] separately from the quantisation
Support for 96kHz.
Getting rid of more stuff left from the Speex draft
Fixes a denormalisation issue occuring when multiple packets are lost and the
Celtclient improvements: A usable usage message and correct usage of the jitter buffer.
fixed test for cases where M_PI isn't defined
Bit of cleaning up and comments
The fold bit can now be used by the encoder and decoder (encoder still needs
Disabling the folding sign bit
experimental code for choosing whether to apply folding for the high bands
In some conditions the allocation could run out of bits and attempt to allocate a negative number of pulses.
Fixed use of the jitter buffer in celtclient.
Latest psychoacoustics work -- still highly experimental
Fixes some issues in the MF range coder on systems were ints are 16 bits.
re-enable support for resizable buffers in the range coder
Encoder now writes data directly in the user buffer
Multiply-free version of the range coder. Haven't yet decided which version to
Tonality estimation code
Add support for a complexity argument to both testcelt and celtenc.
fix STATIC_MODES for stereo (with a few fixes by JMV)
celt_encoder_ctl() is a bit more type-safe.
Fixed support for STATIC_MODES
Removing the 64-bit part of the range coder.
Fix stereo support; correctly deallocate bits_stereo.
lookahead no longer defined when creating a mode
fix stack handling
compute_alloc_cache() isn't defined when STATIC_MODES is.
s/unsigned/celt_uint32_t/
API: Change celt_encode and celt_encode_float so that they take an optional synthesis parameter after the PCM input. If optional_synthesis is null the encoder will be able to save some computation. If optional_synthesis is non-null if will be used to write the encoder's expectation of the decoder's output. Synthesis may alias the input pcm, so calling the encoder with the same buffer twice will achieve the old behavior. Remove 'restrict' from the CTL prototype.
Added celt_encoder_ctl() and CELT_SET_COMPLEXITY
Fix support for sample rates between 32kHz and 40kHz (lower rates are currently rejected, but work okay).
Supporting large prime factors in the FFT
Allow all even frame sizes, change the selection of number of short MDCTs per frame to be more intelligent.
Fix support for 64 sample frames.
Add an additional 1/16th bit of padding to avoid budget busting on some inputs.
Unb0rked a fixed-point regression caused in 7bb339d
Merge branch 'cwrs_speedup'
Change cwrsi() to operate on rows of U instead of columns.
Split the last pulse out of the alg_quant() main loop.
Dividing by a constant is never good
Removed a bunch of divides from the fine energy quantisation
Some bit-allocation tuning
Fixing the manual stack handling code
Merge branch 'cwrs_speedup' (derf's cwrs changes)
Change CWRS indexing to use Pyramid VQ's magnitude ordering.
Better use of the arithmetic operators
Converted everything to 32-bit CWRS (using split after that)
Generate slightly more accurate WMOPS figures
One-at-a-time allocator now uses direct feedback from ec_*_tell().