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