1. 29 Jul, 2019 2 commits
  2. 28 Jun, 2019 8 commits
  3. 26 Jun, 2019 7 commits
  4. 17 Jun, 2019 3 commits
  5. 16 Jun, 2019 1 commit
  6. 05 Jun, 2019 4 commits
    • Max Kellermann's avatar
      decoder/OpusReader: return StringView · 3fae2150
      Max Kellermann authored
      Since we now don't duplicate all items, we can easily remove the 64kB
      limit from OpusReader::ReadString() and instead silently ignore and
      skip all strings which are longer than 4 kB.
      
      This fixes a tag duplication bug with Opus file containing a very long
      `METADATA_BLOCK_PICTURE` tag, which occurred because the Opus plugin
      returned false after parsing all tags, and then the MPD core fell back
      to FFmpeg which scanned the tags again.
      3fae2150
    • cathugger's avatar
      output/httpd: reject some well-known request paths · f9ca2f52
      cathugger authored
      Return `404 not found` for some common well-known paths, as clients requesting them usually do that automatically and don't expect endless audio stram.
      
      Closes #572
      f9ca2f52
    • cathugger's avatar
      output/httpd: use strncmp instead of memcmp · 4b81cf0c
      cathugger authored
      memcmp use may result in out of bounds access
      4b81cf0c
    • Max Kellermann's avatar
      output/httpd: fix indent · e7acbf11
      Max Kellermann authored
      e7acbf11
  7. 31 May, 2019 1 commit
    • Max Kellermann's avatar
      Revert "player/Thread: remove unnecessary "pipe" check" · 304d45b5
      Max Kellermann authored
      This reverts commit ff3e2c05.  The
      check was necessary, after all, because this is what checked whether
      the decoder had finished the current or the next song.
      
      > The "queued" flag can only possibly be set if the decoder is still
      > decoding the current song or if the decoder is stopped.
      
      That was wrong because ProcessCommand() sets `queued=true` and also
      starts the decoder (if it was idle).
      
      > This is also what the following assert() checks.
      
      That was also wrong, because the assert() has two conditions.
      
      Closes https://github.com/MusicPlayerDaemon/MPD/issues/566
      304d45b5
  8. 20 May, 2019 2 commits
    • Max Kellermann's avatar
      player/Thread: fix "single" mode race condition · 923e6673
      Max Kellermann authored
      If the decoder finishes decoding the current song between the two
      IsIdle() checks, MPD stops playback instead of starting the decoder
      for the next song.
      
      This is usually not visible problem, because the main thread restarts
      it via playlist::ResumePlayback(), but that way it, ignores "single"
      mode.
      
      As a workaround, this commit adds another "queued" check which
      re-enters the player loop and checks again whether to start the
      decoder.
      
      Closes https://github.com/MusicPlayerDaemon/MPD/issues/556
      923e6673
    • Max Kellermann's avatar
      player/Thread: remove unnecessary "pipe" check · ff3e2c05
      Max Kellermann authored
      The "queued" flag can only possibly be set if the decoder is still
      decoding the current song or if the decoder is stopped.  This is also
      what the following assert() checks.  This check was not necessary.
      ff3e2c05
  9. 17 May, 2019 1 commit
  10. 16 May, 2019 3 commits
  11. 23 Apr, 2019 1 commit
  12. 18 Apr, 2019 4 commits
  13. 04 Apr, 2019 3 commits