What's new in Music Player Daemon (MPD) 0.17.3

Jan 7, 2013
  • output:
  • osx: fix pops during playback
  • recorder: fix I/O error check
  • shout: fix memory leak in error handler
  • recorder, shout: support Ogg packets that span more than one page
  • decoder:
  • ffmpeg: ignore negative time stamps
  • ffmpeg: support planar audio
  • playlist:
  • cue: fix memory leak
  • cue: fix CUE files with only one track

New in Music Player Daemon (MPD) 0.17.2 (Oct 1, 2012)

  • protocol:
  • fix crash in local file check
  • decoder:
  • fluidsynth: remove throttle (requires libfluidsynth 1.1)
  • fluidsynth: stop playback at end of file
  • fluidsynth: check MIDI file format while scanning
  • fluidsynth: add sample rate setting
  • wavpack: support all APEv2 tags
  • output:
  • httpd: use monotonic clock, avoid hiccups after system clock adjustment
  • httpd: fix throttling bug after resuming playback
  • playlist:
  • cue: map "PERFORMER" to "artist" or "album artist"
  • mapper: fix non-UTF8 music directory name
  • mapper: fix potential crash in file permission check
  • playlist: fix use-after-free bug
  • playlist: fix memory leak
  • state_file: save song priorities
  • player: disable cross-fading in "single" mode
  • update: fix unsafe readlink() usage

New in Music Player Daemon (MPD) 0.17.1 (Aug 1, 2012)

  • protocol:
  • require appropriate permissions for searchadd{,pl}
  • tags:
  • aiff: support the AIFC format
  • ape: check for ID3 if no usable APE tag was found
  • playlist:
  • cue: support file types "MP3", "AIFF"
  • output:
  • fix noisy playback with conversion and software volume

New in Music Player Daemon (MPD) 0.17 (Jun 27, 2012)

  • protocol:
  • support client-to-client communication
  • "update" and "rescan" need only "CONTROL" permission
  • new command "seekcur" for simpler seeking within current song
  • new command "config" dumps location of music directory
  • add range parameter to command "load"
  • print extra "playlist" object for embedded CUE sheets
  • new commands "searchadd", "searchaddpl"
  • input:
  • cdio_paranoia: new input plugin to play audio CDs
  • curl: enable CURLOPT_NETRC
  • curl: non-blocking I/O
  • soup: new input plugin based on libsoup
  • tags:
  • RVA2: support separate album/track replay gain
  • decoder:
  • mpg123: implement seeking
  • ffmpeg: drop support for pre-0.5 ffmpeg
  • ffmpeg: support WebM
  • oggflac: delete this obsolete plugin
  • dsdiff: new decoder plugin
  • output:
  • alsa: support DSD-over-USB (dCS suggested standard)
  • httpd: support for streaming to a DLNA client
  • openal: improve buffer cancellation
  • osx: allow user to specify other audio devices
  • osx: implement 32 bit playback
  • shout: add possibility to set url
  • roar: new output plugin for RoarAudio
  • winmm: fail if wrong device specified instead of using default device
  • mixer:
  • alsa: listen for external volume changes
  • playlist:
  • allow references to songs outside the music directory
  • new CUE parser, without libcue
  • soundcloud: new plugin for accessing soundcloud.com
  • state_file: add option "restore_paused"
  • cue: show CUE track numbers
  • allow port specification in "bind_to_address" settings
  • support floating point samples
  • systemd socket activation
  • improve --version output
  • WIN32: fix renaming of stored playlists with non-ASCII names

New in Music Player Daemon (MPD) 0.16.8 (Apr 5, 2012)

  • fix for libsamplerate assertion failure
  • decoder:
  • vorbis (and others): fix seeking at startup
  • ffmpeg: read the "year" tag
  • encoder:
  • vorbis: generate end-of-stream packet before tag
  • vorbis: generate end-of-stream packet when playback ends
  • output:
  • jack: check for connection failure before starting playback
  • jack: workaround for libjack1 crash bug
  • osx: fix stuttering due to buffering bug
  • fix endless loop in text file reader
  • update: skip symlinks in path that is to be updated

New in Music Player Daemon (MPD) 0.15.9 (Mar 24, 2010)

  • decoder/mad: fix crash when seeking at end of song
  • playlist: fix single+repeat in random mode
  • tag: added function tag_merge_replace()
  • player_thread: postpone song tags during cross-fade

