1. 08 May, 2013 4 commits
    • Timothy B. Terriberry's avatar
      Use dynamic stack allocation in the SILK encoder. · c152d602
      Timothy B. Terriberry authored
      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.
      c152d602
    • Timothy B. Terriberry's avatar
      Fix several memory errors in the SILK resampler. · dc58579c
      Timothy B. Terriberry authored
      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.
      dc58579c
    • Timothy B. Terriberry's avatar
      Remove trailing whitespace. · c41a8168
      Timothy B. Terriberry authored
      c41a8168
    • Timothy B. Terriberry's avatar
      Fix some warnings. · bfe52ceb
      Timothy B. Terriberry authored
      You can't use /* within a comment.
      bfe52ceb
  2. 06 May, 2013 1 commit
  3. 05 May, 2013 1 commit
  4. 23 Apr, 2013 1 commit
  5. 20 Apr, 2013 1 commit
  6. 19 Apr, 2013 1 commit
    • Jean-Marc Valin's avatar
      Variable framesize improvements · 3252bf2a
      Jean-Marc Valin authored
      - Properly apply the transient boost by counting all the bits in the cost
      - Disable the post-filter for non-20-ms frames that follow a transient (applies
        only to variable framesize)
      3252bf2a
  7. 15 Apr, 2013 2 commits
  8. 06 Apr, 2013 1 commit
  9. 18 Mar, 2013 2 commits
  10. 13 Mar, 2013 1 commit
  11. 12 Mar, 2013 1 commit
    • Jean-Marc Valin's avatar
      Makes bandwidth detection less aggressive. · c5e04e4a
      Jean-Marc Valin authored
      The original code was causing parts of a sine sweep to be completely dropped
      due to the 300 Hz margin and the hysteresis. Also, fixes scaling for the
      analysis downmix when the input is 16-bit PCM.
      c5e04e4a
  12. 11 Mar, 2013 7 commits
  13. 08 Mar, 2013 2 commits
  14. 07 Mar, 2013 1 commit
  15. 05 Mar, 2013 1 commit
  16. 01 Mar, 2013 2 commits
  17. 28 Feb, 2013 1 commit
  18. 22 Feb, 2013 1 commit
  19. 21 Feb, 2013 1 commit
  20. 20 Feb, 2013 1 commit
    • Jean-Marc Valin's avatar
      Adds support for delayed decision · 51f4a32e
      Jean-Marc Valin authored
      Variable duration option renamed to OPUS_SET_EXPERT_FRAME_DURATION,
      with new API.
      Also moves up the analysis to avoid having to do int->float conversion
      on large buffers.
      51f4a32e
  21. 19 Feb, 2013 2 commits
  22. 18 Feb, 2013 2 commits
  23. 11 Feb, 2013 3 commits