1. 06 Oct, 2011 2 commits
  2. 05 Oct, 2011 2 commits
  3. 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
  4. 20 Jul, 2011 1 commit
  5. 31 Mar, 2011 1 commit
  6. 29 Jan, 2011 1 commit
  7. 10 Jan, 2011 3 commits
  8. 07 Jan, 2011 3 commits
  9. 05 Nov, 2010 4 commits
  10. 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
  11. 08 May, 2010 1 commit
  12. 02 May, 2010 1 commit
  13. 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
  14. 17 Mar, 2010 1 commit
    • Max Kellermann's avatar
      player_thread: postpone song tags during cross-fade · cbfaa4a2
      Max Kellermann authored
      Previously, tags of the new song being cross-faded in were sent
      immediately.  That can cause wrong information being displayed,
      because the "previous" song might send its tag at the end again,
      overriding the "next" song's tag.  This patch saves & merges the tag
      of the next song, and sends it when cross-fading is finished, and the
      next song really starts.
      cbfaa4a2
  15. 10 Mar, 2010 1 commit
    • Max Kellermann's avatar
      output: added option "always_on" for radio stations · e686d191
      Max Kellermann authored
      Did you ever accidently click "stop" while feeding a radio station?
      This option sets the output device to "pause" to disable the "close"
      method.  It falls back to "pause" then, which is specific to the
      plugin.  Some plugins implement it by feeding silence.
      e686d191
  16. 02 Jan, 2010 1 commit
    • Max Kellermann's avatar
      output_all: reset elapsed_time at song border · 915182bc
      Max Kellermann authored
      Another quirk fixed: after the last chunk of a song has been played,
      the "elapsed_time" variable is set to the chunk's time stamp.  When
      the client receives the PLAYER idle event and asks MPD for the current
      time stamp, MPD will return the last time stamp of the previous song
      when it hasn't played the first chunk of the current song yet.
      915182bc
  17. 01 Jan, 2010 1 commit
  18. 27 Dec, 2009 1 commit
    • Max Kellermann's avatar
      decoder, player: support song ranges · 5787f737
      Max Kellermann authored
      Seek the decoder to the start of the range before beginning with
      playback.  Stop the decoder when the end of the range has been
      reached.  Add the start position to the seek position.  Expose the
      duration of the range, not the full song file.
      5787f737
  19. 26 Dec, 2009 1 commit
  20. 14 Dec, 2009 1 commit
  21. 13 Nov, 2009 1 commit
  22. 12 Nov, 2009 2 commits
    • Max Kellermann's avatar
      player_thread: initialize chunk->times in silence generator · 76283c25
      Max Kellermann authored
      When waiting for the decoder to provide more data, the player thread
      generates silence chunks if needed.  However, it forgot to initialize
      the chunk.times attribute, which had now an undefined value.  This
      patch sets it to -1.0, meaning "value is undefined".  Add a ">= 0.0"
      check to audio_output_all_check().  This fixes spurious relative
      seeking errors, because sometimes, the "elapsed" value falls back to
      0.0.
      76283c25
    • 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
  23. 09 Nov, 2009 1 commit
    • Max Kellermann's avatar
      player_thread: drain audio outputs at the end of the playlist · 8420f142
      Max Kellermann authored
      When there's no queued song, and the current one has finished playing,
      first make sure that the hardware outputs have really finished playing
      the last chunk: call the drain() method in all audio outputs.  Without
      this patch, MPD stopped playback shortly before the ALSA sound card
      had finished playing.
      8420f142
  24. 03 Nov, 2009 7 commits