1. 25 May, 2017 7 commits
  2. 22 Feb, 2017 1 commit
    • Mark Harris's avatar
      opusenc: Avoid seeking on Windows pipes · d0dc36b7
      Mark Harris authored
      On Windows, fseek() on pipes may return zero even though it doesn't seek,
      so check the file type before trying to seek.  Also, Windows prefers
      _fileno() over fileno().
      d0dc36b7
  3. 22 Jan, 2017 7 commits
  4. 20 Jan, 2017 7 commits
    • Mark Harris's avatar
      opusenc: Clean up help · fa46e9c1
      Mark Harris authored
      Clearly indicate which options require a parameter and its usual
      format.  Use imperative verb form consistently.  Minor rearrangement
      to improve logical ordering.  Move diagnostic options to the end.
      Move verbose --picture details to --help-picture so that basic usage
      information has a chance of fitting on one screen.  Change use of
      obsolete term "MIME type" to "media type".  Update man page to match.
      fa46e9c1
    • Mark Harris's avatar
      opusenc: Fix typos · bc605841
      Mark Harris authored
      bc605841
    • Mark Harris's avatar
      opusenc: Don't read excess data after samples · a0cb8eba
      Mark Harris authored
      When reading WAV/AIFF data with a known length, don't try to read
      (and then discard) data beyond that length, to avoid blocking or
      adding unnecessary latency when the data is not from a file.
      a0cb8eba
    • Mark Harris's avatar
      opusenc: Limit end trimming to one frame · 88c756ee
      Mark Harris authored
      Avoid writing a final packet larger than 20ms that is larger than
      necessary, with 20ms or more that is beyond the end of the stream.
      88c756ee
    • Mark Harris's avatar
      0667f415
    • Mark Harris's avatar
      opusenc: Don't warn about mono center channel WAV · 7a986008
      Mark Harris authored
      Even if it has only one channel, an input WAV file can contain a
      channel mask. A warning is issued if it is present but not a
      supported value. Don't warn about the previously accepted mask
      of 1 (FL), or 4 (FC).  Arguably a channel mask of 1 (FL) should
      trigger the warning, just as 2 (FR) does, but some tools (including
      old opusdec when decoding to floating point WAV) actually write an
      incorrect channel mask of 1 for mono WAV files.
      7a986008
    • Mark Harris's avatar
      opusdec: Fix channel mask in mono float WAV output · bc190e53
      Mark Harris authored
      Mono channel mask changed from 1 (front left) to 4 (front center)
      in WAV output.
      bc190e53
  5. 16 Jan, 2017 4 commits
  6. 14 Jan, 2017 1 commit
  7. 31 Dec, 2016 1 commit
    • Mark Harris's avatar
      opusenc: Sanitize sample rate, fix rate from AIFF · 3862c100
      Mark Harris authored
      Fix errors (not affecting common values) in reading the sample rate
      from AIFF: the low 32 bits of the mantissa were incorrectly interpreted
      as signed, the first byte rather than first bit was being used as
      a sign, and non-integer rates were not properly rounded.
      
      Although the sample rate is validated prior to setting up the
      resampler, sample rates outside the range of an "int" could cause
      undefined behavior prior to that when cast from double to int for
      AIFF. Such rates could also be incorrect for WAV on 32-bit builds.
      Ensure that the rate is within the range of an int prior to casting.
      3862c100
  8. 11 Nov, 2016 1 commit
  9. 23 Sep, 2016 3 commits
  10. 22 Sep, 2016 1 commit
  11. 21 Sep, 2016 3 commits
  12. 20 Sep, 2016 4 commits
    • Mark Harris's avatar
      opusenc: Sanitize WAV/AIFF fourccs · 4a703f08
      Mark Harris authored
      Don't print control characters and other invalid bytes from invalid
      WAV/AIFF fourccs to the terminal.
      4a703f08
    • Mark Harris's avatar
      opusenc: Ignore null comments from FLAC input · 3c2f4a8e
      Mark Harris authored
      Crash found by afl-fuzz.
      3c2f4a8e
    • Mark Harris's avatar
      opusenc: Handle arbitrary AIFF/WAV chunk sizes · b485a962
      Mark Harris authored
      Properly handle chunks of any size from AIFF/WAV input files,
      including padding them to an even size as required.  Also ensure
      that a relevant message is displayed on any AIFF/WAV open failure.
      
      See oggenc https://trac.xiph.org/ticket/1817,
      https://trac.xiph.org/ticket/1912,
      https://trac.xiph.org/ticket/2212 (CVE-2015-6749).
      b485a962
    • Mark Harris's avatar
      opusenc: Consistently use large file interfaces · 07f324fd
      Mark Harris authored
      Fix potential infinite loop on a specially-crafted input file if
      "long" is only 32 bits.  Also on some systems, including some
      versions of Windows and 32-bit OS X, fseek() cannot handle large
      files even if the offset fits within a "long".
      
      These issues are addressed by consistently using the fseek/ftell
      variants that can handle large files, when available, for all input
      file processing rather than in only one place.  Don't try to seek
      or use the result if ftell() returns an error (e.g. EOVERFLOW).
      If large file interfaces are not available, handle seeking in chunks
      rather than wrapping and potentially causing an infinite loop.  When
      reading data until EOF, treat the ftell() value as only an estimate
      for percent progress; if the file grows, do not discard data after
      this point.
      07f324fd