1. 06 Aug, 2013 5 commits
  2. 15 Jul, 2013 5 commits
    • Timothy B. Terriberry's avatar
      Add a gain control API. · 7aea3cae
      Timothy B. Terriberry authored
      A new op_set_gain_offset() allows the application to provide its own
       offset to the current decoder gain setting, as well as specify what
       offsets should be applied.
      The header gain alone is still the default, but the application may
       also request that the track gain be applied, or that neither be
      In addition, an op_get_track_gain() function can parse the track
       gain out of a set of comment tags.
      This is mainly provided as a convenience for applications that need
       this information, so they don't have to write their own parser.
    • Timothy B. Terriberry's avatar
      API documentation updates. · e15e3621
      Timothy B. Terriberry authored
      - Provide an Overview section which describes some of the general
         design decisions of the libopusfile API.
      - Explicitly state that we always decode at 48 kHz.
      - Make it clearer that we always apply the header gain.
      - Document the automatic soft-clipping support.
      - Document that stream open failure does not close the source.
      - Other minor fixes.
      Thanks to tangobravo and siriusbtx for asking the questions which
       prompted this update.
    • Timothy B. Terriberry's avatar
      Plug possible memory leak on stream open failure. · 68f18feb
      Timothy B. Terriberry authored
      Not all the failure paths cleaned up after themselves properly.
      Thanks to tangobravo for complaining about similar issues in
       libvorbisfile, which prompted me to audit this code.
    • Timothy B. Terriberry's avatar
      Avoid using a long-long literal for OP_INT64_MAX. · 6587f1de
      Timothy B. Terriberry authored
      The LL suffix isn't C89, so it may not work everywhere.
    • Timothy B. Terriberry's avatar
      Typo fix. · f83826bc
      Timothy B. Terriberry authored
  3. 02 Jul, 2013 1 commit
    • Ron's avatar
      Always try to update the version when autogen.sh is run · 884aa610
      Ron authored
      This avoids at least one case where ./autogen.sh && ./configure && make
      will re-run configure because the makefile rules updated something that
      it depends upon. Pulling a new version from git will change the version
      so we should update that at the first step rather than iterating after
      the last one.
  4. 28 Jun, 2013 2 commits
    • Ron's avatar
      Switch to using config.h for configuration options · 1eff2631
      Ron authored
      The main motivation for this is it ensures the files will actually be
      rebuilt if the configuration options are changed.
    • Ron's avatar
      More autoconf housekeeping · c939c736
      Ron authored
      Don't let AC_SEARCH_LIBS([lrintf]) add -lm to LIBS, otherwise we'll
      unconditionally link everything with it.
      Correctly handle the third possibility of AC_SEARCH_LIBS, that no
      library at all was found.
      Link libopusfile with $lrintf_lib, it uses it and will otherwise fail
      with linkers that use --no-add-needed / --no-copy-dt-needed-entries.
      Don't bother to test for doxygen if using it is --disable'd.
  5. 18 May, 2013 1 commit
    • Ron's avatar
      Use m4_esyscmd instead of m4_esyscmd_s · 8df43f7c
      Ron authored
      We shouldn't ever have any trailing newlines that need trimming here,
      and the _s version wasn't added to m4sugar.m4 until autoconf 2.63b,
      so this will let it work with 2.13 again.
  6. 15 May, 2013 1 commit
  7. 13 May, 2013 10 commits
    • Ron's avatar
      Typo fix · 56be23fa
      Ron authored
    • Ron's avatar
      Drop the x's from shell tests · 4ed5f102
      Ron authored
      Partly just to give us an extra commit to test the versioning,
      but they really aren't needed in any of those cases, and now
      we're consistent about not using them everywhere.
    • 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.
    • Ron's avatar
      More gitignorance · 49861543
      Ron authored
    • Ron's avatar
      Don't repeatedly install the doc dir for every file · 3fd084af
      Ron authored
    • 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.
    • Ron's avatar
      Always build libopusurl · 13488656
      Ron authored
      If --disable-http is used it will just only have file URL support.
    • Ron's avatar
      Allow the examples to build with --disable-http · 4e06a90e
      Ron authored
    • Ron's avatar
      Autoconf and pkg-config support for libopusurl · 428b6bc5
      Ron authored
    • 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
      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.
  8. 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.
  9. 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.
  10. 01 May, 2013 1 commit
  11. 30 Apr, 2013 6 commits
  12. 28 Apr, 2013 1 commit
  13. 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.
    • 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
      - Reset the state tracking channel count when re-initializing a
         decoder (and not the dither mute, because that gets reset for
  14. 25 Mar, 2013 3 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.
    • 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.
    • Timothy B. Terriberry's avatar
      Minor comment fix. · 94b0c98a
      Timothy B. Terriberry authored