1. 10 Jan, 2013 1 commit
  2. 07 Jan, 2013 1 commit
  3. 04 Jan, 2013 3 commits
  4. 02 Jan, 2013 2 commits
  5. 25 Sep, 2012 1 commit
  6. 15 Aug, 2012 1 commit
  7. 08 Aug, 2012 1 commit
  8. 29 May, 2012 1 commit
  9. 13 Oct, 2011 1 commit
  10. 09 Oct, 2011 1 commit
  11. 05 Oct, 2011 1 commit
  12. 21 Sep, 2011 1 commit
    • Max Kellermann's avatar
      decoder_api: emulate SEEK command for initial seek to CUE track · 525a7919
      Max Kellermann authored
      When playing a CUE track, the player thread waited for the decoder to
      become ready, and then sent a SEEK command to the beginning of the CUE
      track.  If that is near the start of the song file, and the track is
      short enough, the decoder could have finished decoding already at that
      point, and seeking fails.
      
      This commit makes this initial seek more robust: instead of letting
      the player thread deal with the difficult timings, let the decoder API
      emulate a SEEK command, and return it to the decoder plugin, as soon
      as the plugin finishes its initialization.
      525a7919
  13. 16 Sep, 2011 1 commit
    • Max Kellermann's avatar
      input_stream: non-blocking I/O · 754f26a9
      Max Kellermann authored
      Add GMutex, GCond attributes which will be used by callers to
      conditionally wait on the stream.
      
      Remove the (now-useless) plugin method buffer(), wait on GCond
      instead.  Lock the input_stream before each method call.  Do the same
      with the playlist plugins.
      754f26a9
  14. 29 Jan, 2011 1 commit
  15. 16 Jan, 2011 1 commit
  16. 10 Jan, 2011 3 commits
  17. 18 Nov, 2010 1 commit
  18. 25 Sep, 2010 1 commit
    • Thomas Jansen's avatar
      eliminate g_error() usage · 28bcb8bd
      Thomas Jansen authored
      Replaced all occurrences of g_error() with MPD_ERROR() located in a new header
      file 'mpd_error.h'. This macro uses g_critical() to print the error message
      and then exits gracefully in contrast to g_error() which would internally call
      abort() to produce a core dump.
      
      The macro name is distinctive and allows to find all places with dubious error
      handling. The long-term goal is to get rid of MPD_ERROR() altogether. To
      facilitate the eventual removal of this macro it was added in a new header
      file rather than to an existing header file.
      
      This fixes #2995 and #3007.
      28bcb8bd
  19. 08 May, 2010 1 commit
  20. 21 Mar, 2010 1 commit
    • Tim Phipps's avatar
      Add support for MixRamp tags · e7a515c8
      Tim Phipps authored
      Adds mixrampdb and mixrampdelay commands.  Reads MIXRAP_START and
      MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
      e7a515c8
  21. 17 Feb, 2010 1 commit
    • Max Kellermann's avatar
      replay_gain: reimplement as a filter plugin · 752dfb3d
      Max Kellermann authored
      Apply the replay gain in the output thread.  This means a new setting
      will be active instantly, without going through the whole music pipe.
      And we might have different replay gain settings for each audio output
      device.
      752dfb3d
  22. 17 Jan, 2010 2 commits
    • Max Kellermann's avatar
      decoder_thread: don't fall back to "mad" unless no plugin matches · 9d4b7ab1
      Max Kellermann authored
      When all plugins have failed, MPD used to fall back to the "mad"
      decoder plugin, to handle those radio streams without a Content-Type
      response header.  This however leads to unexpected results (garbage
      being played) when the stream isn't really mp3.  Since we care little
      about "bad" streams, we shouldn't have hacks which have bad side
      effects.
      
      Let's get rid of this hack now!  Only try to "mad" plugin if there was
      no match at all (Content-Type, path suffix) and no other plugin has
      been tried.
      9d4b7ab1
    • Max Kellermann's avatar
      decoder_thread: don't try a plugin twice (MIME type & suffix) · 8ac776c5
      Max Kellermann authored
      Manage a linked list of plugins which were already tried.
      8ac776c5
  23. 16 Jan, 2010 1 commit
    • Max Kellermann's avatar
      decoder_thread: fix CUE track playback · 90d16af6
      Max Kellermann authored
      The patch "input/file: don't fall back to parent directory" introduced
      a regression: when trying to play a CUE track, decoder_run_song()
      tries to open the file as a stream first, but this fails, because the
      path is virtual.
      
      This patch fixes decoder_run_song() (instead of reverting the previous
      patch) to accept input_stream_open() failures if the song is a local
      file.  It passes the responsibility to handle non-existing files to
      the decoder's file_decode() method.
      90d16af6
  24. 04 Jan, 2010 4 commits
  25. 01 Jan, 2010 2 commits
    • Max Kellermann's avatar
      input_stream: return allocated input_stream objects · d3b763a4
      Max Kellermann authored
      Major API redesign: don't let the caller allocate the input_stream
      object.  Let each input plugin allocate its own (derived/extended)
      input_stream pointer.  The "data" attribute can now be removed, and
      all input plugins simply cast the input_stream pointer to their own
      structure (with an "struct input_stream base" as the first attribute).
      d3b763a4
    • Avuton Olrich's avatar
      Update copyright notices. · 9d3865cb
      Avuton Olrich authored
      9d3865cb
  26. 26 Dec, 2009 1 commit
  27. 15 Dec, 2009 1 commit
  28. 12 Nov, 2009 1 commit
    • Max Kellermann's avatar
      include config.h in all sources · 5b82ffc2
      Max Kellermann authored
      After we've been hit by Large File Support problems several times in
      the past week (which only occur on 32 bit platforms, which I don't
      have), this is yet another attempt to fix the issue.
      5b82ffc2
  29. 07 Nov, 2009 2 commits