1. 13 May, 2013 8 commits
    • Ron's avatar
      Fully automate version updating · ff868661
      Ron authored
      This one meets or exceeds the following requirements:
      
       - Version is checked/updated for every build action when in the git repo.
         Does not require the user to re- ./configure to get the correct version.
      
       - Version is not updated automatically when using exported tarball source.
         Avoids accidentally getting a wrong version from some other git repo in
         a parent directory of the source, and allows setting the correct version
         for distro package exports.
      
       - Automatic updating can be manually suppressed.
         For developers doing lots of change/rebuild cycles they don't plan to
         release, when they don't want a full rebuild triggered for every commit,
         and again for every change made immediately after a commit.
         The version will still always be updated if they do a `make dist`.
      
       - Does not require any manual updating of versions in the mainline git
         repo for each release aside from normal tagging.  The version is
         recorded in one file only, that is automatically generated and will
         never need to be committed.
      
       - Does not require gnu-make features for the autoconf builds.
      
      It does not currently:
      
       - Keep a checksum of every source file in tarball releases to mangle the
         version if people modify the tarball source.  Responsible people can
         manually update the version easily though in such cases.
      ff868661
    • Ron's avatar
      More gitignorance · 49861543
      Ron authored
      49861543
    • Ron's avatar
      Don't repeatedly install the doc dir for every file · 3fd084af
      Ron authored
      3fd084af
    • Ron's avatar
      Revert "Allow the examples to build with --disable-http" · 709396d5
      Ron authored
      This reverts commit 4e06a90e.
      We don't need this if we always build libopusurl.
      709396d5
    • Ron's avatar
      Always build libopusurl · 13488656
      Ron authored
      If --disable-http is used it will just only have file URL support.
      13488656
    • Ron's avatar
      Allow the examples to build with --disable-http · 4e06a90e
      Ron authored
      4e06a90e
    • Ron's avatar
      Autoconf and pkg-config support for libopusurl · 428b6bc5
      Ron authored
      428b6bc5
    • Timothy B. Terriberry's avatar
      Move last few URL functions into http.c · 5e3c66ce
      Timothy B. Terriberry authored
      This makes it easier to split http.c and friends into their own
       library.
      This allows distributions to ship a libopusfile with generic Opus
       parsing support, and a libopusurl with http/https support.
      Keeping the latter in a separate library means that GPL
       applications don't have to link against the GPL-incompatible
       openssl, and distributions don't have to disable http support to
       allow GPL applications to use libopusfile.
      5e3c66ce
  2. 08 May, 2013 1 commit
    • Timothy B. Terriberry's avatar
      Fix 255 packet assertion. · efc0d57a
      Timothy B. Terriberry authored
      If we actually have 255 packets on a page, this assertion always
       triggers, because ogg_stream_packetout doesn't fail until we ask
       for the _next_ packet.
      efc0d57a
  3. 07 May, 2013 1 commit
    • Timothy B. Terriberry's avatar
      Fix seeking near the start of saved live streams. · 2862e2ea
      Timothy B. Terriberry authored
      If a stream starts with a non-zero granpos, we would subtract 80 ms
       from the target time, and then report failure when the best page
       we could find (the first page in the link) had a granpos larger
       than that.
      This worked for normal streams because the subtraction would fail
       (granpos can't wrap past -1) and we checked for that.
      2862e2ea
  4. 01 May, 2013 1 commit
  5. 30 Apr, 2013 6 commits
  6. 28 Apr, 2013 1 commit
  7. 06 Apr, 2013 2 commits
    • Timothy B. Terriberry's avatar
      Small public header clean-up. · c9964275
      Timothy B. Terriberry authored
      stdarg.h should've been inside the include guard.
      c9964275
    • Timothy B. Terriberry's avatar
      Small cleanups of the soft clipping code. · 7b499048
      Timothy B. Terriberry authored
      - Made OP_SOFT_CLIP defined only when using floating point (libopus
         handles clipping when using the fixed-point API).
      - Struct rearrangement for theoretically better packing on some
         platforms.
      - Reset the state tracking channel count when re-initializing a
         decoder (and not the dither mute, because that gets reset for
         free).
      7b499048
  8. 25 Mar, 2013 4 commits
    • Timothy B. Terriberry's avatar
      Use clipping prevention on 16-bit decode paths. · bf06c4f2
      Timothy B. Terriberry authored
      When we decode using libopus's fixed-point APIs, libopus internally
       applies soft clipping prevention.
      When we decode using libopus's floating-point APIs, this behavior
       is disabled.
      If we're ultimately planning to output the data to the user in
       fixed-point, we need to apply the clipping prevention ourselves.
      bf06c4f2
    • Timothy B. Terriberry's avatar
      Reset dither state when API path changes. · f8222c99
      Timothy B. Terriberry authored
      The caller can switch between the fixed/float APIs and the
       stereo/multichannel APIs on every call.
      Detect this and reset the dither state to avoid potentially
       injecting noise from a very out-of-date state when switching from
       fixed to float back to fixed, or from the wrong channels when
       switching between stereo and multichannel.
      Normal applications won't do this stuff, but we should be
       well-behaved if they do.
      f8222c99
    • Timothy B. Terriberry's avatar
      Minor comment fix. · 94b0c98a
      Timothy B. Terriberry authored
      94b0c98a
    • Timothy B. Terriberry's avatar
      Fix a buffer overflow in op_read_stereo(). · 81002442
      Timothy B. Terriberry authored
      For multichannel files, this potentially caused writes beyond the
       end of the output buffer provided by the user.
      81002442
  9. 01 Mar, 2013 5 commits
  10. 28 Feb, 2013 11 commits
    • Timothy B. Terriberry's avatar
      More minor win32 cleanups. · 27c8948a
      Timothy B. Terriberry authored
      Just normalizing coding style.
      27c8948a
    • Ralph Giles's avatar
      Add nu774 to the authors list. · 50ee9e30
      Ralph Giles authored
      50ee9e30
    • Timothy B. Terriberry's avatar
      Support the Windows system certificate store. · 9a866b18
      Timothy B. Terriberry authored
      OpenSSL on Windows does not pull certificates from any well-known
       location (in fact most binaries continue to use the default Unix
       path, which usually doesn't even exist).
      We could ship our own set of certificates (e.g., cloned from the
       Mozilla root list), but I don't want to be responsible for
       releasing libopusfile updates when things like DigiNotar
       fiasco [1] happen.
      That approach also means that we would need to load, parse, and
       keep a copy of every certificate in the system for every SSL
       session.
      
      OpenSSL has had patches sitting in their bugtracker which load
       certificates from the Crypto API's system certificate store.
      However, those patches have been sitting around for several years,
       so movement on that front in the near future seems unlikely.
      We don't care about using OpenSSL's builtin CAPI engine, though, so
       we can do the same thing with less than 200 lines of code.
      This puts the maintenance burden on Windows Update, which will be
       far more timely and effective than getting people to upgrade
       libopusfile, and gets us on-demand loading of just the
       certificates we need.
      
      [1] <https://bugzilla.mozilla.org/show_bug.cgi?id=682927>
      9a866b18
    • Timothy B. Terriberry's avatar
      Fix typo in 714d83c8. · e4217fbe
      Timothy B. Terriberry authored
      e4217fbe
    • Timothy B. Terriberry's avatar
      Fix warnings when compiling with a recent MSVC. · 4ce926cb
      Timothy B. Terriberry authored
      Apparently Vista includes more things in its Winsock implementation
       and errno.h than earlier versions of Windows.
      4ce926cb
    • Timothy B. Terriberry's avatar
      Clean up winsock usage. · 25477092
      Timothy B. Terriberry authored
      This keeps differences which can be cleanly abstracted away clean
       (closesocket, ioctlsocket, getsockopt, setsockopt), and makes
       differences which cannot be cleanly abstracted explicit (SOCKET,
       INVALID_SOCKET, WSAGetLastError/WSASetLastError).
      It also gets rid of wsockwrapper.[ch], since it contained just a
       single function.
      
      This can successfully pass the seeking_example tests on
       big.chained.blob over https when built with i686-w64-mingw32 and
       run under wine.
      It does not solve the certificate distribution problems with using
       OpenSSL on a real Windows system.
      25477092
    • Timothy B. Terriberry's avatar
      Use fseeko64/ftello64 for mingw32. · d7591578
      Timothy B. Terriberry authored
      It turns out i686-pc-mingw32 does define these functions, and they
       are always available (unlike _fseeki64/_ftelli64).
      This means we can build and link without requiring
       i686-w64-mingw32.
      The resulting binary still doesn't run in wine for me, but that may
       be a personal problem.
      d7591578
    • Timothy B. Terriberry's avatar
      Require WindowsXP for mingw32. · cc5f107c
      Timothy B. Terriberry authored
      This allows an i686-pc-mingw32 build to use getaddrinfo/
       freeaddrinfo correctly.
      It's not needed for an i686-w64-mingw32 build, but it doesn't hurt
       to leave it in here.
      i686-pc-mingw32 still won't work correctly, because it does not
       support fseeko/ftello, nor (unless using MSVCRT 8.0 or later)
       _fseeki64/_ftelli64.
      We could define __MSVCRT_VERSION__ to 0x800 to get the latter, but
       this would require different MSVCRT versions than libogg and
       libopus are built with by default, which makes a bit of a mess.
      cc5f107c
    • Timothy B. Terriberry's avatar
      Clean up mingw32 configuruation. · 1e9d7d85
      Timothy B. Terriberry authored
      Properly check for HTTP support and handle the case where it's
       disabled.
      Also fixes the include paths broken by 3e7f0ddc.
      1e9d7d85
    • Timothy B. Terriberry's avatar
      s/OS_WIN32/OP_WIN32/ · 100027a3
      Timothy B. Terriberry authored
      The former is too generic.
      100027a3
    • Ralph Giles's avatar
      Merge two OS_WIN32 conditionals. · 383dfbb4
      Ralph Giles authored
      383dfbb4