New in Music Player Daemon (MPD) 0.15.8 (Feb 3, 2010)

  • decoder/{ffmpeg,flac,vorbis}: added more flac/vorbis MIME types
  • input/rewind: new input_stream wrapper to allow stream rewinding
  • input/curl: removed the built-in rewinding code
  • dbUtils: return empty tag value only if no value was found
  • NEWS: added missing entry
  • decoder_thread: fix CUE track playback
  • queue: don't repeat current song in consume mode
  • configure.ac: disable -Wdeclaration-after-statement
  • decoder/ffmpeg: append file name suffix to virtual stream URL
  • Makefile.am: link test/run_decoder and test/read_tags with timer.c
  • decoder/ffmpeg: added more MIME types

New in Music Player Daemon (MPD) 0.15.7 (Jan 13, 2010)

  • Avuton Olrich (2):
  • Modify version string to post-release version 0.15.7~git
  • mpd version 0.15.7
  • Max Kellermann (18):
  • decoder/flac: fixed compiler warning
  • ffmpeg: don't try to force stereo
  • mapper: fix memory leak when playlist_directory is not set
  • command: verify playlist name in the "rm" command
  • mapper: apply filesystem_charset to playlists
  • mixer: explicitly close all mixers on shutdown
  • decoder/wavpack: don't use the nonstandard "uchar" type
  • input/file: don't fall back to parent directory
  • test/run_input: initialize archive plugins
  • test/run_input: deinitialize everything after open() error
  • input/archive: close the archive file on error
  • archive/bz2: removed NULL check before g_free()
  • archive: close archive when stream is closed
  • iso, zip: fixed memory leak in destructor
  • Makefile.am: create doxygen output directory
  • decoder/wavpack: allow fine-grained seeking
  • decoder_thread: eliminate jitter after seek failure
  • dbUtils: return multiple tag values per song
  • svitoos (1):
  • tag_id3: fix ID3v1 charset conversion

New in Music Player Daemon (MPD) 0.15.6 (Dec 8, 2009)

  • output_thread: check again if output is open on PAUSE
  • update: delete ignored symlinks from database
  • decoder/ffmpeg: convert metadata
  • decoder_control: removed unused DECODE_TYPE macros
  • song_save: increased maximum line length to 32 kB
  • input/lastfm: fixed variable name in GLib

New in Music Player Daemon (MPD) 0.15.2 (Aug 17, 2009)

  • ape: check the tag size (fixes integer underflow)
  • ape: added protection against large memory allocations
  • decoders:
  • mad: skip ID3 frames when libid3tag is disabled
  • flac: parse all replaygain tags
  • flac: don't allocate cuesheet twice (memleak)
  • output:
  • shout: fixed stuck pause bug
  • shout: minimize the unpause latency
  • update: free empty path string (memleak)
  • update: free temporary string in container scan (memleak)
  • directory: free empty directories after removing them (memleak)

New in Music Player Daemon (MPD) 0.15.1 (Jul 16, 2009)

  • doc: fix wording for option "follow_inside_symlinks"
  • doc/user: added introduction
  • NEWS: updated NEWS file for 0.15.1
  • configure.ac: fix the --disable-ffmpeg help text
  • output_all: don't resume playback when stopping during pause
  • output_thread: don't play next chunk after command==PAUSE
  • doc/protocol: clarified "idle database"
  • database: fixed NULL pointer dereference after charset change
  • log: fix double free() bug during shutdown
  • song: initialize mtime in song_alloc()
  • output/httpd: include sys/types.h
  • decoder/flac: fix assertion failure in tag_free() call
  • doc: documented the "command" setting of the "pipe" output plugin
  • doc: documented the "pulse" output plugin settings
  • doc: documented the "shout" output plugin settings
  • output/httpd: removed duplicate sys/types.h include
  • configure.ac: fail when ffmpeg is enabled, but not found
  • NEWS: fixed typo
  • Makefile.am: disable test/run_encoder without plugins

