Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/celt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-03-03Eliminate the ec_int32 and ec_uint32 typedefs.Timothy B. Terriberry
These were used because the entropy coder originally came from outside libcelt, and thus did not have a common type system. It's now undergone enough modification that it's not ever likely to be used as-is in another codec without some porting effort, so there's no real reason to maintain the typedefs separately. Hopefully we'll replace these all again somedate with a common set of Opus typedefs, but for now this will do. This fixes an issue caused by commit 6c8acbf1, which moved the ec_ilog() prototype from entcode.h to ecintrin.h, where the ec_uint32 typedef was not yet available. Thanks to John Ridges for the report.
2011-03-02EC_ILOG cleanups.Timothy B. Terriberry
Mark _BitScanReverse as an intrinsic, as this is not done by default in _DEBUG mode (thanks to Bjoern D. Rasmussen for the suggestion). Move the declaration of ec_ilog() to where the macro using it is defined, to ensure it is available when the macro is used. Thanks to John Ridges for the report.
2011-02-10Relicensing under the simplified (2-clause) BSD licenseJean-Marc Valin
Got authorization from all copyright holders
2011-02-0716-bit int fixes.Timothy B. Terriberry
This fixes a number of issues for platforms with a 16-bit int, but by no means all of them. The type change for ec_window (for platforms where sizeof(size_t)==2) will break ABI (but not API) compatibility with libsilk and libopus, and reduce speed on x86-64, but allows the code to work in real-mode DOS without using the huge memory model, which is useful for testing 16-bit int compliance.
2011-02-04Refactor the entropy coder.Timothy B. Terriberry
This unifies the byte buffer, encoder, and decoder into a single struct. The common encoder and decoder functions (such as ec_tell()) can operate on either one, simplifying code which uses both. The precision argument to ec_tell() has been removed. It now comes in two precisions: ec_tell() gives 1 bit precision in two operations, and ec_tell_frac() gives 1/8th bit precision in... somewhat more. ec_{enc|dec}_bit_prob() were removed (they are no longer needed). Some of the byte buffer access functions were made static and removed from the cross-module API. All of the code in rangeenc.c and rangedec.c was merged into entenc.c and entdec.c, respectively, as we are no longer considering alternative backends. rangeenc.c and rangede.c have been removed entirely. This passes make check, after disabling the modes that we removed support for in cf5d3a8c.
2010-12-23Clean up some type usage.Timothy B. Terriberry
ec_byte_read() ec_byte_read_from_end() had different return types. ec_dec_bits() was storing its return value as int instead of ec_uint32, which will break if int is only 16 bits.
2010-12-21Entropy coder clean-up.Timothy B. Terriberry
This simplifies a good bit of the error handling, and should make it impossible to overrun the buffer in the encoder or decoder, while still allowing tell() to operate correctly after a bust. The encoder now tries to keep the range coder data intact after a bust instead of corrupting it with extra bits data, though this is not a guarantee (too many extra bits may have already been flushed). It also now correctly reports errors when the bust occurs merging the last byte of range coder and extra bits. A number of abstraction barrier violations were cleaned up, as well. This patch also includes a number of minor performance improvements: ec_{enc|dec}_bits() in particular should be much faster. Finally, tf_select was changed to be coded with the range coder rather than extra bits, so that it is at the front of the packet (for unequal error protection robustness).
2010-08-02Remove useless use of "long", remove useless prototypesJean-Marc Valin
2010-07-18Encoder now has a way to check whether an error has occurredJean-Marc Valin
2009-10-24Removing unused code in the entropy coderJean-Marc Valin
2009-10-18Updated copyright noticesJean-Marc Valin
2009-10-17Changed all the celt*int*_t types to remove the _t suffix, which is reservedJean-Marc Valin
by POSIX. The other _t types that are not part of the API are still there for now. Also, got rid of all that was left of the 64-bit types.
2009-08-02This fixes a VBR bug introduced by raw bits. We should not write any rawJean-Marc Valin
bit before the rate is decided (otherwise they'll end up at the wrong place) and we have to shrink the byte buffer before writing raw bits.
2009-07-23Implemented "raw bits"Jean-Marc Valin
Making it so all the information encoded directly with ec_enc_bits() gets stored at the end of the stream, without going through the range coder. This should be both faster and reduce the effects of bit errors. Conflicts: tests/ectest.c
2009-02-04Include missing copyright information in various files, for signoff.Gregory Maxwell
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2008-10-18re-enable support for resizable buffers in the range coderJean-Marc Valin
2008-10-18Encoder now writes data directly in the user bufferJean-Marc Valin
2008-03-27Making a few functions static inlineJean-Marc Valin
2008-02-26Trying to be nice with 16-bit chips.Jean-Marc Valin
2008-01-31Moving everything to the same type abstraction (sort of).Jean-Marc Valin
2008-01-28Moved the content of libentcode into libcelt to reduce dependencies,Jean-Marc Valin
especially now that we have a custom version of that code anyway. Moved the test code to tests/