1. 16 Apr, 2013 1 commit
  2. 25 Jan, 2013 1 commit
    • Max Kellermann's avatar
      PlayerControl: add second Cond object · a9b62a2e
      Max Kellermann authored
      This fixes a deadlock bug introduced by 18076ac9.  After all, the
      second Cond was necessary.
      
      The problem: two threads can wait for a signal at the same time.  The
      player thread waits for the output thread to finish playback.  The
      main thread waits for the player thread to complete a command.  The
      output thread finishes playback, and sends a signal, which
      unfortunately does not wake up the player thread, but the main
      thread.  The main thread sees that the command is still not finished,
      and waits again.  The signal is lost forever, and MPD is deadlocked.
      a9b62a2e
  3. 21 Jan, 2013 1 commit
  4. 20 Jan, 2013 1 commit
  5. 10 Jan, 2013 3 commits
  6. 09 Jan, 2013 3 commits
  7. 07 Jan, 2013 3 commits
  8. 04 Jan, 2013 5 commits
  9. 02 Jan, 2013 1 commit
  10. 27 Sep, 2012 1 commit
  11. 25 Aug, 2012 1 commit
    • Max Kellermann's avatar
      player_thread: disable cross-fading in "single" mode · f3515505
      Max Kellermann authored
      This commit reimplements the core of the "single" mode.  Instead of
      doing the detection in the playlist code from the outside, it is moved
      to the player thread, which gets a new option called "border_pause".
      It will now pause playback exactly at the beginning of the new song,
      making the feature more reliable.
      
      Now that the player thread knows what will happen, it can suppress
      cross-fading.
      
      Fixes mantis tickets 0003055 and 0003166.
      f3515505
  12. 15 Aug, 2012 4 commits
  13. 08 Aug, 2012 4 commits
  14. 06 Oct, 2011 2 commits
  15. 05 Oct, 2011 2 commits
  16. 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
  17. 20 Jul, 2011 1 commit
  18. 31 Mar, 2011 1 commit
  19. 29 Jan, 2011 1 commit
  20. 10 Jan, 2011 3 commits