New in Music Player Daemon (MPD) 0.15 Beta 2 (May 8, 2009)

  • Modify version string to post-release version 0.15~git
  • mpd version 0.15~beta2
  • Makefile.am: run sparse once with all sources
  • archive/zip: pass NULL instead of 0 to zzip_dir_open()
  • httpd_output: assert that tag!=NULL
  • vorbis_encoder: moved code to vorbis_encoder_headerout()
  • vorbis_encoder: start a new stream in tag()
  • httpd_output: disable Icy-Metadata when encoder supports tags
  • httpd_output: moved code to httpd_output_encoder_to_clients()
  • httpd_output: save the page generated by encoder_tag()
  • test/run_encoder: flush the encoder before exiting
  • tag_id3: added support for the UFID frame
  • player_control: renamed playerSeek(), return bool
  • player_control: removed pc.error check from pc_seek()
  • player_control: assert that pc.next_song is NULL after seeking
  • pcm_resample: fixed typo in libsamplerate runtime check

New in Music Player Daemon (MPD) 0.14.2 (Feb 16, 2009)

  • configure.ac:
  • define HAVE_FFMPEG after all checks
  • decoders:
  • ffmpeg: added support for the tags comment, genre, year
  • ffmpeg: don't warn of empty packet output
  • ffmpeg: check if the time stamp is valid
  • ffmpeg: fixed seek integer overflow
  • ffmpeg: enable WAV streaming
  • ffmpeg: added TTA support
  • wavpack: pass NULL if the .wvc file fails to open
  • mikmod: call MikMod_Exit() only in the finish() method
  • aac: fix stream metadata
  • audio outputs:
  • jack: allocate ring buffers before connecting
  • jack: clear "shutdown" flag on reconnect
  • jack: reduced sleep time to 1ms
  • shout: fixed memory leak in the mp3 encoder
  • shout: switch to blocking mode
  • shout: use libshout's synchronization
  • shout: don't postpone metadata
  • shout: clear buffer before calling the encoder
  • mapper: remove trailing slashes from music_directory
  • player: set player error when output device fails
  • update: recursively purge deleted directories
  • update: free deleted subdirectories

New in Music Player Daemon (MPD) 0.14.1 (Feb 3, 2009)

  • decoders:
  • mp4: support the writer/composer tag
  • id3: strip leading and trailing whitespace from ID3 tags
  • oggvorbis: fix tremor support
  • oggvorbis: disable seeking on remote files
  • audio outputs:
  • jack: allocate default port names (fixes a crash)
  • update:
  • refresh stats after update
  • save the database even if it is empty
  • input_curl:
  • use select() to eliminate busy loop during connect
  • honour http_proxy_config directives
  • fix assertion failure on "connection refused"
  • fix assertion failure with empty HTTP responses
  • corrected the sample calculation in the fallback resampler
  • log: automatically append newline
  • fix setenv() conflict on Solaris
  • configure.ac: check for pkg-config before using it
  • fix minor memory leak in decoder_tag()
  • fix cross-fading bug: it used to play some chunks of the new song twice
  • use custom PRNG for volume dithering (speedup)
  • detect libid3tag without pkg-config
  • playlist:
  • fix assertion failure during playlist load
  • implement Fisher-Yates shuffle properly
  • safely search the playlist for deleted song

