1. 02 Jan, 2018 3 commits
  2. 01 Jan, 2018 1 commit
  3. 22 Dec, 2017 2 commits
  4. 21 Dec, 2017 3 commits
  5. 18 Dec, 2017 4 commits
  6. 12 Dec, 2017 2 commits
    • Yue Wang's avatar
      OSXOutputPlugin: set the buffer time to be 100ms · f1ef9f9d
      Yue Wang authored
      [mk: the following text was copied from
      https://github.com/MusicPlayerDaemon/MPD/pull/167]
      
      For certain format (hi-res files) and normal buffer size hardware, The
      hardware may at once consume most of the buffers. However, in Delay()
      function, MPD is supposed to wait for 25 ms after the next try. it
      will create a hiccup. The negative impact is much major than
      increasing the latency.
      
      I understand larger buffers come at a price. That's why in my earlier
      commit last year I significantly reduced it. However, the buffer size
      in CoreAudio is set according to the hardware, which is super small
      latency. For instance, the system audio of 2015 generation of macbook
      pro has maximum buffer size of 4096 samples, which is just 0.09s for
      44.1k framerate, or 0.04s for 96k frames --- . compare to the 0.5 sec
      latency alsa plugin has, even if we quadruple it, it's still super
      tiny.
      f1ef9f9d
    • Max Kellermann's avatar
      *: check defined(_WIN32) instead of defined(WIN32) · dfaf0874
      Max Kellermann authored
      Only _WIN32 is defined by the compiler, and WIN32 is not standardized
      and may be missing.
      
      Closes #169
      dfaf0874
  7. 05 Dec, 2017 1 commit
  8. 03 Dec, 2017 1 commit
  9. 02 Dec, 2017 2 commits
  10. 27 Nov, 2017 2 commits
  11. 25 Nov, 2017 1 commit
  12. 16 Nov, 2017 1 commit
  13. 14 Nov, 2017 2 commits
    • Max Kellermann's avatar
      output/httpd: flush encoder after tag · 014f8cd6
      Max Kellermann authored
      Without the flush, ReadPage() may not return any data, or not all
      data.  This may result in incomplete ddata the new "header" page,
      corrupting streams with some encoders such as Vorbis.
      
      Fixes #145
      014f8cd6
    • Max Kellermann's avatar
      encoder/vorbis: default to quality 3 · aea37e46
      Max Kellermann authored
      Don't require a quality or bitrate setting.  If nothing is set, don't
      fail startup - just go with a good default.  A quality setting of 3 is
      what "oggenc" defaults to as well.
      aea37e46
  14. 13 Nov, 2017 1 commit
    • Max Kellermann's avatar
      input/{cdio,ffmpeg,file,smbclient}: unlock the mutex during blocking I/O · 31ab78ae
      Max Kellermann authored
      InputStream::Read() and InputStream::Seek() are called with the mutex
      locked.  That means the implementation must not block, or unlock the
      mutex before calling into blocking code.
      
      Previously, a slow CD drive could stall the whole MPD process,
      including the main thread, due to this problem.
      
      Closes #149
      31ab78ae
  15. 12 Nov, 2017 1 commit
  16. 05 Nov, 2017 1 commit
  17. 03 Nov, 2017 1 commit
  18. 25 Oct, 2017 1 commit
  19. 24 Oct, 2017 2 commits
  20. 18 Oct, 2017 3 commits
    • Max Kellermann's avatar
      release v0.20.11 · a7fdfa08
      Max Kellermann authored
      a7fdfa08
    • Max Kellermann's avatar
      Playlist{File,Save}: always use UTF-8 in playlists on Windows · 9703a401
      Max Kellermann authored
      Turns out that using CP_ACP is a lousy idea, because only very few
      Unicode characters can be represented by it.  Instead, switch to UTF-8
      (which every sane person on other operating system already uses).
      
      Closes #102
      9703a401
    • Max Kellermann's avatar
      queue/PlaylistControl: keep order list consistency in MoveOrderToCurrent() · 91254e92
      Max Kellermann authored
      Our previous use of Queue::SwapOrders() could cause surprising
      results:
      
      - sometimes, the old "current" song would be played again (if the
        newly selected song had not been played already)
      
      - sometimes, the old "current" song would not be played again (if the
        newly selected song had already been played)
      
      This is inconsistent, because it should not depend on whether the
      newly selected song had already been played.
      
      So instead of Queue::SwapOrders() we now use Queue::MoveOrderAfter()
      and Queue::MoveOrderBefore(), which is more expensive, but also more
      consistent.  It attempts to retain as much from the previous order
      list as possible, and only moves the newly selected song around.
      91254e92
  21. 27 Sep, 2017 2 commits
    • Max Kellermann's avatar
      decoder/Thread: clear the command after catching an exception · fa67c254
      Max Kellermann authored
      If an early exception gets caught (e.g. from
      AllocatedPath::FromUTF8Throw()) before
      DecoderControl::CommandFinishedLocked() is called, the decoder thread
      would go in an endless loop, because DecoderCommand::START is still
      set.
      
      Closes #118
      fa67c254
    • John Regan's avatar
      GME Plugin: fix track numbering · ea80587d
      John Regan authored
      GME starts all track indexes at zero, but subtune prefixes
      start at one. This fixes an off-by-one error during track
      enumeration.
      ea80587d
  22. 20 Sep, 2017 1 commit
  23. 18 Sep, 2017 1 commit
  24. 01 Sep, 2017 1 commit