1. 04 Jan, 2013 4 commits
  2. 02 Jan, 2013 1 commit
  3. 21 Sep, 2011 2 commits
    • 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
    • Max Kellermann's avatar
      fb19210c
  4. 14 Sep, 2011 1 commit
  5. 29 Jan, 2011 1 commit
  6. 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
  7. 04 Jan, 2010 2 commits
  8. 01 Jan, 2010 1 commit
  9. 26 Dec, 2009 1 commit
  10. 31 Oct, 2009 1 commit
  11. 13 Apr, 2009 1 commit
  12. 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
  13. 05 Mar, 2009 2 commits
    • Max Kellermann's avatar
      pipe: added music_buffer, rewrite music_pipe · 01cf7fea
      Max Kellermann authored
      Turn the music_pipe into a simple music_chunk queue.  The music_chunk
      allocation code is moved to music_buffer, and is now managed with a
      linked list instead of a ring buffer.  Two separate music_pipe objects
      are used by the decoder for the "current" and the "next" song, which
      greatly simplifies the cross-fading code.
      01cf7fea
    • Max Kellermann's avatar
      music_pipe: added music_pipe_push() · 000b2d4f
      Max Kellermann authored
      Added music_pipe_allocate(), music_pipe_push() and
      music_pipe_cancel().  Those functions allow the caller (decoder thread
      in this case) to do its own chunk management.  The functions
      music_pipe_flush() and music_pipe_tag() can now be removed.
      000b2d4f
  14. 15 Feb, 2009 1 commit
  15. 07 Jan, 2009 1 commit
  16. 03 Jan, 2009 1 commit
  17. 08 Nov, 2008 1 commit
  18. 03 Nov, 2008 1 commit
    • Max Kellermann's avatar
      decoder_api: automatically send stream tag · ac96022c
      Max Kellermann authored
      If an input stream provides tags (e.g. from an icecast server), send
      them in the decoder_data() and decoder_tag() methods.  Removed the
      according code from the mp3 and oggvorbis plugins - decoders shouldn't
      have to care about stream tags.
      
      This patch also adds the missing decoder_tag() invocation to the mp3
      plugin.
      ac96022c
  19. 01 Nov, 2008 1 commit
  20. 31 Oct, 2008 1 commit
    • Max Kellermann's avatar
      added prefix to header macros · ea515494
      Max Kellermann authored
      "LOG_H" is a macro which is also used by ffmpeg/log.h.  This is
      ffmpeg's fault, because short macros should be reserved for
      applications, but since it's always a good idea to choose prefixed
      macro names, even for applications, we are going to do that in MPD.
      ea515494
  21. 21 Oct, 2008 1 commit
  22. 08 Oct, 2008 1 commit
  23. 26 Aug, 2008 4 commits
    • Max Kellermann's avatar
      added flag "decoder.seeking" · 1c196478
      Max Kellermann authored
      This flag is used internally; it is set by decoder_seek_where(), and
      indicates that the decoder plugin has begun the seek process.  It is
      used for the case that the decoder plugin has to read data during the
      seek process.  Before this patch, that was impossible, because
      decoder_read() would refuse to read data unless dc->command is NONE.
      This patch is kind of a dirty workaround, and needs to be redesigned
      later.
      1c196478
    • Max Kellermann's avatar
      renamed InputPlugin to struct decoder_plugin · e41be362
      Max Kellermann authored
      "decoder plugin" is a better name than "input plugin", since the
      plugin does not actually do the input - InputStream does.  Also don't
      use typedef, so we can forward-declare it if required.
      e41be362
    • Max Kellermann's avatar
      moved convState to struct decoder · 2e9169de
      Max Kellermann authored
      Since we moved all PCM conversions to decoder_data(), the attribute
      convState isn't being used anymore by the OutputBuffer code.  Move it
      to struct decoder.
      2e9169de
    • Max Kellermann's avatar
      added struct decoder · 154aa496
      Max Kellermann authored
      The decoder struct should later be made opaque to the decoder plugin,
      because maintaining a stable struct ABI is quite difficult.  The ABI
      should only consist of a small number of stable functions.
      154aa496
  24. 12 Apr, 2008 1 commit
    • Max Kellermann's avatar
      clean up CPP includes · c89b358c
      Max Kellermann authored
      Try to only include headers which are really needed.  We should
      particularly check all "headers including other headers".  The
      long-term goal is to have a manageable, small API for plugins
      (decoders, output) without so many mpd internals cluttering the
      namespace.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7319 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      c89b358c
  25. 05 Feb, 2008 1 commit
  26. 28 Dec, 2007 1 commit
    • Eric Wong's avatar
      Merge branches/ew r7104 · b79f6b88
      Eric Wong authored
      thread-safety work in preparation for rewrite to use pthreads
      
      Expect no regressions against trunk (r7078), possibly minor
      performance improvements in update (due to fewer heap
      allocations), but increased stack usage.
      
      Applied the following patches:
      
      * maxpath_str for reentrancy (temporary fix, reverted)
      * path: start working on thread-safe variants of these methods
      * Re-entrancy work on path/character-set conversions
      * directory.c: exploreDirectory() use reentrant functions here
      * directory/update: more use of reentrant functions + cleanups
      * string_toupper: a strdup-less version of strDupToUpper
      * get_song_url: a static-variable-free version of getSongUrl()
      * Use reentrant/thread-safe get_song_url everywhere
      * replace rmp2amp with the reentrant version, rmp2amp_r
      * Get rid of the non-reentrant/non-thread-safe rpp2app, too.
      * buffer2array: assert strdup() returns a usable value in unit tests
      * replace utf8ToFsCharset and fsCharsetToUtf8 with thread-safe variants
      * fix storing playlists w/o absolute paths
      * parent_path(), a reentrant version of parentPath()
      * parentPath => parent_path for reentrancy and thread-safety
      * allow "make test" to automatically run embedded unit tests
      * remove convStrDup() and maxpath_str()
      * use MPD_PATH_MAX everywhere instead of MAXPATHLEN
      * path: get rid of appendSlash, pfx_path and just use pfx_dir
      * get_song_url: fix the ability to play songs in the top-level music_directory
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7106 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      b79f6b88
  27. 05 Apr, 2007 1 commit
  28. 18 Feb, 2007 1 commit
  29. 08 Jan, 2007 1 commit
  30. 20 Jul, 2006 1 commit
  31. 14 Jul, 2006 1 commit