Update to 6762
[qball-mpd.git] / ChangeLog
blob2e629cf0147908cae71e657c5a61884ca4598c82
1 ver 0.14.0 (????/??/??)
2 * New null audio output
3 * Zeroconf support using Bonjour
4 * New zeroconf_enabled option so that Zeroconf support can be disabled
5 * Enable the AAC input plugin if support for it has been compiled in
6 * Support for playing MP4 streams
7 * Stop the player/decode processes when not playing to allow the CPU to sleep
8 * Fix a bug where closing an ALSA dmix device could cause MPD to hang
9 * Make the shout output block while trying to connect instead of failing
10 * New timeout parameter for shout outputs to define a connection timeout
11 * New FIFO audio output
12 * Support for WavPack files
14 ver 0.13.0 (2007/5/28)
15 * New JACK audio output
16 * Support for "file" as an alternative to "filename" in search, find, and list
17 * FLAC 1.1.3 API support
18 * New playlistadd command for adding to stored playlists
19 * New playlistclear command for clearing stored playlists
20 * Fix a bug where "find any" and "list <type> any" wouldn't return any results
21 * Make "list any" return an error instead of no results and an OK
22 * New gapless_mp3_playback option to disable gapless MP3 playback
23 * Support for seeking HTTP streams
24 * Zeroconf support using Avahi
25 * libsamplerate support for high quality audio resampling
26 * ID3v2 "Original Artist/Performer" tag support
27 * New playlistsearch command for searching the playlist (similar to "search")
28 * New playlistfind command for finding songs in the playlist (similar to "find")
29 * libmikmod 3.2.0 beta support
30 * New tagtypes command for retrieving a list of available tag types
31 * Fix a bug where no ACK was returned if loading a playlist failed
32 * Fix a bug where db_update in stats would be 0 after initial database creation
33 * New count command for getting stats on found songs (similar to "find")
34 * New playlistmove command for moving songs in stored playlists
35 * New playlistdelete command for deleting songs from stored playlists
36 * New rename command for renaming stored playlists
37 * Increased default buffer_before_play from 0% to 10% to prevent skipping
38 * Lots of bug fixes, cleaned up code, and performance improvements
40 ver 0.12.2 (2007/3/20)
41 * Fix a bug where clients could cause MPD to segfault
43 ver 0.12.1 (2006/10/10)
44 * Fix segfault when scanning an MP3 that has a Xing tag with 0 frames
45 * Fix segfault when there's no audio output specified and one can't be detected
46 * Fix handling of escaping in quotes
47 * Allow a quality of -1 to be specified for shout outputs
48 * A few minor cleanups
50 ver 0.12.0 (2006/9/22)
51 * New audio output code which supports:
52   * A plugin-like architecture
53   * Non-libao ("native") outputs:
54     * ALSA
55     * OSS
56     * OS X
57     * Media MVP
58     * PulseAudio
59     * Shout (Icecast or Shoutcast)
60   * Playing through multiple outputs at once
61   * Enabling/disabling outputs while MPD is running
62   * Saving output state (enabled/disabled) to the state_file
63 * OggFLAC support
64 * Musepack support
65 * Gapless MP3 playback
66 * MP3 ReplayGain support (using ID3v2 tags only)
67 * Support for MP2 files if MP3 support is enabled
68 * Composer, Performer, Comment, and Disc metadata support
69 * New outputs command for listing available audio outputs
70 * New enableoutput and disableoutput commands for enabling/disabling outputs
71 * New plchangesposid command for a stripped down version of plchanges
72 * New addid command for adding to the playlist and returning a song ID
73 * New commands and notcommands commands for checking available commands
74 * Can now specify any supported metadata type or "any" in search, find, and list
75 * New volume_normalization parameter for enabling Audio Compress normalization
76 * New metadata_to_use parameter for choosing supported metadata types
77 * New pid_file parameter for saving the MPD process ID to the specified file
78 * The db_file parameter is now required
79 * The port parameter is now optional (defaults to 6600)
80 * Can specify bind_to_address multiple times
81 * New --kill argument for killing MPD if pid_file is specified
82 * Removed --update-db argument (use the update function in your client instead)
83 * New mpdconf.example
84 * New mpd.conf man page 
85 * Removed bundled libmad and libid3tag
86 * Lots of bug fixes, cleaned up code, and performance improvements
88 ver 0.11.5 (2004/11/1)
89 1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch from dottedmag)
90 2) Strip '\r' from m3u playlists (thank you windows)
91 3) Use random() instead of rand() for playlist randomizing
92 4) Fix a bug trying skipping some commented lines in m3u playlist files
93 5) Fix a bug when fetching metadata from streams that may cause certain weirdnesses
94 6) Fix a bug where replaygain preamp was used on files w/o replaygain tags
95 7) Fix a busy loop when trying to prebuffer a nonexistant or missing stream
96 8) Fix a bug in forgetting to remove leading ' ' in content-type for http streams
97 9) Check for ice-name in http headers
98 10) Be sure the strip all '\n' chars in tags
99 11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop errors triggered by arts/libao
101 ver 0.11.4 (2004/7/26)
102 1) Fixed a segfault when decoding mp3's with corrupt id3v2 tags
103 2) Fixed a memory leak when encountering id3v2 tags in mp3 decoder
105 ver 0.11.3 (2004/7/21)
106 1) Add support for http authentication for streams
107 2) Added replaygain pre-amp support
108 3) Better error handling for fread() in inputStream_file
109 4) Fixed a bug so that when a freeAllInterfaces is called, it sets max_interface_connections to 0.  This prevents potential segfaults and other nastiness for forked processes, like the player and update-er (do to interfacePrintWithFD()).
110 5) Allow blockingWrite() to handle errors more gracefully (for example, if the disc is full, and thus the write() fails or can't be completed, we just skip this write() and continue, instead of getting stuck in an infinite loop until the write() becomes successful)
111 6) Updated mpdconf.example from sbh/avuton
112 7) If "user" is specified, then convert ~ in paths to the user's home path specified by "user" config paramter (not the actual current user running mpd).
114 ver 0.11.2 (2004/7/5) 
115 1) Work around in computing total time for mp3's whose first valid mpeg frame is not layer III
116 2) Fix mp3 and mp4 decoders when seeking past the end of the file
117 3) Fix replaygain for flac and vorbis
118 4) Fix memory leaks in flac decoder (from normalperson)
119 5) Fix Several other bugs in playlist.c and directory.c (from normalperson)
121 ver 0.11.1 (2004/6/24)
122 1) Fix a bug that caused "popping" at the beginning of mp3's
123 2) Fix playlistid command
124 3) Fix move commands so they don't mess up the song id's
125 4) Added support for HTTP Proxy
126 5) Detect and skip recursive links in the music directory
127 6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds the parent directories to the DB
129 ver 0.11.0 (2004/6/18)
130 1) Support for playing mp3 and Ogg Vorbis streams
131 2) Non-blocking Update
132 3) Replaygain support for Ogg Vorbis and FLAC (by Eric Moore aka AliasMrJones)
133 4) audio_output_format option that allows for all audio output to be converted to a format compatible with any sound card
134 5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
135 6) Added "Id" and "Pos" metadata for songs in playlist
136 7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid, swapid, deleteid
137 8) UTF-8 validation of all tags
138 9) Update specific files/directories (for fast, incremental updating)
139 10) Added ACK error codes
140 11) Mod file support
141 12) Added command_list_ok_begin
142 13) Play after stop resumes from last position in the playlist
143 14) Play while pause resumes playback
144 15) Better signal handling by mackstann
145 16) Cleanup decoder interface (now called InputPlugins)
146 17) --create-db no long starts the daemon
147 18) --no-daemon outputs to log files
148 19) --stdout sends output to stdout/stderr
149 20) Default port is now 6600
150 21) Lots of other cleanups and Bugfixes
152 ver 0.10.4 (2004/5/26)
153 1) Fix configure problems on OpenBSD with langinfo and iconv
154 2) Fix an infinte loop when writing to an interface and it has expired
155 3) Fix a segfault in decoding flac's
156 4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC correctly
157 5) Fix a segfault in processing faulty mp4 metadata
159 ver 0.10.3 (2004/4/2)
160 1) Fix a segfault when a blanck line is sent from a client
161 2) Fix for loading playlists on platforms where char is unsigned
162 3) When pausing, release audio device after we say pause is successful (this makes pause appear to not lag)
163 4) When returning errors for unknown types by player, be sure to copy the filename
164 5) add --disable-alsa for disabling alsa mixer support
165 6) Use select() for a portable usleep()
166 7) For alsa mixer, default to "Master' element, not first element
168 ver 0.10.2 (2004/3/25)
169 1) Add suport for AAC
170 2) Substitute '\n' with ' ' in tag info
171 3) Remove empty directories from db
172 4) Resume from current position in song when using state file
173 5) Pause now closes the music device, and reopens it on resuming
174 6) Fix unnecessary big endian byte swapping
175 7) If locale is "C" or "POSIX", then use ISO-8859-1 as the fs charset
176 8) Fix a bug where alsa mixer wasn't detecting volume changes
177 9) For alsa and software mixer, show volume to be the same as it was set (even if its not the exact volume)
178 10) Report bitrate for wave files
179 11) Compute song length of CBR mp3's more accurately
181 ver 0.10.1 (2004/3/7)
182 1) Check to see if we need to add "-lm" when linking mpd
183 2) Fix issues with skipping bad frames in an mp3 (this way we get the correct samplerate and such)
184 3) Fix crossfading bug with ogg's
185 4) Updated libmad and libid3tag included w/ source to 0.15.1b
187 ver 0.10.0 (2004/3/3)
188 1) Use UTF-8 for all client communications
189 2) Crossfading support
190 3) Password Authentication (all in plaintext)
191 4) Software mixer
192 5) Buffer Size is configurable
193 6) Reduced Memory consumption (use directory tree for search and find)
194 7) Bitrate support for Flac
195 8) setvol command (deprecates volume command)
196 9) add command takes directories
197 10) Path's in config file now work with ~
198 11) Add samplerate,bits, and channels to status
199 12) Reenable playTime in stats display
200 13) Fix a segfault when doing: add ""
201 14) Fix a segfault with flac vorbis comments simply being "="
202 15) Fix a segfault/bug in queueNextSong with repeat+random
203 16) Fix a bug, where one process may segfault, and cause more processes to spawn w/o killing ones that lost their parent.
204 17) Fix a bug when the OSS device was unable to fetch the current volume,
205 it would close the device (when it maybe previously closed by the exact same code)
206 18) command.c cleanup by mackstann
207 19) directory.c and command.c cleanup by tw-nym
209 ver 0.9.4 (2004/1/21)
210 1) Fix a bug where updated tag info wasn't being detected
211 2) Set the default audio write size to 1024 bytes (should decrease cpu load a bit on some machines).
212 3) Make audio write size configurable via "audio_write_size" config option
213 4) Tweak output buffer size for connections by detecting the kernel output buffer size.
215 ver 0.9.3 (2003/10/31)
216 1) Store total time/length of songs in db and display in *info commands
217 2) Display instantaneous bitrate in status command
218 3) Add Wave Support using libaudiofile (Patch from normalperson)
219 4) Command code cleanup (Patch from tw-nym)
220 5) Optimize listing of playlists (10-100x faster)
221 6) Optimize interface output (write in 4kB chunks instead of on every '\n')
222 7) Fix bug that prevented rm command from working
223 8) Fix bug where deleting current song skips the next song
224 9) Use iconv to convert vorbis comments from UTF-8 to Latin1
226 ver 0.9.2 (2003/10/6)
227 1) Fix FreeBSD Compilation Problems
228 2) Fix bug in move command
229 3) Add mixer_control options to configure which mixer control/device mpd controls
230 4) Randomize on play -1
231 5) Fix a bug in toggling repeat off and at the end of the playlist
233 ver 0.9.1 (2003/9/30)
234 1) Fix a statement in the middle of declarations in listen.c, causes error for
235 gcc 2.7
237 ver 0.9.0 (2003/9/30)
238 1) Random play mode
239 2) Alsa Mixer Support
240 3) Save and Restore "state"
241 4) Default config file locations (.mpdconf and /etc/mpd.conf)
242 5) Make db file locations configurable
243 6) Move songs around in the playlist
244 7) Gapless playback
245 8) Use Xing tags for mp3's
246 9) Remove stop_on_error
247 10) Seeking support
248 11) Playlists can be loaded and deleted from subdirectories
249 12) Complete rewrite of player layer (fork()'s only once, opens and closes
250 audio device as needed).
251 13) Eliminate use and dependence of SIGIO
252 14) IPv6 support
253 15) Solaris compilations fixes
254 16) Support for different log levels
255 17) Timestamps for log entries
256 18) "user" config parameter for setuid (patch from Nagilum)
257 19) Other misc features and bug fixes
259 ver 0.8.7 (2003/9/3)
260 1) Fix a memory leak.  When closing a interface, was called close() on the fd
261 instead of calling fclose() on the fp that was opened with fdopen().
263 ver 0.8.6 (2003/8/25)
264 1) Fix a memory leak when a buffered existed, and a connection was unexpectedly closed, and i wasn't free'ing the buffer apropriatly.
266 ver 0.8.5 (2003/8/17)
267 1) Fix a bug where an extra end of line is returned when attempting to play a
268 non existing file.  This causes parsing errors for clients.
270 ver 0.8.4 (2003/8/13)
271 1) Fix a bug where garbage is returned with errors in "list" command
273 ver 0.8.3 (2003/8/12) 
274 1) Fix a compilation error on older linux systems
275 2) Fix a bug in searching by title
276 3) Add "list" command
277 4) Add config options for specifying libao driver/plugin and options
278 5) Add config option to specify which address to bind to
279 6) Add support for loading and saving absolute pathnames in saved playlists
280 7) Playlist no longer creates duplicate entries for song data (more me
281 efficient)
282 8) Songs deleted from the db are now removed for the playlist as well
284 ver 0.8.2 (2003/7/22)
285 1) Increased the connection que for listen() from 0 to 5
286 2) Cleanup configure makefiles so that mpd uses MPD_LIBS and MPD_CFLAGS
287 rather than LIBS and CFLAGS
288 3) Put a cap on the number of commands per command list
289 4) Put a cap on the maximum number of buffered output lines
290 5) Get rid of TIME_WAIT/EADDRINUSE socket problem
291 6) Use asynchronious IO (i.e. trigger SIGIO instead so we can sleep in
292 select() calls longer)
294 ver 0.8.1 (2003/7/11)
295 1) FreeBSD fixes
296 2) Fix for rare segfault when updating
297 3) Fix bug where client was being hungup on when done playing current song
298 4) Fix bug when playing flac's where it incorrectly reports an error
299 5) Make stop playlist on error configurable
300 6) Configure checks for installed libmad and libid3tag and uses those if found
301 7) Use buffer->finished in *_decode's instead of depending on catching signals
303 ver 0.8.0 (2003/7/6)
304 1) Flac support
305 2) Make playlist max length configurable
306 3) New backward compatible status (backward compatible for 0.8.0 on)
307 4) listall command now can take a directory as an argument
308 5) Buffer rewritten to use shared memory instead of sockets
309 6) Playlist adding done using db
310 7) Add sort to list, and use binary search for finding
311 8) New "stats" command
312 9) Command list (for faster adding of large batches of files)
313 10) Add buffered chunks before play
314 11) Useful error reporting to clients (part of status command)
315 12) Use libid3tag for reading id3 tags (more stable)
316 13) Non-blocking output to clients
317 14) Fix bug when removing items from directory
318 15) Fix bug when playing mono mp3's
319 16) Fix bug when attempting to delete files when using samba
320 17) Lots of other bug fixes I can't remember
322 ver 0.7.0 (2003/6/20)
323 1) use mad instead of mpg123 for mp3 decoding
324 2) volume support
325 3) repeate playlist support
326 4) use autoconf/automake (i.e. "configure")
327 5) configurable max connections
329 ver 0.6.2 (2003/6/11)
330 1) Buffer support for ogg
331 2) new config file options: "connection_timeout" and "mpg123_ignore_junk"
332 3) new commands: "next", "previous", and "listall"
333 Thanks to Niklas Hofer for "next" and "previous" patches!
334 4) Search by filename
335 5) bug fix for pause when playing mp3's
337 ver 0.6.1 (2003/5/29)
338 1) Add conf file support
339 2) Fix a bug when doing mp3stop (do wait3(NULL,WNOHANG|WUNTRACED,NULL))
340 3) Fix a bug when fork'ing, fflush file buffers before forking so the
341 child doesn't print the same stuff in the buffer.
343 ver 0.6.0 (2003/5/25)
344 1) Add ogg vorbis support
345 2) Fix two bugs relating to tables, one for search by title, and one where we
346 freed the tables before directories, causing a segfault
347 3) The info command has been removed.
349 ver 0.5.0-0.5.2
350 Initial release(s).  Support for MP3 via mpg123