configure.ac: Move SHOUTcast output to Streaming Audio Plugins.
[mpd-mk.git] / NEWS
blob0081f75967f0beb69327bf74f688343977ab5031
1 ver 0.16 (20??/??/??)
2 * protocol:
3   - send song modification time to client
4   - added "update" idle event
5   - removed the deprecated "volume" command
6   - added the "findadd" command
7   - range support for "delete"
8   - "previous" really plays the previous song
9   - "addid" with negative position is deprecated
10   - "load" supports remote playlists (extm3u, pls, asx, xspf, lastfm://)
11   - allow changing replay gain mode on-the-fly
12   - omitting the range end is possible
13   - "update" checks if the path is malformed
14 * archive:
15   - iso: renamed plugin to "iso9660"
16   - zip: renamed plugin to "zzip"
17 * input:
18   - lastfm: obsolete plugin removed
19 * tags:
20   - added tags "ArtistSort", "AlbumArtistSort"
21   - id3: revised "performer" tag support
22 * decoders:
23   - don't try a plugin twice (MIME type & suffix)
24   - don't fall back to "mad" unless no plugin matches
25   - ffmpeg: support multiple tags
26   - ffmpeg: convert metadata to generic format
27   - ffmpeg: implement the libavutil log callback
28   - sndfile: new decoder plugin based on libsndfile
29   - flac: moved CUE sheet support to a playlist plugin
30   - flac: support streams without STREAMINFO block
31   - mikmod: sample rate is configurable
32   - mpg123: new decoder plugin based on libmpg123
33   - sidplay: support sub-tunes
34   - sidplay: implemented songlength database
35   - sidplay: support seeking
36   - wavpack: activate 32 bit support
37   - wavpack: allow more than 2 channels
38 * encoders:
39   - twolame: new encoder plugin based on libtwolame
40   - flac: new encoder plugin based on libFLAC
41   - wave: new encoder plugin for PCM WAV format
42 * output:
43   - recorder: new output plugin for recording radio streams
44   - alsa: don't recover on CANCEL
45   - alsa: fill period buffer with silence before draining
46   - openal: new output plugin
47   - pulse: announce "media.role=music"
48   - pulse: renamed context to "Music Player Daemon"
49   - pulse: connect to server on MPD startup, implement pause
50   - jack: require libjack 0.100
51   - jack: don't disconnect during pause
52   - jack: connect to server on MPD startup
53   - jack: added options "client_name", "server_name"
54   - jack: clear ring buffers before activating
55   - jack: renamed option "ports" to "destination_ports"
56   - jack: support more than two audio channels
57   - httpd: bind port when output is enabled
58   - httpd: added name/genre/website configuration
59   - wildcards allowed in audio_format configuration
60   - consistently lock audio output objects
61 * player:
62   - drain audio outputs at the end of the playlist
63 * mixers:
64   - removed support for legacy mixer configuration
65   - reimplemented software volume as mixer+filter plugin
66   - per-device software/hardware mixer setting
67 * commands:
68   - added new "status" line with more precise "elapsed time"
69 * update:
70   - automatically update the database with Linux inotify
71   - support .mpdignore files in the music directory
72   - sort songs by album name first, then disc/track number
73   - rescan after metadata_to_use change
74 * normalize: upgraded to AudioCompress 2.0
75   - automatically convert to 16 bit samples
76 * replay gain:
77   - reimplemented as a filter plugin
78   - fall back to track gain if album gain is unavailable
79   - optionally use hardware mixer to apply replay gain
80 * log unused/unknown block parameters
81 * removed the deprecated "error_file" option
82 * save state when stopped
83 * renamed option "--stdout" to "--stderr"
84 * removed options --create-db and --no-create-db
85 * state_file: save only if something has changed
86 * database: eliminated maximum line length
87 * log: redirect stdout/stderr to /dev/null if syslog is used
88 * set the close-on-exec flag on all file descriptors
89 * pcm_volume, pcm_mix: implemented 32 bit support
90 * support packed 24 bit samples
91 * CUE sheet support
92 * support for MixRamp tags
93 * obey $(sysconfdir) for default mpd.conf location
94 * build with large file support by default
95 * added test suite ("make check")
96 * require GLib 2.12
97 * added libwrap support
100 ver 0.15.9 (2010/03/21)
101 * decoders:
102   - mad: fix crash when seeking at end of song
103   - mpcdec: fix negative shift on fixed-point samples
104   - mpcdec: fix replay gain formula with v8
105 * playlist: fix single+repeat in random mode
106 * player: postpone song tags during cross-fade
109 ver 0.15.8 (2010/01/17)
110 * input:
111   - curl: allow rewinding with Icy-Metadata
112 * decoders:
113   - ffmpeg, flac, vorbis: added more flac/vorbis MIME types
114   - ffmpeg: enabled libavformat's file name extension detection
115 * dbUtils: return empty tag value only if no value was found
116 * decoder_thread: fix CUE track playback
117 * queue: don't repeat current song in consume mode
120 ver 0.15.7 (2009/12/27)
121 * archive:
122   - close archive when stream is closed
123   - iso, zip: fixed memory leak in destructor
124 * input:
125   - file: don't fall back to parent directory
126   - archive: fixed memory leak in error handler
127 * tags:
128   - id3: fix ID3v1 charset conversion
129 * decoders:
130   - eliminate jitter after seek failure
131   - ffmpeg: don't try to force stereo
132   - wavpack: allow fine-grained seeking
133 * mixer: explicitly close all mixers on shutdown
134 * mapper: fix memory leak when playlist_directory is not set
135 * mapper: apply filesystem_charset to playlists
136 * command: verify playlist name in the "rm" command
137 * database: return multiple tag values per song
140 ver 0.15.6 (2009/11/18)
141 * input:
142   - lastfm: fixed variable name in GLib<2.16 code path
143   - input/mms: require libmms 0.4
144 * archive:
145   - zzip: require libzzip 0.13
146 * tags:
147   - id3: allow 4 MB RIFF/AIFF tags
148 * decoders:
149   - ffmpeg: convert metadata
150   - ffmpeg: align the output buffer
151   - oggflac: rewind stream after FLAC detection
152   - flac: fixed CUE seeking range check
153   - flac: fixed NULL pointer dereference in CUE code
154 * output_thread: check again if output is open on PAUSE
155 * update: delete ignored symlinks from database
156 * database: increased maximum line length to 32 kB
157 * sticker: added fallback for sqlite3_prepare_v2()
160 ver 0.15.5 (2009/10/18)
161 * input:
162   - curl: don't abort if a packet has only metadata
163   - curl: fixed endless loop during buffering
164 * tags:
165   - riff, aiff: fixed "limited range" gcc warning
166 * decoders:
167   - flac: fixed two memory leaks in the CUE tag loader
168 * decoder_thread: change the fallback decoder name to "mad"
169 * output_thread: check again if output is open on CANCEL
170 * update: fixed memory leak during container scan
173 ver 0.15.4 (2009/10/03)
174 * decoders:
175   - vorbis: revert "faster tag scanning with ov_test_callback()"
176   - faad: skip assertion failure on large ID3 tags
177   - ffmpeg: use the "artist" tag if "author" is not present
178 * output:
179   - osx: fix the OS X 10.6 build
182 ver 0.15.3 (2009/08/29)
183 * decoders:
184   - vorbis: faster tag scanning with ov_test_callback()
185 * output:
186   - fix stuttering due to uninitialized variable
187 * update: don't re-read unchanged container files
190 ver 0.15.2 (2009/08/15)
191 * tags:
192   - ape: check the tag size (fixes integer underflow)
193   - ape: added protection against large memory allocations
194 * decoders:
195   - mad: skip ID3 frames when libid3tag is disabled
196   - flac: parse all replaygain tags
197   - flac: don't allocate cuesheet twice (memleak)
198 * output:
199   - shout: fixed stuck pause bug
200   - shout: minimize the unpause latency
201 * update: free empty path string (memleak)
202 * update: free temporary string in container scan (memleak)
203 * directory: free empty directories after removing them (memleak)
206 ver 0.15.1 (2009/07/15)
207 * decoders:
208   - flac: fix assertion failure in tag_free() call
209 * output:
210   - httpd: include sys/types.h (fixes Mac OS X)
211 * commands:
212   - don't resume playback when stopping during pause
213 * database: fixed NULL pointer dereference after charset change
214 * log: fix double free() bug during shutdown
217 ver 0.15 (2009/06/23)
218 * input:
219   - parse Icy-Metadata
220   - added support for the MMS protocol
221   - hide HTTP password in playlist
222   - lastfm: new input plugin for last.fm radio (experimental and incomplete!)
223   - curl: moved proxy settings to "input" block
224 * tags:
225   - support the "album artist" tag
226   - support MusicBrainz tags
227   - parse RVA2 tags in mp3 files
228   - parse ID3 tags in AIFF/RIFF/WAV files
229   - ffmpeg: support new metadata API
230   - ffmpeg: added support for the tags comment, genre, year
231 * decoders:
232   - audiofile: streaming support added
233   - audiofile: added 24 bit support
234   - modplug: another MOD plugin, based on libmodplug
235   - mikmod disabled by default, due to severe security issues in libmikmod
236   - sidplay: new decoder plugin for C64 SID (using libsidplay2)
237   - fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
238     experimental due to shortcomings in libfluidsynth)
239   - wildmidi: another decoder plugin for MIDI files (using libwildmidi)
240   - flac: parse stream tags
241   - mpcdec: support the new libmpcdec SV8 API
242   - added configuration option to disable decoder plugins
243   - flac: support embedded cuesheets
244   - ffmpeg: updated list of supported formats
245 * audio outputs:
246   - added option to disable audio outputs by default
247   - wait 10 seconds before reopening after play failure
248   - shout: enlarged buffer size to 32 kB
249   - null: allow disabling synchronization
250   - mvp: fall back to stereo
251   - mvp: fall back to 16 bit audio samples
252   - mvp: check for reopen errors
253   - mvp: fixed default device detection
254   - pipe: new audio output plugin which runs a command
255   - alsa: better period_time default value for high sample rates
256   - solaris: new audio output plugin for Solaris /dev/audio
257   - httpd: new audio output plugin for web based streaming, similar to icecast
258      but built in.
259 * commands:
260   - "playlistinfo" and "move" supports a range now
261   - added "sticker database", command "sticker", which allows clients
262      to implement features like "song rating"
263   - added "consume" command which removes a song after play
264   - added "single" command, if activated, stops playback after current song or
265      repeats the song if "repeat" is active.
266 * mixers:
267   - rewritten mixer code to support multiple mixers
268   - new pulseaudio mixer
269   - alsa: new mixer_index option supports choosing between multiple
270     identically-named controls on a device.
271 * Add audio archive extraction support:
272   - bzip2
273   - iso9660
274   - zip
275 * the option "error_file" was removed, all messages are logged into
276    "log_file"
277 * support logging to syslog
278 * fall back to XDG music directory if no music_directory is configured
279 * failure to read the state file is non-fatal
280 * --create-db starts the MPD daemon instead of exiting
281 * playlist_directory and music_directory are optional
282 * playlist: recalculate the queued song after random is toggled
283 * playlist: don't unpause on delete
284 * pause when all audio outputs fail to play
285 * daemon: ignore "user" setting if already running as that user
286 * listen: fix broken client IP addresses in log
287 * listen: bind failure on secondary address is non-fatal
288 * 24/32 bit audio support
289 * print available protocols in --version
290 * fill buffer after seeking
291 * choose the fallback resampler at runtime
292 * steps taken towards win32 compatibility
293 * require glib 2.6 or greater
294 * built-in documentation using doxygen and docbook
297 ver 0.14.2 (2009/02/13)
298 * configure.ac:
299   - define HAVE_FFMPEG after all checks
300 * decoders:
301   - ffmpeg: added support for the tags comment, genre, year
302   - ffmpeg: don't warn of empty packet output
303   - ffmpeg: check if the time stamp is valid
304   - ffmpeg: fixed seek integer overflow
305   - ffmpeg: enable WAV streaming
306   - ffmpeg: added TTA support
307   - wavpack: pass NULL if the .wvc file fails to open
308   - mikmod: call MikMod_Exit() only in the finish() method
309   - aac: fix stream metadata
310 * audio outputs:
311   - jack: allocate ring buffers before connecting
312   - jack: clear "shutdown" flag on reconnect
313   - jack: reduced sleep time to 1ms
314   - shout: fixed memory leak in the mp3 encoder
315   - shout: switch to blocking mode
316   - shout: use libshout's synchronization
317   - shout: don't postpone metadata
318   - shout: clear buffer before calling the encoder
319 * mapper: remove trailing slashes from music_directory
320 * player: set player error when output device fails
321 * update: recursively purge deleted directories
322 * update: free deleted subdirectories
324 ver 0.14.1 (2009/01/17)
325 * decoders:
326   - mp4: support the writer/composer tag
327   - id3: strip leading and trailing whitespace from ID3 tags
328   - oggvorbis: fix tremor support
329   - oggvorbis: disable seeking on remote files
330 * audio outputs:
331   - jack: allocate default port names (fixes a crash)
332 * update:
333   - refresh stats after update
334   - save the database even if it is empty
335 * input_curl:
336   - use select() to eliminate busy loop during connect
337   - honour http_proxy_* config directives
338   - fix assertion failure on "connection refused"
339   - fix assertion failure with empty HTTP responses
340 * corrected the sample calculation in the fallback resampler
341 * log: automatically append newline
342 * fix setenv() conflict on Solaris
343 * configure.ac: check for pkg-config before using it
344 * fix minor memory leak in decoder_tag()
345 * fix cross-fading bug: it used to play some chunks of the new song twice
346 * playlist
347   - fix assertion failure during playlist load
348   - implement Fisher-Yates shuffle properly
349   - safely search the playlist for deleted song
350 * use custom PRNG for volume dithering (speedup)
351 * detect libid3tag without pkg-config
353 ver 0.14 (2008/12/25)
354 * audio outputs:
355   - wait 10 seconds before reopening a failed device
356   - fifo: new plugin
357   - null: new plugin
358   - shout: block while trying to connect instead of failing
359   - shout: new timeout parameter
360   - shout: support mp3 encoding and the shoutcast protocol
361   - shout: send silence during pause, so clients don't get disconnected
362 * decoders:
363   - ffmpeg: new plugin
364   - wavpack: new plugin
365   - aac: stream support added
366   - mod: disabled by default due to critical bugs in all libmikmod versions
367 * commands:
368   - "addid" takes optional second argument to specify position
369   - "idle" notifies the client when a notable change occurs
370 * Zeroconf support using Bonjour
371 * New zeroconf_enabled option so that Zeroconf support can be disabled
372 * Stop the player/decode processes when not playing to allow the CPU to sleep
373 * Fix a bug where closing an ALSA dmix device could cause MPD to hang
374 * Support for reading ReplayGain from LAME tags on MP3s
375 * MPD is now threaded, which greatly improves performance and stability
376 * memory usage reduced by merging duplicate tags in the database
377 * support connecting via unix domain socket
378 * allow authenticated local users to add any local file to the playlist
379 * 24 bit audio support
380 * optimized PCM conversions and dithering
381 * much code has been replaced by using GLib
382 * the HTTP client has been replaced with libcurl
383 * symbolic links in the music directory can be disabled; the default
384   is to ignore symlinks pointing outside the music directory
386 ver 0.13.0 (2007/5/28)
387 * New JACK audio output
388 * Support for "file" as an alternative to "filename" in search, find, and list
389 * FLAC 1.1.3 API support
390 * New playlistadd command for adding to stored playlists
391 * New playlistclear command for clearing stored playlists
392 * Fix a bug where "find any" and "list <type> any" wouldn't return any results
393 * Make "list any" return an error instead of no results and an OK
394 * New gapless_mp3_playback option to disable gapless MP3 playback
395 * Support for seeking HTTP streams
396 * Zeroconf support using Avahi
397 * libsamplerate support for high quality audio resampling
398 * ID3v2 "Original Artist/Performer" tag support
399 * New playlistsearch command for searching the playlist (similar to "search")
400 * New playlistfind command for finding songs in the playlist (similar to "find")
401 * libmikmod 3.2.0 beta support
402 * New tagtypes command for retrieving a list of available tag types
403 * Fix a bug where no ACK was returned if loading a playlist failed
404 * Fix a bug where db_update in stats would be 0 after initial database creation
405 * New count command for getting stats on found songs (similar to "find")
406 * New playlistmove command for moving songs in stored playlists
407 * New playlistdelete command for deleting songs from stored playlists
408 * New rename command for renaming stored playlists
409 * Increased default buffer_before_play from 0% to 10% to prevent skipping
410 * Lots of bug fixes, cleaned up code, and performance improvements
412 ver 0.12.2 (2007/3/20)
413 * Fix a bug where clients could cause MPD to segfault
415 ver 0.12.1 (2006/10/10)
416 * Fix segfault when scanning an MP3 that has a Xing tag with 0 frames
417 * Fix segfault when there's no audio output specified and one can't be detected
418 * Fix handling of escaping in quotes
419 * Allow a quality of -1 to be specified for shout outputs
420 * A few minor cleanups
422 ver 0.12.0 (2006/9/22)
423 * New audio output code which supports:
424   * A plugin-like architecture
425   * Non-libao ("native") outputs:
426     * ALSA
427     * OSS
428     * OS X
429     * Media MVP
430     * PulseAudio
431     * Shout (Icecast or Shoutcast)
432   * Playing through multiple outputs at once
433   * Enabling/disabling outputs while MPD is running
434   * Saving output state (enabled/disabled) to the state_file
435 * OggFLAC support
436 * Musepack support
437 * Gapless MP3 playback
438 * MP3 ReplayGain support (using ID3v2 tags only)
439 * Support for MP2 files if MP3 support is enabled
440 * Composer, Performer, Comment, and Disc metadata support
441 * New outputs command for listing available audio outputs
442 * New enableoutput and disableoutput commands for enabling/disabling outputs
443 * New plchangesposid command for a stripped down version of plchanges
444 * New addid command for adding to the playlist and returning a song ID
445 * New commands and notcommands commands for checking available commands
446 * Can now specify any supported metadata type or "any" in search, find, and list
447 * New volume_normalization parameter for enabling Audio Compress normalization
448 * New metadata_to_use parameter for choosing supported metadata types
449 * New pid_file parameter for saving the MPD process ID to the specified file
450 * The db_file parameter is now required
451 * The port parameter is now optional (defaults to 6600)
452 * Can specify bind_to_address multiple times
453 * New --kill argument for killing MPD if pid_file is specified
454 * Removed --update-db argument (use the update function in your client instead)
455 * New mpdconf.example
456 * New mpd.conf man page 
457 * Removed bundled libmad and libid3tag
458 * Lots of bug fixes, cleaned up code, and performance improvements
460 ver 0.11.5 (2004/11/1)
461 1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch
462 from dottedmag)
463 2) Strip '\r' from m3u playlists (thank you windows)
464 3) Use random() instead of rand() for playlist randomizing
465 4) Fix a bug trying skipping some commented lines in m3u playlist files
466 5) Fix a bug when fetching metadata from streams that may cause certain
467 weirdnesses
468 6) Fix a bug where replaygain preamp was used on files w/o replaygain tags
469 7) Fix a busy loop when trying to prebuffer a nonexistant or missing stream
470 8) Fix a bug in forgetting to remove leading ' ' in content-type for http
471 streams
472 9) Check for ice-name in http headers
473 10) Be sure the strip all '\n' chars in tags
474 11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop
475 errors triggered by arts/libao
477 ver 0.11.4 (2004/7/26)
478 1) Fixed a segfault when decoding mp3's with corrupt id3v2 tags
479 2) Fixed a memory leak when encountering id3v2 tags in mp3 decoder
481 ver 0.11.3 (2004/7/21)
482 1) Add support for http authentication for streams
483 2) Added replaygain pre-amp support
484 3) Better error handling for fread() in inputStream_file
485 4) Fixed a bug so that when a freeAllInterfaces is called, it sets
486 max_interface_connections to 0.  This prevents potential segfaults and other
487 nastiness for forked processes, like the player and update-er (do to
488 interfacePrintWithFD()).
489 5) Allow blockingWrite() to handle errors more gracefully (for example, if the
490 disc is full, and thus the write() fails or can't be completed, we just skip
491 this write() and continue, instead of getting stuck in an infinite loop until
492 the write() becomes successful)
493 6) Updated mpdconf.example from sbh/avuton
494 7) If "user" is specified, then convert ~ in paths to the user's home path
495 specified by "user" config paramter (not the actual current user running mpd).
497 ver 0.11.2 (2004/7/5) 
498 1) Work around in computing total time for mp3's whose first valid mpeg frame is
499 not layer III
500 2) Fix mp3 and mp4 decoders when seeking past the end of the file
501 3) Fix replaygain for flac and vorbis
502 4) Fix memory leaks in flac decoder (from normalperson)
503 5) Fix Several other bugs in playlist.c and directory.c (from normalperson)
505 ver 0.11.1 (2004/6/24)
506 1) Fix a bug that caused "popping" at the beginning of mp3's
507 2) Fix playlistid command
508 3) Fix move commands so they don't mess up the song id's
509 4) Added support for HTTP Proxy
510 5) Detect and skip recursive links in the music directory
511 6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds
512 the parent directories to the DB
514 ver 0.11.0 (2004/6/18)
515 1) Support for playing mp3 and Ogg Vorbis streams
516 2) Non-blocking Update
517 3) Replaygain support for Ogg Vorbis and FLAC (by Eric Moore aka AliasMrJones)
518 4) audio_output_format option that allows for all audio output to be converted
519 to a format compatible with any sound card
520 5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
521 6) Added "Id" and "Pos" metadata for songs in playlist
522 7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid,
523 swapid, deleteid
524 8) UTF-8 validation of all tags
525 9) Update specific files/directories (for fast, incremental updating)
526 10) Added ACK error codes
527 11) Mod file support
528 12) Added command_list_ok_begin
529 13) Play after stop resumes from last position in the playlist
530 14) Play while pause resumes playback
531 15) Better signal handling by mackstann
532 16) Cleanup decoder interface (now called InputPlugins)
533 17) --create-db no long starts the daemon
534 18) --no-daemon outputs to log files
535 19) --stdout sends output to stdout/stderr
536 20) Default port is now 6600
537 21) Lots of other cleanups and Bugfixes
539 ver 0.10.4 (2004/5/26)
540 1) Fix configure problems on OpenBSD with langinfo and iconv
541 2) Fix an infinte loop when writing to an interface and it has expired
542 3) Fix a segfault in decoding flac's
543 4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC
544 correctly
545 5) Fix a segfault in processing faulty mp4 metadata
547 ver 0.10.3 (2004/4/2)
548 1) Fix a segfault when a blanck line is sent from a client
549 2) Fix for loading playlists on platforms where char is unsigned
550 3) When pausing, release audio device after we say pause is successful (this
551 makes pause appear to not lag)
552 4) When returning errors for unknown types by player, be sure to copy the
553 filename
554 5) add --disable-alsa for disabling alsa mixer support
555 6) Use select() for a portable usleep()
556 7) For alsa mixer, default to "Master' element, not first element
558 ver 0.10.2 (2004/3/25)
559 1) Add suport for AAC
560 2) Substitute '\n' with ' ' in tag info
561 3) Remove empty directories from db
562 4) Resume from current position in song when using state file
563 5) Pause now closes the music device, and reopens it on resuming
564 6) Fix unnecessary big endian byte swapping
565 7) If locale is "C" or "POSIX", then use ISO-8859-1 as the fs charset
566 8) Fix a bug where alsa mixer wasn't detecting volume changes
567 9) For alsa and software mixer, show volume to be the same as it was set (even
568 if its not the exact volume)
569 10) Report bitrate for wave files
570 11) Compute song length of CBR mp3's more accurately
572 ver 0.10.1 (2004/3/7)
573 1) Check to see if we need to add "-lm" when linking mpd
574 2) Fix issues with skipping bad frames in an mp3 (this way we get the correct
575 samplerate and such)
576 3) Fix crossfading bug with ogg's
577 4) Updated libmad and libid3tag included w/ source to 0.15.1b
579 ver 0.10.0 (2004/3/3)
580 1) Use UTF-8 for all client communications
581 2) Crossfading support
582 3) Password Authentication (all in plaintext)
583 4) Software mixer
584 5) Buffer Size is configurable
585 6) Reduced Memory consumption (use directory tree for search and find)
586 7) Bitrate support for Flac
587 8) setvol command (deprecates volume command)
588 9) add command takes directories
589 10) Path's in config file now work with ~
590 11) Add samplerate,bits, and channels to status
591 12) Reenable playTime in stats display
592 13) Fix a segfault when doing: add ""
593 14) Fix a segfault with flac vorbis comments simply being "="
594 15) Fix a segfault/bug in queueNextSong with repeat+random
595 16) Fix a bug, where one process may segfault, and cause more processes to spawn
596 w/o killing ones that lost their parent.
597 17) Fix a bug when the OSS device was unable to fetch the current volume,
598 it would close the device (when it maybe previously closed by the exact same
599 code)
600 18) command.c cleanup by mackstann
601 19) directory.c and command.c cleanup by tw-nym
603 ver 0.9.4 (2004/1/21)
604 1) Fix a bug where updated tag info wasn't being detected
605 2) Set the default audio write size to 1024 bytes (should decrease cpu load a
606 bit on some machines).
607 3) Make audio write size configurable via "audio_write_size" config option
608 4) Tweak output buffer size for connections by detecting the kernel output
609 buffer size.
611 ver 0.9.3 (2003/10/31)
612 1) Store total time/length of songs in db and display in *info commands
613 2) Display instantaneous bitrate in status command
614 3) Add Wave Support using libaudiofile (Patch from normalperson)
615 4) Command code cleanup (Patch from tw-nym)
616 5) Optimize listing of playlists (10-100x faster)
617 6) Optimize interface output (write in 4kB chunks instead of on every '\n')
618 7) Fix bug that prevented rm command from working
619 8) Fix bug where deleting current song skips the next song
620 9) Use iconv to convert vorbis comments from UTF-8 to Latin1
622 ver 0.9.2 (2003/10/6)
623 1) Fix FreeBSD Compilation Problems
624 2) Fix bug in move command
625 3) Add mixer_control options to configure which mixer control/device mpd
626 controls
627 4) Randomize on play -1
628 5) Fix a bug in toggling repeat off and at the end of the playlist
630 ver 0.9.1 (2003/9/30)
631 1) Fix a statement in the middle of declarations in listen.c, causes error for
632 gcc 2.7
634 ver 0.9.0 (2003/9/30)
635 1) Random play mode
636 2) Alsa Mixer Support
637 3) Save and Restore "state"
638 4) Default config file locations (.mpdconf and /etc/mpd.conf)
639 5) Make db file locations configurable
640 6) Move songs around in the playlist
641 7) Gapless playback
642 8) Use Xing tags for mp3's
643 9) Remove stop_on_error
644 10) Seeking support
645 11) Playlists can be loaded and deleted from subdirectories
646 12) Complete rewrite of player layer (fork()'s only once, opens and closes
647 audio device as needed).
648 13) Eliminate use and dependence of SIGIO
649 14) IPv6 support
650 15) Solaris compilations fixes
651 16) Support for different log levels
652 17) Timestamps for log entries
653 18) "user" config parameter for setuid (patch from Nagilum)
654 19) Other misc features and bug fixes
656 ver 0.8.7 (2003/9/3)
657 1) Fix a memory leak.  When closing a interface, was called close() on the fd
658 instead of calling fclose() on the fp that was opened with fdopen().
660 ver 0.8.6 (2003/8/25)
661 1) Fix a memory leak when a buffered existed, and a connection was unexpectedly
662 closed, and i wasn't free'ing the buffer apropriatly.
664 ver 0.8.5 (2003/8/17)
665 1) Fix a bug where an extra end of line is returned when attempting to play a
666 non existing file.  This causes parsing errors for clients.
668 ver 0.8.4 (2003/8/13)
669 1) Fix a bug where garbage is returned with errors in "list" command
671 ver 0.8.3 (2003/8/12) 
672 1) Fix a compilation error on older linux systems
673 2) Fix a bug in searching by title
674 3) Add "list" command
675 4) Add config options for specifying libao driver/plugin and options
676 5) Add config option to specify which address to bind to
677 6) Add support for loading and saving absolute pathnames in saved playlists
678 7) Playlist no longer creates duplicate entries for song data (more me
679 efficient)
680 8) Songs deleted from the db are now removed for the playlist as well
682 ver 0.8.2 (2003/7/22)
683 1) Increased the connection que for listen() from 0 to 5
684 2) Cleanup configure makefiles so that mpd uses MPD_LIBS and MPD_CFLAGS
685 rather than LIBS and CFLAGS
686 3) Put a cap on the number of commands per command list
687 4) Put a cap on the maximum number of buffered output lines
688 5) Get rid of TIME_WAIT/EADDRINUSE socket problem
689 6) Use asynchronious IO (i.e. trigger SIGIO instead so we can sleep in
690 select() calls longer)
692 ver 0.8.1 (2003/7/11)
693 1) FreeBSD fixes
694 2) Fix for rare segfault when updating
695 3) Fix bug where client was being hungup on when done playing current song
696 4) Fix bug when playing flac's where it incorrectly reports an error
697 5) Make stop playlist on error configurable
698 6) Configure checks for installed libmad and libid3tag and uses those if found
699 7) Use buffer->finished in *_decode's instead of depending on catching signals
701 ver 0.8.0 (2003/7/6)
702 1) Flac support
703 2) Make playlist max length configurable
704 3) New backward compatible status (backward compatible for 0.8.0 on)
705 4) listall command now can take a directory as an argument
706 5) Buffer rewritten to use shared memory instead of sockets
707 6) Playlist adding done using db
708 7) Add sort to list, and use binary search for finding
709 8) New "stats" command
710 9) Command list (for faster adding of large batches of files)
711 10) Add buffered chunks before play
712 11) Useful error reporting to clients (part of status command)
713 12) Use libid3tag for reading id3 tags (more stable)
714 13) Non-blocking output to clients
715 14) Fix bug when removing items from directory
716 15) Fix bug when playing mono mp3's
717 16) Fix bug when attempting to delete files when using samba
718 17) Lots of other bug fixes I can't remember
720 ver 0.7.0 (2003/6/20)
721 1) use mad instead of mpg123 for mp3 decoding
722 2) volume support
723 3) repeate playlist support
724 4) use autoconf/automake (i.e. "configure")
725 5) configurable max connections
727 ver 0.6.2 (2003/6/11)
728 1) Buffer support for ogg
729 2) new config file options: "connection_timeout" and "mpg123_ignore_junk"
730 3) new commands: "next", "previous", and "listall"
731 Thanks to Niklas Hofer for "next" and "previous" patches!
732 4) Search by filename
733 5) bug fix for pause when playing mp3's
735 ver 0.6.1 (2003/5/29)
736 1) Add conf file support
737 2) Fix a bug when doing mp3stop (do wait3(NULL,WNOHANG|WUNTRACED,NULL))
738 3) Fix a bug when fork'ing, fflush file buffers before forking so the
739 child doesn't print the same stuff in the buffer.
741 ver 0.6.0 (2003/5/25)
742 1) Add ogg vorbis support
743 2) Fix two bugs relating to tables, one for search by title, and one where we
744 freed the tables before directories, causing a segfault
745 3) The info command has been removed.
747 ver 0.5.0-0.5.2
748 Initial release(s).  Support for MP3 via mpg123