1. 29 Sep, 2012 3 commits
  2. 24 Sep, 2012 6 commits
  3. 23 Sep, 2012 12 commits
  4. 22 Sep, 2012 7 commits
    • Timothy B. Terriberry's avatar
      Save initial stream state on seekable open. · 2df5f786
      Timothy B. Terriberry authored
      This means that in the normal case, after identifying the chain
       boundaries, we will seek back exactly where we were before.
      With the http backend, that gives us a good chance of re-using our
       initial connection to continue reading the stream.
      Currently the LRU connection expiration algorithm means that is
       unlikely with lots of links, however.
      2df5f786
    • Timothy B. Terriberry's avatar
      Small speed-up to op_bisect_forward_serialno(). · 167822cf
      Timothy B. Terriberry authored
      Try to guess that the next link will be approximately the average
       size of all previous links, for files with many links.
      This cuts off 6-17% of the seeks.
      
      Also remove a variable that was left unused after 5e36109d.
      167822cf
    • Timothy B. Terriberry's avatar
      Clean up offset tracking. · 5e36109d
      Timothy B. Terriberry authored
      Reduce the number of places we modify 'offset' so that
       op_seek_helper() can always skip seeks to the current offset.
      The checks we were doing before already covered all the places
       where this was useful in the normal case, but this lets us
       centralize that logic.
      
      This commit also includes a few minor follow-ups to 9b57b0c2:
      * Use a smaller type for ret_size and initialize it.
      * Verify 'end' is at least as large as data we've already read.
      5e36109d
    • Timothy B. Terriberry's avatar
      Fix some issues with trailing junk in files. · 9b57b0c2
      Timothy B. Terriberry authored
      1) We were treating EOF in op_get_next_page() as a read error when
          called from op_get_prev_page_serial().
      2) We also assumed op_get_prev_page_serial() stopped scanning at the
          end of the page it returned, in order to compute the size of
          that page.
         Return the page size explicitly instead.
      3) Finally, once we discover where the last page is, there is no
          reason to ever look at data past it.
         Update 'end' once we find it, and always pass that to
          op_get_next_page().
      9b57b0c2
    • Timothy B. Terriberry's avatar
      Minor http redirect clean-ups. · 073fe98c
      Timothy B. Terriberry authored
      Actually close the old socket.
      Don't initialize SSL more than once.
      073fe98c
    • Timothy B. Terriberry's avatar
      Add URL support to seeking_example. · 9df7ae98
      Timothy B. Terriberry authored
      Also fixes some indenting in opusfile_example.
      9df7ae98
    • Timothy B. Terriberry's avatar
      Add support for http, https, and file URLs. · 8d04070b
      Timothy B. Terriberry authored
      This is pretty preliminary for now.
      Seeking performance isn't great, and there's no caching.
      I'm sure there's also lots of bugs.
      8d04070b
  5. 21 Sep, 2012 1 commit
  6. 19 Sep, 2012 2 commits
    • Timothy B. Terriberry's avatar
      Fix hole reporting discrepancy. · 78e5fffc
      Timothy B. Terriberry authored
      op_find_initial_pcm_offset() would swallow any holes at the start
       of a link, but seekable streams did not use it when crossing a
       link boundary, so they would report a hole.
      This unifies the hole reporting between the two, and also
       simplifies the seeking code (which also needs to ignore holes) a
       bit.
      78e5fffc
    • Timothy B. Terriberry's avatar
      A couple of seeking_example improvements. · efbca3a1
      Timothy B. Terriberry authored
      1) Check for allocation failure and fall back to merely scanning a
       file for consistent timestamps instead of loading it to RAM.
      2) Report holes, but do not quit scanning/loading unless they cause
       a discontinuity in the timestamps.
      efbca3a1
  7. 18 Sep, 2012 4 commits
    • Ralph Giles's avatar
      Embed the git revision in the doxygen documentation. · 3c7191a9
      Ralph Giles authored
      The simple git-version script asks git for the current
      revision, and falls back to 'unknown' if the result is
      empty. This will have little effect until we have tags
      in the repository.
      
      We use the FILE_VERSION_FILTER option on doxygen to
      embed this in the documentation with each file reference.
      
      Unfortunately, there doesn't seem to be a way to
      set PROJECT_NUMBER globally in the same way. This
      commit unsets that option to avoid confusing references
      in the generated documentation.
      3c7191a9
    • Ralph Giles's avatar
      Add a rough makefile for the documentation. · b8f50b4e
      Ralph Giles authored
      Just runs doxygen for us, an optionally latex.
      The 'clean' target removes the doxygen output
      directories.
      b8f50b4e
    • Ralph Giles's avatar
      Add a doc directory with a minimal doxygen configuration. · 90936478
      Ralph Giles authored
      This is just to help us validate the api docs as they're
      added. By using a minimal Doxyfile we save space, make
      it easier to read, and avoid warnings from deprecated
      and unknown options across different doxygen versions.
      90936478
    • Timothy B. Terriberry's avatar
      Finish implementing the OpusTags API. · ecc86f55
      Timothy B. Terriberry authored
      Apparently just declaring the functions in the header is not good
       enough.
      Currently completely untested.
      ecc86f55
  8. 17 Sep, 2012 5 commits
    • Timothy B. Terriberry's avatar
      Update opusfile.h's include guard. · 2a8bfdd4
      Timothy B. Terriberry authored
      3f18c55f moved it out of opus/, so strip the prefix.
      2a8bfdd4
    • Ralph Giles's avatar
      Don't include deps during 'make clean'. · 44986884
      Ralph Giles authored
      If a source file moves (as in the previous commit), any stale
      dependencies will block execution of 'make' because they
      define a dependency relationship to an non-existant file.
      
      The obvious thing to do is 'make clean' to get rid of the
      dependency files, but of course that fails the same way.
      To support this recovery, skip the include directive if
      the GNU make variable MAKECMDGOALS is 'clean', exempting
      this target from dependency checks.
      
      Based on an example in the GNU make manual.
      44986884
    • Ralph Giles's avatar
      Move opusfile.h up a level. · 3f18c55f
      Ralph Giles authored
      This matches the convention used by opus itself, where
      headers are included without a prefix, and the build
      must do -I/path/to/opus to find the appropriate versions.
      3f18c55f
    • Timothy B. Terriberry's avatar
      Public header cleanups. · 151f576a
      Timothy B. Terriberry authored
      More consistent formatting, s/file/stream/g, and finish adding
       function warning attributes.
      151f576a
    • Timothy B. Terriberry's avatar
      Revert ea2412ea. · 49c16682
      Timothy B. Terriberry authored
      The actual problem was that opus-uninstalled.pc was forcing static
       linking, but not including all the relevant libraries.
      49c16682