1. 20 Jan, 2014 1 commit
  2. 05 Aug, 2013 1 commit
  3. 16 May, 2012 1 commit
  4. 24 Apr, 2012 1 commit
  5. 20 Apr, 2012 2 commits
  6. 02 Dec, 2011 1 commit
    • Timothy B. Terriberry's avatar
      Move nbits_total initialize before renormalization. · 6619a736
      Timothy B. Terriberry authored
      The range decoder used to initialize nbits_total after the
       renormalization loop, even though the renormalization loop
       modifies it.
      This was presumably safe, because nothing actually used the value
       before it was initialized, but I'm tired of it triggering the
       integer overflow checking.
      6619a736
  7. 14 Sep, 2011 1 commit
  8. 31 Aug, 2011 2 commits
  9. 30 Aug, 2011 1 commit
  10. 02 Aug, 2011 1 commit
  11. 29 Jul, 2011 1 commit
  12. 03 Mar, 2011 1 commit
    • Timothy B. Terriberry's avatar
      Eliminate the ec_int32 and ec_uint32 typedefs. · 9bac8c17
      Timothy B. Terriberry authored
      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.
      9bac8c17
  13. 10 Feb, 2011 1 commit
  14. 06 Feb, 2011 1 commit
    • Timothy B. Terriberry's avatar
      16-bit int fixes. · 285bc372
      Timothy B. Terriberry authored
      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.
      285bc372
  15. 04 Feb, 2011 1 commit
    • Timothy B. Terriberry's avatar
      Refactor the entropy coder. · a093f4df
      Timothy B. Terriberry authored
      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.
      a093f4df
  16. 23 Dec, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Clean up some type usage. · 8fcde379
      Timothy B. Terriberry authored
      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.
      8fcde379
  17. 21 Dec, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Entropy coder clean-up. · 30df6cf3
      Timothy B. Terriberry authored
      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).
      30df6cf3
  18. 17 Oct, 2010 1 commit
  19. 11 Sep, 2010 1 commit
  20. 27 Aug, 2010 1 commit
  21. 02 Aug, 2010 1 commit
  22. 19 Jul, 2010 1 commit
  23. 30 May, 2010 1 commit
  24. 27 May, 2010 1 commit
  25. 24 Oct, 2009 2 commits
  26. 18 Oct, 2009 1 commit
  27. 26 Jul, 2009 1 commit
  28. 23 Jul, 2009 1 commit
    • Jean-Marc Valin's avatar
      Implemented "raw bits" · c08be448
      Jean-Marc Valin authored
      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
      c08be448
  29. 04 Feb, 2009 1 commit
  30. 21 Dec, 2008 1 commit
    • Timothy B. Terriberry's avatar
      Fix ectest to not check a case which isn't guaranteed to work, and which we don't use. · 0268a996
      Timothy B. Terriberry authored
      When I removed the special case for EC_ILOG(0) in commit
       06390d08, it broke ec_dec_uint() with _ft=1
       (which should encode the value 0 using 0 bits).
      This feature was tested by ectest.c, but not actually used by libcelt.
      An assert has been added to ec_dec_uint() to ensure that we don't try to use
       this feature by accident.
      ec_enc_uint() was actually correct, but support for this feature has been
       removed and the assert put in its place.
      0268a996
  31. 05 Oct, 2008 1 commit
  32. 28 Apr, 2008 1 commit
  33. 22 Mar, 2008 2 commits
  34. 20 Feb, 2008 1 commit
  35. 28 Jan, 2008 1 commit
  36. 17 Jan, 2008 1 commit