1 ver 0.15.3 (2009/08/29)
3 - vorbis: faster tag scanning with ov_test_callback()
5 - fix stuttering due to uninitialized variable
6 * update: don't re-read unchanged container files
9 ver 0.15.2 (2009/08/15)
11 - ape: check the tag size (fixes integer underflow)
12 - ape: added protection against large memory allocations
14 - mad: skip ID3 frames when libid3tag is disabled
15 - flac: parse all replaygain tags
16 - flac: don't allocate cuesheet twice (memleak)
18 - shout: fixed stuck pause bug
19 - shout: minimize the unpause latency
20 * update: free empty path string (memleak)
21 * update: free temporary string in container scan (memleak)
22 * directory: free empty directories after removing them (memleak)
25 ver 0.15.1 (2009/07/15)
27 - flac: fix assertion failure in tag_free() call
29 - httpd: include sys/types.h (fixes Mac OS X)
31 - don't resume playback when stopping during pause
32 * database: fixed NULL pointer dereference after charset change
33 * log: fix double free() bug during shutdown
39 - added support for the MMS protocol
40 - hide HTTP password in playlist
41 - lastfm: new input plugin for last.fm radio (experimental and incomplete!)
42 - curl: moved proxy settings to "input" block
44 - support the "album artist" tag
45 - support MusicBrainz tags
46 - parse RVA2 tags in mp3 files
47 - parse ID3 tags in AIFF/RIFF/WAV files
48 - ffmpeg: support new metadata API
49 - ffmpeg: added support for the tags comment, genre, year
51 - audiofile: streaming support added
52 - audiofile: added 24 bit support
53 - modplug: another MOD plugin, based on libmodplug
54 - mikmod disabled by default, due to severe security issues in libmikmod
55 - sidplay: new decoder plugin for C64 SID (using libsidplay2)
56 - fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
57 experimental due to shortcomings in libfluidsynth)
58 - wildmidi: another decoder plugin for MIDI files (using libwildmidi)
59 - flac: parse stream tags
60 - mpcdec: support the new libmpcdec SV8 API
61 - added configuration option to disable decoder plugins
62 - flac: support embedded cuesheets
63 - ffmpeg: updated list of supported formats
65 - added option to disable audio outputs by default
66 - wait 10 seconds before reopening after play failure
67 - shout: enlarged buffer size to 32 kB
68 - null: allow disabling synchronization
69 - mvp: fall back to stereo
70 - mvp: fall back to 16 bit audio samples
71 - mvp: check for reopen errors
72 - mvp: fixed default device detection
73 - pipe: new audio output plugin which runs a command
74 - alsa: better period_time default value for high sample rates
75 - solaris: new audio output plugin for Solaris /dev/audio
76 - httpd: new audio output plugin for web based streaming, similar to icecast
79 - "playlistinfo" and "move" supports a range now
80 - added "sticker database", command "sticker", which allows clients
81 to implement features like "song rating"
82 - added "consume" command which removes a song after play
83 - added "single" command, if activated, stops playback after current song or
84 repeats the song if "repeat" is active.
86 - rewritten mixer code to support multiple mixers
87 - new pulseaudio mixer
88 - alsa: new mixer_index option supports choosing between multiple
89 identically-named controls on a device.
90 * Add audio archive extraction support:
94 * the option "error_file" was removed, all messages are logged into
96 * support logging to syslog
97 * fall back to XDG music directory if no music_directory is configured
98 * failure to read the state file is non-fatal
99 * --create-db starts the MPD daemon instead of exiting
100 * playlist_directory and music_directory are optional
101 * playlist: recalculate the queued song after random is toggled
102 * playlist: don't unpause on delete
103 * pause when all audio outputs fail to play
104 * daemon: ignore "user" setting if already running as that user
105 * listen: fix broken client IP addresses in log
106 * listen: bind failure on secondary address is non-fatal
107 * 24/32 bit audio support
108 * print available protocols in --version
109 * fill buffer after seeking
110 * choose the fallback resampler at runtime
111 * steps taken towards win32 compatibility
112 * require glib 2.6 or greater
113 * built-in documentation using doxygen and docbook
116 ver 0.14.2 (2009/02/13)
118 - define HAVE_FFMPEG after all checks
120 - ffmpeg: added support for the tags comment, genre, year
121 - ffmpeg: don't warn of empty packet output
122 - ffmpeg: check if the time stamp is valid
123 - ffmpeg: fixed seek integer overflow
124 - ffmpeg: enable WAV streaming
125 - ffmpeg: added TTA support
126 - wavpack: pass NULL if the .wvc file fails to open
127 - mikmod: call MikMod_Exit() only in the finish() method
128 - aac: fix stream metadata
130 - jack: allocate ring buffers before connecting
131 - jack: clear "shutdown" flag on reconnect
132 - jack: reduced sleep time to 1ms
133 - shout: fixed memory leak in the mp3 encoder
134 - shout: switch to blocking mode
135 - shout: use libshout's synchronization
136 - shout: don't postpone metadata
137 - shout: clear buffer before calling the encoder
138 * mapper: remove trailing slashes from music_directory
139 * player: set player error when output device fails
140 * update: recursively purge deleted directories
141 * update: free deleted subdirectories
143 ver 0.14.1 (2009/01/17)
145 - mp4: support the writer/composer tag
146 - id3: strip leading and trailing whitespace from ID3 tags
147 - oggvorbis: fix tremor support
148 - oggvorbis: disable seeking on remote files
150 - jack: allocate default port names (fixes a crash)
152 - refresh stats after update
153 - save the database even if it is empty
155 - use select() to eliminate busy loop during connect
156 - honour http_proxy_* config directives
157 - fix assertion failure on "connection refused"
158 - fix assertion failure with empty HTTP responses
159 * corrected the sample calculation in the fallback resampler
160 * log: automatically append newline
161 * fix setenv() conflict on Solaris
162 * configure.ac: check for pkg-config before using it
163 * fix minor memory leak in decoder_tag()
164 * fix cross-fading bug: it used to play some chunks of the new song twice
166 - fix assertion failure during playlist load
167 - implement Fisher-Yates shuffle properly
168 - safely search the playlist for deleted song
169 * use custom PRNG for volume dithering (speedup)
170 * detect libid3tag without pkg-config
172 ver 0.14 (2008/12/25)
174 - wait 10 seconds before reopening a failed device
177 - shout: block while trying to connect instead of failing
178 - shout: new timeout parameter
179 - shout: support mp3 encoding and the shoutcast protocol
180 - shout: send silence during pause, so clients don't get disconnected
183 - wavpack: new plugin
184 - aac: stream support added
185 - mod: disabled by default due to critical bugs in all libmikmod versions
187 - "addid" takes optional second argument to specify position
188 - "idle" notifies the client when a notable change occurs
189 * Zeroconf support using Bonjour
190 * New zeroconf_enabled option so that Zeroconf support can be disabled
191 * Stop the player/decode processes when not playing to allow the CPU to sleep
192 * Fix a bug where closing an ALSA dmix device could cause MPD to hang
193 * Support for reading ReplayGain from LAME tags on MP3s
194 * MPD is now threaded, which greatly improves performance and stability
195 * memory usage reduced by merging duplicate tags in the database
196 * support connecting via unix domain socket
197 * allow authenticated local users to add any local file to the playlist
198 * 24 bit audio support
199 * optimized PCM conversions and dithering
200 * much code has been replaced by using GLib
201 * the HTTP client has been replaced with libcurl
202 * symbolic links in the music directory can be disabled; the default
203 is to ignore symlinks pointing outside the music directory
205 ver 0.13.0 (2007/5/28)
206 * New JACK audio output
207 * Support for "file" as an alternative to "filename" in search, find, and list
208 * FLAC 1.1.3 API support
209 * New playlistadd command for adding to stored playlists
210 * New playlistclear command for clearing stored playlists
211 * Fix a bug where "find any" and "list <type> any" wouldn't return any results
212 * Make "list any" return an error instead of no results and an OK
213 * New gapless_mp3_playback option to disable gapless MP3 playback
214 * Support for seeking HTTP streams
215 * Zeroconf support using Avahi
216 * libsamplerate support for high quality audio resampling
217 * ID3v2 "Original Artist/Performer" tag support
218 * New playlistsearch command for searching the playlist (similar to "search")
219 * New playlistfind command for finding songs in the playlist (similar to "find")
220 * libmikmod 3.2.0 beta support
221 * New tagtypes command for retrieving a list of available tag types
222 * Fix a bug where no ACK was returned if loading a playlist failed
223 * Fix a bug where db_update in stats would be 0 after initial database creation
224 * New count command for getting stats on found songs (similar to "find")
225 * New playlistmove command for moving songs in stored playlists
226 * New playlistdelete command for deleting songs from stored playlists
227 * New rename command for renaming stored playlists
228 * Increased default buffer_before_play from 0% to 10% to prevent skipping
229 * Lots of bug fixes, cleaned up code, and performance improvements
231 ver 0.12.2 (2007/3/20)
232 * Fix a bug where clients could cause MPD to segfault
234 ver 0.12.1 (2006/10/10)
235 * Fix segfault when scanning an MP3 that has a Xing tag with 0 frames
236 * Fix segfault when there's no audio output specified and one can't be detected
237 * Fix handling of escaping in quotes
238 * Allow a quality of -1 to be specified for shout outputs
239 * A few minor cleanups
241 ver 0.12.0 (2006/9/22)
242 * New audio output code which supports:
243 * A plugin-like architecture
244 * Non-libao ("native") outputs:
250 * Shout (Icecast or Shoutcast)
251 * Playing through multiple outputs at once
252 * Enabling/disabling outputs while MPD is running
253 * Saving output state (enabled/disabled) to the state_file
256 * Gapless MP3 playback
257 * MP3 ReplayGain support (using ID3v2 tags only)
258 * Support for MP2 files if MP3 support is enabled
259 * Composer, Performer, Comment, and Disc metadata support
260 * New outputs command for listing available audio outputs
261 * New enableoutput and disableoutput commands for enabling/disabling outputs
262 * New plchangesposid command for a stripped down version of plchanges
263 * New addid command for adding to the playlist and returning a song ID
264 * New commands and notcommands commands for checking available commands
265 * Can now specify any supported metadata type or "any" in search, find, and list
266 * New volume_normalization parameter for enabling Audio Compress normalization
267 * New metadata_to_use parameter for choosing supported metadata types
268 * New pid_file parameter for saving the MPD process ID to the specified file
269 * The db_file parameter is now required
270 * The port parameter is now optional (defaults to 6600)
271 * Can specify bind_to_address multiple times
272 * New --kill argument for killing MPD if pid_file is specified
273 * Removed --update-db argument (use the update function in your client instead)
274 * New mpdconf.example
275 * New mpd.conf man page
276 * Removed bundled libmad and libid3tag
277 * Lots of bug fixes, cleaned up code, and performance improvements
279 ver 0.11.5 (2004/11/1)
280 1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch
282 2) Strip '\r' from m3u playlists (thank you windows)
283 3) Use random() instead of rand() for playlist randomizing
284 4) Fix a bug trying skipping some commented lines in m3u playlist files
285 5) Fix a bug when fetching metadata from streams that may cause certain
287 6) Fix a bug where replaygain preamp was used on files w/o replaygain tags
288 7) Fix a busy loop when trying to prebuffer a nonexistant or missing stream
289 8) Fix a bug in forgetting to remove leading ' ' in content-type for http
291 9) Check for ice-name in http headers
292 10) Be sure the strip all '\n' chars in tags
293 11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop
294 errors triggered by arts/libao
296 ver 0.11.4 (2004/7/26)
297 1) Fixed a segfault when decoding mp3's with corrupt id3v2 tags
298 2) Fixed a memory leak when encountering id3v2 tags in mp3 decoder
300 ver 0.11.3 (2004/7/21)
301 1) Add support for http authentication for streams
302 2) Added replaygain pre-amp support
303 3) Better error handling for fread() in inputStream_file
304 4) Fixed a bug so that when a freeAllInterfaces is called, it sets
305 max_interface_connections to 0. This prevents potential segfaults and other
306 nastiness for forked processes, like the player and update-er (do to
307 interfacePrintWithFD()).
308 5) Allow blockingWrite() to handle errors more gracefully (for example, if the
309 disc is full, and thus the write() fails or can't be completed, we just skip
310 this write() and continue, instead of getting stuck in an infinite loop until
311 the write() becomes successful)
312 6) Updated mpdconf.example from sbh/avuton
313 7) If "user" is specified, then convert ~ in paths to the user's home path
314 specified by "user" config paramter (not the actual current user running mpd).
316 ver 0.11.2 (2004/7/5)
317 1) Work around in computing total time for mp3's whose first valid mpeg frame is
319 2) Fix mp3 and mp4 decoders when seeking past the end of the file
320 3) Fix replaygain for flac and vorbis
321 4) Fix memory leaks in flac decoder (from normalperson)
322 5) Fix Several other bugs in playlist.c and directory.c (from normalperson)
324 ver 0.11.1 (2004/6/24)
325 1) Fix a bug that caused "popping" at the beginning of mp3's
326 2) Fix playlistid command
327 3) Fix move commands so they don't mess up the song id's
328 4) Added support for HTTP Proxy
329 5) Detect and skip recursive links in the music directory
330 6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds
331 the parent directories to the DB
333 ver 0.11.0 (2004/6/18)
334 1) Support for playing mp3 and Ogg Vorbis streams
335 2) Non-blocking Update
336 3) Replaygain support for Ogg Vorbis and FLAC (by Eric Moore aka AliasMrJones)
337 4) audio_output_format option that allows for all audio output to be converted
338 to a format compatible with any sound card
339 5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
340 6) Added "Id" and "Pos" metadata for songs in playlist
341 7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid,
343 8) UTF-8 validation of all tags
344 9) Update specific files/directories (for fast, incremental updating)
345 10) Added ACK error codes
347 12) Added command_list_ok_begin
348 13) Play after stop resumes from last position in the playlist
349 14) Play while pause resumes playback
350 15) Better signal handling by mackstann
351 16) Cleanup decoder interface (now called InputPlugins)
352 17) --create-db no long starts the daemon
353 18) --no-daemon outputs to log files
354 19) --stdout sends output to stdout/stderr
355 20) Default port is now 6600
356 21) Lots of other cleanups and Bugfixes
358 ver 0.10.4 (2004/5/26)
359 1) Fix configure problems on OpenBSD with langinfo and iconv
360 2) Fix an infinte loop when writing to an interface and it has expired
361 3) Fix a segfault in decoding flac's
362 4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC
364 5) Fix a segfault in processing faulty mp4 metadata
366 ver 0.10.3 (2004/4/2)
367 1) Fix a segfault when a blanck line is sent from a client
368 2) Fix for loading playlists on platforms where char is unsigned
369 3) When pausing, release audio device after we say pause is successful (this
370 makes pause appear to not lag)
371 4) When returning errors for unknown types by player, be sure to copy the
373 5) add --disable-alsa for disabling alsa mixer support
374 6) Use select() for a portable usleep()
375 7) For alsa mixer, default to "Master' element, not first element
377 ver 0.10.2 (2004/3/25)
378 1) Add suport for AAC
379 2) Substitute '\n' with ' ' in tag info
380 3) Remove empty directories from db
381 4) Resume from current position in song when using state file
382 5) Pause now closes the music device, and reopens it on resuming
383 6) Fix unnecessary big endian byte swapping
384 7) If locale is "C" or "POSIX", then use ISO-8859-1 as the fs charset
385 8) Fix a bug where alsa mixer wasn't detecting volume changes
386 9) For alsa and software mixer, show volume to be the same as it was set (even
387 if its not the exact volume)
388 10) Report bitrate for wave files
389 11) Compute song length of CBR mp3's more accurately
391 ver 0.10.1 (2004/3/7)
392 1) Check to see if we need to add "-lm" when linking mpd
393 2) Fix issues with skipping bad frames in an mp3 (this way we get the correct
395 3) Fix crossfading bug with ogg's
396 4) Updated libmad and libid3tag included w/ source to 0.15.1b
398 ver 0.10.0 (2004/3/3)
399 1) Use UTF-8 for all client communications
400 2) Crossfading support
401 3) Password Authentication (all in plaintext)
403 5) Buffer Size is configurable
404 6) Reduced Memory consumption (use directory tree for search and find)
405 7) Bitrate support for Flac
406 8) setvol command (deprecates volume command)
407 9) add command takes directories
408 10) Path's in config file now work with ~
409 11) Add samplerate,bits, and channels to status
410 12) Reenable playTime in stats display
411 13) Fix a segfault when doing: add ""
412 14) Fix a segfault with flac vorbis comments simply being "="
413 15) Fix a segfault/bug in queueNextSong with repeat+random
414 16) Fix a bug, where one process may segfault, and cause more processes to spawn
415 w/o killing ones that lost their parent.
416 17) Fix a bug when the OSS device was unable to fetch the current volume,
417 it would close the device (when it maybe previously closed by the exact same
419 18) command.c cleanup by mackstann
420 19) directory.c and command.c cleanup by tw-nym
422 ver 0.9.4 (2004/1/21)
423 1) Fix a bug where updated tag info wasn't being detected
424 2) Set the default audio write size to 1024 bytes (should decrease cpu load a
425 bit on some machines).
426 3) Make audio write size configurable via "audio_write_size" config option
427 4) Tweak output buffer size for connections by detecting the kernel output
430 ver 0.9.3 (2003/10/31)
431 1) Store total time/length of songs in db and display in *info commands
432 2) Display instantaneous bitrate in status command
433 3) Add Wave Support using libaudiofile (Patch from normalperson)
434 4) Command code cleanup (Patch from tw-nym)
435 5) Optimize listing of playlists (10-100x faster)
436 6) Optimize interface output (write in 4kB chunks instead of on every '\n')
437 7) Fix bug that prevented rm command from working
438 8) Fix bug where deleting current song skips the next song
439 9) Use iconv to convert vorbis comments from UTF-8 to Latin1
441 ver 0.9.2 (2003/10/6)
442 1) Fix FreeBSD Compilation Problems
443 2) Fix bug in move command
444 3) Add mixer_control options to configure which mixer control/device mpd
446 4) Randomize on play -1
447 5) Fix a bug in toggling repeat off and at the end of the playlist
449 ver 0.9.1 (2003/9/30)
450 1) Fix a statement in the middle of declarations in listen.c, causes error for
453 ver 0.9.0 (2003/9/30)
455 2) Alsa Mixer Support
456 3) Save and Restore "state"
457 4) Default config file locations (.mpdconf and /etc/mpd.conf)
458 5) Make db file locations configurable
459 6) Move songs around in the playlist
461 8) Use Xing tags for mp3's
462 9) Remove stop_on_error
464 11) Playlists can be loaded and deleted from subdirectories
465 12) Complete rewrite of player layer (fork()'s only once, opens and closes
466 audio device as needed).
467 13) Eliminate use and dependence of SIGIO
469 15) Solaris compilations fixes
470 16) Support for different log levels
471 17) Timestamps for log entries
472 18) "user" config parameter for setuid (patch from Nagilum)
473 19) Other misc features and bug fixes
476 1) Fix a memory leak. When closing a interface, was called close() on the fd
477 instead of calling fclose() on the fp that was opened with fdopen().
479 ver 0.8.6 (2003/8/25)
480 1) Fix a memory leak when a buffered existed, and a connection was unexpectedly
481 closed, and i wasn't free'ing the buffer apropriatly.
483 ver 0.8.5 (2003/8/17)
484 1) Fix a bug where an extra end of line is returned when attempting to play a
485 non existing file. This causes parsing errors for clients.
487 ver 0.8.4 (2003/8/13)
488 1) Fix a bug where garbage is returned with errors in "list" command
490 ver 0.8.3 (2003/8/12)
491 1) Fix a compilation error on older linux systems
492 2) Fix a bug in searching by title
493 3) Add "list" command
494 4) Add config options for specifying libao driver/plugin and options
495 5) Add config option to specify which address to bind to
496 6) Add support for loading and saving absolute pathnames in saved playlists
497 7) Playlist no longer creates duplicate entries for song data (more me
499 8) Songs deleted from the db are now removed for the playlist as well
501 ver 0.8.2 (2003/7/22)
502 1) Increased the connection que for listen() from 0 to 5
503 2) Cleanup configure makefiles so that mpd uses MPD_LIBS and MPD_CFLAGS
504 rather than LIBS and CFLAGS
505 3) Put a cap on the number of commands per command list
506 4) Put a cap on the maximum number of buffered output lines
507 5) Get rid of TIME_WAIT/EADDRINUSE socket problem
508 6) Use asynchronious IO (i.e. trigger SIGIO instead so we can sleep in
509 select() calls longer)
511 ver 0.8.1 (2003/7/11)
513 2) Fix for rare segfault when updating
514 3) Fix bug where client was being hungup on when done playing current song
515 4) Fix bug when playing flac's where it incorrectly reports an error
516 5) Make stop playlist on error configurable
517 6) Configure checks for installed libmad and libid3tag and uses those if found
518 7) Use buffer->finished in *_decode's instead of depending on catching signals
522 2) Make playlist max length configurable
523 3) New backward compatible status (backward compatible for 0.8.0 on)
524 4) listall command now can take a directory as an argument
525 5) Buffer rewritten to use shared memory instead of sockets
526 6) Playlist adding done using db
527 7) Add sort to list, and use binary search for finding
528 8) New "stats" command
529 9) Command list (for faster adding of large batches of files)
530 10) Add buffered chunks before play
531 11) Useful error reporting to clients (part of status command)
532 12) Use libid3tag for reading id3 tags (more stable)
533 13) Non-blocking output to clients
534 14) Fix bug when removing items from directory
535 15) Fix bug when playing mono mp3's
536 16) Fix bug when attempting to delete files when using samba
537 17) Lots of other bug fixes I can't remember
539 ver 0.7.0 (2003/6/20)
540 1) use mad instead of mpg123 for mp3 decoding
542 3) repeate playlist support
543 4) use autoconf/automake (i.e. "configure")
544 5) configurable max connections
546 ver 0.6.2 (2003/6/11)
547 1) Buffer support for ogg
548 2) new config file options: "connection_timeout" and "mpg123_ignore_junk"
549 3) new commands: "next", "previous", and "listall"
550 Thanks to Niklas Hofer for "next" and "previous" patches!
551 4) Search by filename
552 5) bug fix for pause when playing mp3's
554 ver 0.6.1 (2003/5/29)
555 1) Add conf file support
556 2) Fix a bug when doing mp3stop (do wait3(NULL,WNOHANG|WUNTRACED,NULL))
557 3) Fix a bug when fork'ing, fflush file buffers before forking so the
558 child doesn't print the same stuff in the buffer.
560 ver 0.6.0 (2003/5/25)
561 1) Add ogg vorbis support
562 2) Fix two bugs relating to tables, one for search by title, and one where we
563 freed the tables before directories, causing a segfault
564 3) The info command has been removed.
567 Initial release(s). Support for MP3 via mpg123