1. 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
  2. 09 Nov, 2009 1 commit
  3. 07 Nov, 2009 1 commit
  4. 02 Nov, 2009 1 commit
    • Max Kellermann's avatar
      output: signal the output thread when CANCEL is finished · b9013944
      Max Kellermann authored
      After CANCEL, the output thread waits for another signal before it
      continues playback, to synchronize with the caller.  There were some
      situations where this signal wasn't sent properly.  This patch adds an
      explicit g_cond_signal() at two code positions.
      b9013944
  5. 31 Oct, 2009 1 commit
  6. 30 Oct, 2009 1 commit
    • Max Kellermann's avatar
      {player,output}_thread: fixed elapsed_time quirks · 73cff374
      Max Kellermann authored
      Right after seeking and song change, the elapsed_time shows old
      information, because the output thread didn't finish a full chunk
      yet.  This patch re-adds a second elapsed_time variable, and keeps
      track of a fallback value, in case the output thread can't provide a
      reliable value.
      73cff374
  7. 29 Oct, 2009 1 commit
  8. 23 Oct, 2009 1 commit
    • Max Kellermann's avatar
      output_plugin: added methods enable() and disable() · e53ca368
      Max Kellermann authored
      With these methods, an output plugin can allocate some global
      resources only if it is actually enabled.  The method enable() is
      called after daemonization, which allows for more sophisticated
      resource allocation during that method.
      e53ca368
  9. 08 Oct, 2009 1 commit
    • Max Kellermann's avatar
      player_thread: get "elapsed" from audio outputs · 448aefaa
      Max Kellermann authored
      Tracking the "elapsed" time from the chunks which we have sent to the
      output pipe is very imprecise: since we have implemented the music
      pipe, we're sending large number of chunks at once, giving the
      "elapsed" time stamp a resolution of usually more than a second.
      
      This patch changes the source of this information to the outputs.  If
      a chunk has been played by all outputs, the "elapsed" time stamp is
      updated.
      
      The new command PLAYER_COMMAND_REFRESH makes the player thread update
      its status information: it tells the outputs to update the chunk time
      stamp.  After that, player_control.elapsed_time is current.
      448aefaa
  10. 29 Jun, 2009 1 commit
    • Max Kellermann's avatar
      output_all: don't resume playback when stopping during pause · 40851b7c
      Max Kellermann authored
      When MPD was paused, and the client sent the "stop" command (or
      "clear"), a glitch caused MPD to continue playback for a split second.
      This was because audio_output_all_cancel() calls
      audio_output_all_update(), which reopens all output devices, and
      re-ignites the playback loop.
      40851b7c
  11. 29 May, 2009 1 commit
  12. 26 Mar, 2009 1 commit
    • Max Kellermann's avatar
      output_all: synchronize playback with player_control.notify · 207786ff
      Max Kellermann authored
      This patch fixes a longer delay when moving around songs in the
      playlist.  The main thread wants to enqueue a new "next" song into the
      player thread, but the player thread is waiting inside
      audio_output_all_wait() for the output threads.  Use
      player_control.notify there, so audio_output_all_wait() gets woken up
      by the main thread, too.
      207786ff
  13. 25 Mar, 2009 3 commits
  14. 16 Mar, 2009 1 commit
  15. 14 Mar, 2009 2 commits
  16. 13 Mar, 2009 1 commit
    • Avuton Olrich's avatar
      all: Update copyright header. · 0aee49bd
      Avuton Olrich authored
      This updates the copyright header to all be the same, which is
      pretty much an update of where to mail request for a copy of the GPL
      and the years of the MPD project. This also puts all committers under
      'The Music Player Project' umbrella. These entries should go
      individually in the AUTHORS file, for consistancy.
      0aee49bd
  17. 12 Mar, 2009 1 commit
    • Max Kellermann's avatar
      output_all: fix off-by-one error in audio_output_all_check() · e3b9b57e
      Max Kellermann authored
      When there are chunks which are not yet finished,
      audio_output_all_check() returned the size of its music pipe minus
      one.  I can't remember exactly why I subtracted 1 from the return
      value, it must have had something to do with a former meaning of this
      function.  Now it induces assertion failures.
      e3b9b57e
  18. 10 Mar, 2009 2 commits
  19. 09 Mar, 2009 1 commit
    • Max Kellermann's avatar
      output: play from a music_pipe object · 3291666b
      Max Kellermann authored
      Instead of passing individual buffers to audio_output_all_play(), pass
      music_chunk objects.  Append all those chunks asynchronously to a
      music_pipe instance.  All output threads may then read chunks from
      this pipe.  This reduces MPD's internal latency by an order of
      magnitude.
      3291666b
  20. 07 Mar, 2009 2 commits
  21. 01 Mar, 2009 1 commit
  22. 28 Feb, 2009 1 commit
  23. 26 Feb, 2009 2 commits
  24. 25 Feb, 2009 1 commit
  25. 16 Feb, 2009 1 commit
    • Max Kellermann's avatar
      output: include cleanup · 46c15e4a
      Max Kellermann authored
      Don't include output_api.h in output_internal.h.  This change requires
      adding missing includes in several sources.
      46c15e4a
  26. 10 Feb, 2009 8 commits