New in Music Player Daemon (MPD) 0.14 (Dec 28, 2008)

  • Update the text of the GPLv2, this fixes the address and a few other oddities.
  • Clarify some very messy documentation in the installation.
  • Start off with a disclaimer about the NEWS file information
  • Word wrap to 80 char lines
  • More clarification in the INSTALL file
  • Huge mpdconf update.
  • Remove obsolete http_buffer* stuff that went away with the new curl backend.
  • Fix AUTHORS UTF-8 compliance.
  • Fix a few problems with the huge mpdconf update. There's alot of shift here, mostly due to word wraps. This, also, improves on uniformity and clarity of the document.
  • log: map log level "SECURE" to GLib's "INFO"
  • doc: clarify "user" setting (starting as root / unprivileged)
  • Merge branch 'master' of git://git.musicpd.org/avuton/mpd
  • Merge branch 'http_buffer_remove' of git://git.musicpd.org/avuton/mpd
  • client: always attempt to flush deferred buffers
  • pcm_utils: check pcm_convert()==0
  • configure.ac: disable the mikmod plugin by default
  • configure.ac: fix --enable-un documentation
  • configure.ac: renamed shout options
  • Makefile.am: don't add directory into EXTRA_DIST
  • Makefile.am: removed m4/* from EXTRA_DIST
  • Makefile.am: distribute only real scripts
  • listen: "port" argument is unused when TCP support is disabled
  • mp3: "tag" argument is unused when libid3tag is disabled
  • added build test script "test.sh"
  • Makefile.am: fix sparse invocation
  • ffmpeg: don't assign "0" to pointer
  • ffmpeg: case AV_NOPTS_VALUE to int64_t
  • stored_playlist: fix integer overflow in length estimation
  • playlist: fix stored playlist modifications with absolute paths
  • doc: fix "playlistdelete" documentation
  • Build makefiles after checking available outputs and decoder plugins
  • shout: fixed bad error message printout

New in Music Player Daemon (MPD) 0.14 Beta 3 (Dec 22, 2008)

  • Call CloseComponent after AudioUnitUninitialize.
  • Use MIN.
  • Factor computation.
  • Remove useless statement, curpos is initialized at the beginning of the loop.
  • Remove useless computation. After the pthread_cond_wait loop there are at least MIN(od->bufferSize, size) free bytes in the buffer. Thus MIN(od->bufferSize - od->len, size) is always equal to MIN(od->bufferSize, size).
  • Remove useless statement.
  • stored_playlist: include time.h for the time_t type
  • pcm_utils: always round up resampling buffer size
  • mp3: declare variables as "enum mp3_action"
  • osx: don't use void pointer in arithmetic
  • osx: use GLib instead of utils.h/log.h
  • osx: use 16 bit sample format
  • ao: use 16 bit sample format
  • locate: ignore case when searching in song paths
  • ls: don't include time.h
  • ls: removed isValidRemoteUtf8Url()
  • ls: make printRemoteUrlHandlers() return void
  • ls: use bool
  • ls: reimplement getSuffix() with strrchr()
  • ls: don't return suffix from parent directory name
  • ls: added uri_has_scheme()
  • command: reject unsupported URI schemes
  • man: document Unix domain socket configuration in the manual
  • playlist: clear pc.errored_song on delete
  • player_control: check if errored_song is set
  • configure.ac: disable shout when no encoder is found
  • configure.ac: check lame availability before shout_mp3 test
  • ffmpeg: adding APE support
  • ffmpeg: fixing ffmpeg_send_packet to allow multipackets
  • configure.ac: added libcurl to configure summary

New in Music Player Daemon (MPD) 0.14 Beta 2 (Dec 3, 2008)

  • player: set elapsed=0 at song change
  • player: disable music_pipe_check_format()
  • flac, mpc, ogg, wavpack: include unistd.h for SEEK_SET
  • decoder: added missing glib.h include
  • ao: use GLib instead of utils.h/log.h
  • ao: support all libao error codes
  • ao: print error message when ao_open_live() fails
  • shout: don't check HAVE_SHOUT
  • shout: use GLib instead of utils.h/log.h
  • mvp: use GLib instead of utils.h/log.h
  • oss: use GLib instead of utils.h/log.h
  • output: use GLib instead of log.h/util.h
  • main: destroy the save_state timer on exit
  • input_curl: disable Icy-Metadata
  • mp3: use GLib logging
  • conf: added config_get_bool()
  • update: added update_global_init() and update_global_finish()
  • INSTALL: documented pkg-config usage
  • input_curl: send a User-Agent header
  • input_curl: follow HTTP redirects
  • shout_mp3: cast input buffer to int16_t*
  • shout: fixed the lame input buffer allocation
  • AUTHORS: removed mp4ff copyright
  • AUTHORS: removed pseudonyms
  • AUTHORS: moved inactive developers
  • alsa: reverted the default buffer_time to 500 ms
  • listen: enable AI_PASSIVE
  • listen: check if AI_ADDRCONFIG is defined
  • AUTHORS: added Avuton Olrich, Eric Wollesen
  • NEWS: added new features
  • update: added options which control symlink behaviour
  • main_notify.c: replaced mpd_unused by G_GNUC_UNUSED
  • decoder_api.c: replaced mpd_unused by G_GNUC_UNUSED
  • input_curl.c: replaced mpd_unused by G_GNUC_UNUSED
  • input_file.c: replaced mpd_unused by G_GNUC_UNUSED
  • zeroconf.c: replaced mpd_unused by G_GNUC_UNUSED
  • decoder_thread.c: replaced mpd_unused by G_GNUC_UNUSED
  • dbUtils.c: replaced mpd_unused by G_GNUC_UNUSED
  • pcm_resample_fallback.c: replaced mpd_unused by G_GNUC_UNUSED
  • sig_handlers.c: replaced mpd_unused by G_GNUC_UNUSED
  • update.c: replaced mpd_unused by G_GNUC_UNUSED
  • player_thread.c: replaced mpd_unused by G_GNUC_UNUSED
  • client.c: replaced mpd_unused by G_GNUC_UNUSED
  • command.c: replaced mpd_unused by G_GNUC_UNUSED
  • tag_id3.h: replaced mpd_unused by G_GNUC_UNUSED
  • replaced mpd_likely/mpd_unlikely by G_LIKELY/G_UNLIKELY
  • replaced mpd_malloc by G_GNUC_MALLOC
  • replaced mpd_noreturn by G_GNUC_NORETURN
  • replaced mpd_printf etc by G_GNUC_PRINTF

New in Music Player Daemon (MPD) 0.14 Beta 1 (Nov 24, 2008)

  • path: fix g_convert() argument order
  • mapper: use the utf8_to_fs_charset() result
  • update: pass UTF-8 path to skip_symlink()
  • aac: don't try to free static buffer
  • aac: fix compiler warnings on amd64
  • wavpack: redo using audio_format_frame_size()
  • aac: get rid of gcc warnings
  • utils: introduce assert_static()
  • wavpack: use assert_static()
  • command: allow clients to subscribe to specific idle events
  • command: added documentation for idle subscriptions
  • decoder: check length==0 in decoder_read()
  • aac: detect whether to pass "uint32_t*" to NeAACDecInit2()
  • ffmpeg: fixed AVSEEK_SIZE
  • input_stream: size==-1 means unknown size
  • music_pipe: narrowed assertion on chunk index
  • decoder: pass the correct buffer length to pcm_convert()
  • doc: converted doc/COMMANDS to DocBook
  • doc: fix "Repeat" typo in protocol.xml
  • doc: process protocol.xml with xmlto
  • input_curl: always set eof=true on CURLMSG_DONE
  • curl: don't check running_handles for EOF
  • input_curl: don't fail when seek to EOF is requested
  • ogg: check the ov_read() return value before the vorbis_info evaluation
  • ogg: moved the "errorStr" variable into the error handler
  • decoder: ignore the SEEK command during startup
  • input_curl: don't do temporary calculations with input_stream.offset
  • input_curl: moved code to consume_buffer()
  • input_curl: try to seek by fast-forwarding the buffer
  • state_file: save state_file every 5 minutes
  • log: print the log_domain
  • aac: use GLib instead of utils.h/log.h
  • audiofile: use GLib instead of log.h
  • ffmpeg: use GLib instead of log.h
  • flac, oggflac: use GLib instead of utils.h/log.h
  • decoder: ignore decoder_data() calls with length==0
  • audio_format: added audio_format_valid()
  • decoder: check audio_format_valid() in all decoders
  • command: format strerror() with "%s"
  • autogen.sh: removed libtoolize
  • update: fixed shadow warning on "basename"
  • Makefile.am: include protocol.xml in source tarball
  • doc: improved XML decorations
  • doc: rephrase descriptions
  • doc: merged protocol documentation from the wiki
  • audiofile: fixed misplaced if
  • ffmpeg: read tags from AVFormatContext
  • AUTHORS: added Viliam Mateicka

New in Music Player Daemon (MPD) 0.13.2 (Nov 3, 2008)

  • New JACK audio output
  • Support for "file" as an alternative to "filename" in search, find, and list
  • FLAC 1.1.3 API support
  • New playlistadd command for adding to stored playlists
  • New playlistclear command for clearing stored playlists
  • Fix a bug where "find any" and "list any" wouldn't return any results
  • Make "list any" return an error instead of no results and an OK
  • New gapless_mp3_playback option to disable gapless MP3 playback
  • Support for seeking HTTP streams
  • Zeroconf support using Avahi
  • libsamplerate support for high quality audio resampling
  • ID3v2 "Original Artist/Performer" tag support
  • New playlistsearch command for searching the playlist (similar to "search")
  • New playlistfind command for finding songs in the playlist (similar to "find")
  • libmikmod 3.2.0 beta support
  • New tagtypes command for retrieving a list of available tag types
  • Fix a bug where no ACK was returned if loading a playlist failed
  • Fix a bug where db_update in stats would be 0 after initial database creation
  • New count command for getting stats on found songs (similar to "find")
  • New playlistmove command for moving songs in stored playlists
  • New playlistdelete command for deleting songs from stored playlists
  • New rename command for renaming stored playlists
  • Increased default buffer_before_play from 0% to 10% to prevent skipping
  • Lots of bug fixes, cleaned up code, and performance improvements