1. 23 Oct, 2017 5 commits
  2. 20 Jul, 2017 1 commit
  3. 19 Jul, 2017 2 commits
  4. 05 Jun, 2017 1 commit
  5. 28 Nov, 2016 1 commit
    • Ralph Giles's avatar
      Initialize global pointers in examples. · 91203fdf
      Ralph Giles authored
      Global pointers are initialized to zero in C, but not in C++.
      
      Add an explicit initializer to reduce confusion and avoid
      bugs when the example code is copied into C++ applications.
      
      Based on a patch by Alex Houghton <houghton1411@aol.com>.
      91203fdf
  6. 23 Sep, 2016 2 commits
    • Timothy B. Terriberry's avatar
      Fix linking with musl libc with asm enabled. · 4bd78cd7
      Timothy B. Terriberry authored
      We made sure to emit emms before potentially calling/returning to
       applicate code, but not before calling libc code.
      It turns out musl libc's malloc/free implementation use floating
       point, so they don't work correctly unless we do.
      Add some extra calls to make sure the FPU is in the proper state
       any place we might potentially call malloc or free.
      
      Thanks to Rune (ztsdztsd on Trac) for the report.
      
      Fixes #2287
      4bd78cd7
    • Timothy B. Terriberry's avatar
      Fix some broken clamping in rate control. · eac29ae2
      Timothy B. Terriberry authored
      If we have some dupe frames right near the end of the buffer, our
       metric window can be slightly larger than the buffer.
      However, the clamping we use to determine how many frames' worth of
       metrics to add to the buffer had a mix of signed and unsigned
       types, so if that number when negative, instead of clamping
       against zero, it would ask for all remaining frames in the file.
      That would cause an infinite loop when we tried to find the last
       keyframe in the circular buffer in oc_enc_select_qi() (which was
       not big enough to actually hold that many frames).
      
      This patch changes the clamp to a form that works with all unsigned
       values.
      
      Thanks to Brion Vibber for the report.
      
      Fixes #2229
      
      Forward-port of r19507 from svn.
      eac29ae2
  7. 27 Jul, 2016 2 commits
    • Timothy B. Terriberry's avatar
      Sanity improvements to oc_dec_headerin() error returns. · 50fd339b
      Timothy B. Terriberry authored
      In the case where we got a data packet before receiving all three
       headers, the old code would check to see if the second through
       seventh bytes matched the magic string "theora" (extremely
       unlikely, but possible), and if so, return TH_EBADHEADER, otherwise
       return TH_ENOTFORMAT.
      That this was not consistent was a bit non-sensical.
      
      5a5f5bb2 changed to returning TH_EBADHEADER if we got a data
       packet after receiving the first header, but left the old behavior
       for the first packet.
      Change instead to explicitly return TH_ENOTFORMAT if the first
       header was missing (since we only check one bit of the packet to
       determine whether or not it's a data packet, odds are it's a packet
       for some other kind of data, like a Vorbis header).
      We continue to return TH_EBADHEADER if we see a data packet after
       encountering a valid header, but before reading all three.
      
      Also re-arrange the NULL checks to follow continue to allow the
       undocumented ability to pass in NULL for parameters which are not
       needed by the next header in the sequence.
      E.g., it's perfectly all right to pass NULL for _setup when
       expecting to read the comment header next.
      In this case we'll now return TH_EBADHEADER instead of TH_EFAULT if
       the packet was actually a data packet.
      50fd339b
    • Timothy B. Terriberry's avatar
      NULL check _tc and _setup even for data packets. · 5a5f5bb2
      Timothy B. Terriberry authored
      Our documentation says we will, so we should.
      
      Thanks to Chris Peterson for the report.
      
      Fixes #2279.
      5a5f5bb2
  8. 25 May, 2016 2 commits
  9. 27 Aug, 2015 1 commit
    • Ralph Giles's avatar
      Use the float latex package in the spec. · fbb27580
      Ralph Giles authored
      Newer texlive distributions require \usepackage{float} for
      the [H] figure layout directive. We use this to make sure
      the header layout figures are at the top of their respective
      sections for conventional reference like in an RFC, so requiring
      the additional package is safer than falling back to standard
      latex [h] or [!h].
      
      Note that [H] from the float package is incompatible with
      fallback specifiers.
      
      The configure script will automatically check for the new package.
      fbb27580
  10. 31 Oct, 2014 1 commit
    • Timothy B. Terriberry's avatar
      Fix mismatched oc_mb_fill_cmapping11 signature. · 12f20c7a
      Timothy B. Terriberry authored
      oc_mb_fill_cmapping11() was defined without the last two parameters
       of its fellow mapping functions, meaning it got called with extra
       undeclared parameters.
      
      This could confuse the emscripten JavaScript cross-compiler's asm.js
       optimizations, as it's very picky about function signatures.
      
      Fixes #2068.
      Patch by Brion Vibber <brion@pobox.com>.
      
      svn path=/trunk/theora/; revision=19261
      12f20c7a
  11. 23 Jul, 2014 3 commits
  12. 10 Jun, 2014 1 commit
  13. 04 Apr, 2014 1 commit
  14. 17 Feb, 2014 1 commit
  15. 11 Feb, 2014 3 commits
  16. 18 Nov, 2013 1 commit
  17. 23 Feb, 2013 1 commit
  18. 08 Jan, 2013 3 commits
  19. 02 Jun, 2012 1 commit
  20. 08 May, 2012 1 commit
    • Timothy B. Terriberry's avatar
      Fix pp_sharp_mod calculation. · 0ae66d56
      Timothy B. Terriberry authored
      This was broken when the dequant_tables indexing changed in commit
       r16102, but it only affected post-processing quality, so we never
       noticed.
      With gcc 4.8.0, this can now trigger a segfault during decoder
       initialization.
      
      svn path=/trunk/theora/; revision=18268
      0ae66d56
  21. 31 Mar, 2012 1 commit
  22. 06 Mar, 2012 1 commit
  23. 02 Mar, 2012 2 commits
    • Timothy B. Terriberry's avatar
      Remove some redundant NULL checks and fix a free on error return. · de386d3e
      Timothy B. Terriberry authored
      ref_frame_data was being allocated with the aligned allocator, but
       freed with the normal _ogg_free() function on failure, which
       doesn't work.
      This would only cause a problem if there was just enough memory to
       satisfy the reference frame allocation (just over 4.5 or 9 bytes
       per pixel) but not enough for the fragment buffer offets (1/16 or
       1/8th byte per pixel).
      
      svn path=/trunk/theora/; revision=18219
      de386d3e
    • Timothy B. Terriberry's avatar
      Make telemetry work with striped decoding. · 813791c8
      Timothy B. Terriberry authored
      This allows it to be used from dump_video without having to disable
       striped decoding there.
      
      svn path=/trunk/theora/; revision=18218
      813791c8
  24. 11 Feb, 2012 1 commit
    • Ralph Giles's avatar
      Fix a duplicate word. · 22c475eb
      Ralph Giles authored
      Thanks to darkstarbyte for pointing out the typo.
      
      svn path=/trunk/theora/; revision=18195
      22c475eb
  25. 13 Jul, 2011 1 commit
    • Timothy B. Terriberry's avatar
      Clean up some ARM asm issues. · f6d84864
      Timothy B. Terriberry authored
      1) Allow specification of the section alignment and make the
          default alignment 4 bytes (like the RVCT manual says it should
          be).
         This ensures that linking our ARM asm into a Thumb executable
          won't get the section placed on a 2-byte boundary.
      2) Add a linker hint to indicate we don't need an executable stack.
         Otherwise it assumes we do.
      3) Stop building and linking to an (empty) armopts object file.
         This is needed to make 2) work, since we include this file, so
          we can't add the linker hint at the end of it, and linking in
          just one object without that hint makes the whole library ask
          for an executable stack.
      
      svn path=/trunk/theora/; revision=18031
      f6d84864