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