NEWS 27.2 KB
Newer Older
1
ver 0.15.15 (2010/??/??)
2 3
* input:
  - rewind: fix assertion failure
4 5


Avuton Olrich's avatar
Avuton Olrich committed
6
ver 0.15.14 (2010/11/06)
7
* player_thread: fix assertion failure due to wrong music pipe on seek
8
* output_thread: fix assertion failure due to race condition in OPEN
9 10
* input:
  - rewind: fix double free bug
11 12 13
* decoders:
  - mp4ff, ffmpeg: add extension ".m4b" (audio book)

14

Avuton Olrich's avatar
Avuton Olrich committed
15
ver 0.15.13 (2010/10/10)
16
* output_thread: fix race condition after CANCEL command
17 18
* output:
  - httpd: fix random data in stream title
19
  - httpd: MIME type audio/ogg for Ogg Vorbis
20 21
* input:
  - rewind: update MIME not only once
22
  - rewind: enable for MMS
23 24


Max Kellermann's avatar
Max Kellermann committed
25
ver 0.15.12 (2010/07/20)
26 27
* input:
  - curl: remove assertion after curl_multi_fdset()
28 29
* tags:
  - rva2: set "gain", not "peak"
30 31
* decoders:
  - wildmidi: support version 0.2.3
32 33


Avuton Olrich's avatar
Avuton Olrich committed
34
ver 0.15.11 (2010/06/14)
35 36
* tags:
  - ape: support album artist
37
* decoders:
38
  - mp4ff: support tags "album artist", "albumartist", "band"
39
  - mikmod: fix memory leak
40
  - vorbis: handle uri==NULL
41
  - ffmpeg: fix memory leak
42
  - ffmpeg: free AVFormatContext on error
43
  - ffmpeg: read more metadata
44
  - ffmpeg: fix libavformat 0.6 by using av_open_input_stream()
45
* playlist: emit IDLE_OPTIONS when resetting single mode
46
* listen: make get_remote_uid() work on BSD
47 48


Avuton Olrich's avatar
Avuton Olrich committed
49
ver 0.15.10 (2010/05/30)
50 51
* input:
  - mms: fix memory leak in error handler
52
  - mms: initialize the "eof" attribute
53 54
* decoders:
  - mad: properly calculate ID3 size without libid3tag
55 56


Avuton Olrich's avatar
Avuton Olrich committed
57
ver 0.15.9 (2010/03/21)
58 59
* decoders:
  - mad: fix crash when seeking at end of song
60
  - mpcdec: fix negative shift on fixed-point samples
61
  - mpcdec: fix replay gain formula with v8
62
* playlist: fix single+repeat in random mode
63
* player: postpone song tags during cross-fade
64 65


Avuton Olrich's avatar
Avuton Olrich committed
66
ver 0.15.8 (2010/01/17)
67 68
* input:
  - curl: allow rewinding with Icy-Metadata
69 70
* decoders:
  - ffmpeg, flac, vorbis: added more flac/vorbis MIME types
71
  - ffmpeg: enabled libavformat's file name extension detection
72
* dbUtils: return empty tag value only if no value was found
73
* decoder_thread: fix CUE track playback
74
* queue: don't repeat current song in consume mode
75 76


Avuton Olrich's avatar
Avuton Olrich committed
77
ver 0.15.7 (2009/12/27)
78 79
* archive:
  - close archive when stream is closed
80
  - iso, zip: fixed memory leak in destructor
81 82
* input:
  - file: don't fall back to parent directory
83
  - archive: fixed memory leak in error handler
84 85
* tags:
  - id3: fix ID3v1 charset conversion
86
* decoders:
87
  - eliminate jitter after seek failure
88
  - ffmpeg: don't try to force stereo
89
  - wavpack: allow fine-grained seeking
90
* mixer: explicitly close all mixers on shutdown
91
* mapper: fix memory leak when playlist_directory is not set
92
* mapper: apply filesystem_charset to playlists
93
* command: verify playlist name in the "rm" command
94
* database: return multiple tag values per song
95 96


Avuton Olrich's avatar
Avuton Olrich committed
97
ver 0.15.6 (2009/11/18)
98 99
* input:
  - lastfm: fixed variable name in GLib<2.16 code path
100
  - input/mms: require libmms 0.4
101 102
* archive:
  - zzip: require libzzip 0.13
103 104
* tags:
  - id3: allow 4 MB RIFF/AIFF tags
105 106
* decoders:
  - ffmpeg: convert metadata
107
  - ffmpeg: align the output buffer
108
  - oggflac: rewind stream after FLAC detection
109
  - flac: fixed CUE seeking range check
110
  - flac: fixed NULL pointer dereference in CUE code
111
* output_thread: check again if output is open on PAUSE
112
* update: delete ignored symlinks from database
113
* database: increased maximum line length to 32 kB
114
* sticker: added fallback for sqlite3_prepare_v2()
115 116


Avuton Olrich's avatar
Avuton Olrich committed
117
ver 0.15.5 (2009/10/18)
118 119
* input:
  - curl: don't abort if a packet has only metadata
120
  - curl: fixed endless loop during buffering
121 122
* tags:
  - riff, aiff: fixed "limited range" gcc warning
123 124
* decoders:
  - flac: fixed two memory leaks in the CUE tag loader
125
* decoder_thread: change the fallback decoder name to "mad"
126
* output_thread: check again if output is open on CANCEL
127
* update: fixed memory leak during container scan
128 129


Avuton Olrich's avatar
Avuton Olrich committed
130
ver 0.15.4 (2009/10/03)
131 132
* decoders:
  - vorbis: revert "faster tag scanning with ov_test_callback()"
133
  - faad: skip assertion failure on large ID3 tags
134
  - ffmpeg: use the "artist" tag if "author" is not present
135 136
* output:
  - osx: fix the OS X 10.6 build
137 138


Avuton Olrich's avatar
Avuton Olrich committed
139
ver 0.15.3 (2009/08/29)
140 141
* decoders:
  - vorbis: faster tag scanning with ov_test_callback()
142 143
* output:
  - fix stuttering due to uninitialized variable
144
* update: don't re-read unchanged container files
145 146


Avuton Olrich's avatar
Avuton Olrich committed
147
ver 0.15.2 (2009/08/15)
148 149
* tags:
  - ape: check the tag size (fixes integer underflow)
150
  - ape: added protection against large memory allocations
151 152
* decoders:
  - mad: skip ID3 frames when libid3tag is disabled
153
  - flac: parse all replaygain tags
154
  - flac: don't allocate cuesheet twice (memleak)
155 156
* output:
  - shout: fixed stuck pause bug
157
  - shout: minimize the unpause latency
158
* update: free empty path string (memleak)
159
* update: free temporary string in container scan (memleak)
160
* directory: free empty directories after removing them (memleak)
161 162


Avuton Olrich's avatar
Avuton Olrich committed
163
ver 0.15.1 (2009/07/15)
Max Kellermann's avatar
Max Kellermann committed
164
* decoders:
165
  - flac: fix assertion failure in tag_free() call
166 167
* output:
  - httpd: include sys/types.h (fixes Mac OS X)
168 169
* commands:
  - don't resume playback when stopping during pause
170
* database: fixed NULL pointer dereference after charset change
171
* log: fix double free() bug during shutdown
172 173


Avuton Olrich's avatar
Avuton Olrich committed
174
ver 0.15 (2009/06/23)
Max Kellermann's avatar
Max Kellermann committed
175 176
* input:
  - parse Icy-Metadata
177
  - added support for the MMS protocol
178
  - hide HTTP password in playlist
179
  - lastfm: new input plugin for last.fm radio (experimental and incomplete!)
180
  - curl: moved proxy settings to "input" block
Max Kellermann's avatar
Max Kellermann committed
181 182
* tags:
  - support the "album artist" tag
183
  - support MusicBrainz tags
Max Kellermann's avatar
Max Kellermann committed
184
  - parse RVA2 tags in mp3 files
185 186 187
  - parse ID3 tags in AIFF/RIFF/WAV files
  - ffmpeg: support new metadata API
  - ffmpeg: added support for the tags comment, genre, year
Max Kellermann's avatar
Max Kellermann committed
188 189
* decoders:
  - audiofile: streaming support added
190
  - audiofile: added 24 bit support
Max Kellermann's avatar
Max Kellermann committed
191 192
  - modplug: another MOD plugin, based on libmodplug
  - mikmod disabled by default, due to severe security issues in libmikmod
193
  - sidplay: new decoder plugin for C64 SID (using libsidplay2)
194 195
  - fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
    experimental due to shortcomings in libfluidsynth)
196
  - wildmidi: another decoder plugin for MIDI files (using libwildmidi)
Max Kellermann's avatar
Max Kellermann committed
197
  - flac: parse stream tags
198
  - mpcdec: support the new libmpcdec SV8 API
199
  - added configuration option to disable decoder plugins
200 201
  - flac: support embedded cuesheets
  - ffmpeg: updated list of supported formats
Max Kellermann's avatar
Max Kellermann committed
202
* audio outputs:
203
  - added option to disable audio outputs by default
204
  - wait 10 seconds before reopening after play failure
Max Kellermann's avatar
Max Kellermann committed
205
  - shout: enlarged buffer size to 32 kB
206
  - null: allow disabling synchronization
207
  - mvp: fall back to stereo
208
  - mvp: fall back to 16 bit audio samples
209
  - mvp: check for reopen errors
210
  - mvp: fixed default device detection
211
  - pipe: new audio output plugin which runs a command
212
  - alsa: better period_time default value for high sample rates
213
  - solaris: new audio output plugin for Solaris /dev/audio
214 215
  - httpd: new audio output plugin for web based streaming, similar to icecast
     but built in.
Max Kellermann's avatar
Max Kellermann committed
216
* commands:
217
  - "playlistinfo" and "move" supports a range now
Max Kellermann's avatar
Max Kellermann committed
218
  - added "sticker database", command "sticker", which allows clients
219 220 221 222
     to implement features like "song rating"
  - added "consume" command which removes a song after play
  - added "single" command, if activated, stops playback after current song or
     repeats the song if "repeat" is active.
223 224 225
* mixers:
  - rewritten mixer code to support multiple mixers
  - new pulseaudio mixer
226 227
  - alsa: new mixer_index option supports choosing between multiple
    identically-named controls on a device.
228 229 230 231
* Add audio archive extraction support:
  - bzip2
  - iso9660
  - zip
232
* the option "error_file" was removed, all messages are logged into
233
   "log_file"
Max Kellermann's avatar
Max Kellermann committed
234
* support logging to syslog
235
* fall back to XDG music directory if no music_directory is configured
236
* failure to read the state file is non-fatal
237
* --create-db starts the MPD daemon instead of exiting
238
* playlist_directory and music_directory are optional
239
* playlist: recalculate the queued song after random is toggled
240
* playlist: don't unpause on delete
241
* pause when all audio outputs fail to play
242
* daemon: ignore "user" setting if already running as that user
243
* listen: fix broken client IP addresses in log
244
* listen: bind failure on secondary address is non-fatal
245 246
* 24/32 bit audio support
* print available protocols in --version
247
* fill buffer after seeking
248
* choose the fallback resampler at runtime
249 250 251
* steps taken towards win32 compatibility
* require glib 2.6 or greater
* built-in documentation using doxygen and docbook
252 253


Avuton Olrich's avatar
Avuton Olrich committed
254
ver 0.14.2 (2009/02/13)
255 256
* configure.ac:
  - define HAVE_FFMPEG after all checks
257 258
* decoders:
  - ffmpeg: added support for the tags comment, genre, year
259
  - ffmpeg: don't warn of empty packet output
260
  - ffmpeg: check if the time stamp is valid
261
  - ffmpeg: fixed seek integer overflow
262 263
  - ffmpeg: enable WAV streaming
  - ffmpeg: added TTA support
264
  - wavpack: pass NULL if the .wvc file fails to open
265
  - mikmod: call MikMod_Exit() only in the finish() method
266
  - aac: fix stream metadata
267 268
* audio outputs:
  - jack: allocate ring buffers before connecting
269
  - jack: clear "shutdown" flag on reconnect
270
  - jack: reduced sleep time to 1ms
271
  - shout: fixed memory leak in the mp3 encoder
272
  - shout: switch to blocking mode
273
  - shout: use libshout's synchronization
274
  - shout: don't postpone metadata
275
  - shout: clear buffer before calling the encoder
276
* mapper: remove trailing slashes from music_directory
277
* player: set player error when output device fails
278
* update: recursively purge deleted directories
279
* update: free deleted subdirectories
280

Avuton Olrich's avatar
Avuton Olrich committed
281
ver 0.14.1 (2009/01/17)
282 283 284
* decoders:
  - mp4: support the writer/composer tag
  - id3: strip leading and trailing whitespace from ID3 tags
285
  - oggvorbis: fix tremor support
286
  - oggvorbis: disable seeking on remote files
287 288 289 290 291 292 293 294
* audio outputs:
  - jack: allocate default port names (fixes a crash)
* update:
  - refresh stats after update
  - save the database even if it is empty
* input_curl:
  - use select() to eliminate busy loop during connect
  - honour http_proxy_* config directives
295
  - fix assertion failure on "connection refused"
296
  - fix assertion failure with empty HTTP responses
297
* corrected the sample calculation in the fallback resampler
298 299 300 301 302
* log: automatically append newline
* fix setenv() conflict on Solaris
* configure.ac: check for pkg-config before using it
* fix minor memory leak in decoder_tag()
* fix cross-fading bug: it used to play some chunks of the new song twice
303 304 305 306 307 308 309
* playlist
  - fix assertion failure during playlist load
  - implement Fisher-Yates shuffle properly
  - safely search the playlist for deleted song
* use custom PRNG for volume dithering (speedup)
* detect libid3tag without pkg-config

Avuton Olrich's avatar
Avuton Olrich committed
310
ver 0.14 (2008/12/25)
311
* audio outputs:
312
  - wait 10 seconds before reopening a failed device
313 314 315 316
  - fifo: new plugin
  - null: new plugin
  - shout: block while trying to connect instead of failing
  - shout: new timeout parameter
317 318
  - shout: support mp3 encoding and the shoutcast protocol
  - shout: send silence during pause, so clients don't get disconnected
319
* decoders:
320
  - ffmpeg: new plugin
321
  - wavpack: new plugin
322
  - aac: stream support added
323
  - mod: disabled by default due to critical bugs in all libmikmod versions
324 325
* commands:
  - "addid" takes optional second argument to specify position
326
  - "idle" notifies the client when a notable change occurs
327
* Zeroconf support using Bonjour
328
* New zeroconf_enabled option so that Zeroconf support can be disabled
329 330
* Stop the player/decode processes when not playing to allow the CPU to sleep
* Fix a bug where closing an ALSA dmix device could cause MPD to hang
331
* Support for reading ReplayGain from LAME tags on MP3s
332 333 334 335 336 337 338 339
* MPD is now threaded, which greatly improves performance and stability
* memory usage reduced by merging duplicate tags in the database
* support connecting via unix domain socket
* allow authenticated local users to add any local file to the playlist
* 24 bit audio support
* optimized PCM conversions and dithering
* much code has been replaced by using GLib
* the HTTP client has been replaced with libcurl
340 341
* symbolic links in the music directory can be disabled; the default
  is to ignore symlinks pointing outside the music directory
342

343
ver 0.13.0 (2007/5/28)
344 345
* New JACK audio output
* Support for "file" as an alternative to "filename" in search, find, and list
Avuton Olrich's avatar
Avuton Olrich committed
346
* FLAC 1.1.3 API support
347 348 349 350 351 352 353 354 355 356 357 358
* New playlistadd command for adding to stored playlists
* New playlistclear command for clearing stored playlists
* Fix a bug where "find any" and "list <type> any" wouldn't return any results
* Make "list any" return an error instead of no results and an OK
* New gapless_mp3_playback option to disable gapless MP3 playback
* Support for seeking HTTP streams
* Zeroconf support using Avahi
* libsamplerate support for high quality audio resampling
* ID3v2 "Original Artist/Performer" tag support
* New playlistsearch command for searching the playlist (similar to "search")
* New playlistfind command for finding songs in the playlist (similar to "find")
* libmikmod 3.2.0 beta support
359
* New tagtypes command for retrieving a list of available tag types
360
* Fix a bug where no ACK was returned if loading a playlist failed
361
* Fix a bug where db_update in stats would be 0 after initial database creation
362
* New count command for getting stats on found songs (similar to "find")
363 364
* New playlistmove command for moving songs in stored playlists
* New playlistdelete command for deleting songs from stored playlists
365
* New rename command for renaming stored playlists
366
* Increased default buffer_before_play from 0% to 10% to prevent skipping
367 368
* Lots of bug fixes, cleaned up code, and performance improvements

369 370 371
ver 0.12.2 (2007/3/20)
* Fix a bug where clients could cause MPD to segfault

372
ver 0.12.1 (2006/10/10)
373 374 375 376 377 378
* Fix segfault when scanning an MP3 that has a Xing tag with 0 frames
* Fix segfault when there's no audio output specified and one can't be detected
* Fix handling of escaping in quotes
* Allow a quality of -1 to be specified for shout outputs
* A few minor cleanups

379
ver 0.12.0 (2006/9/22)
380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402
* New audio output code which supports:
  * A plugin-like architecture
  * Non-libao ("native") outputs:
    * ALSA
    * OSS
    * OS X
    * Media MVP
    * PulseAudio
    * Shout (Icecast or Shoutcast)
  * Playing through multiple outputs at once
  * Enabling/disabling outputs while MPD is running
  * Saving output state (enabled/disabled) to the state_file
* OggFLAC support
* Musepack support
* Gapless MP3 playback
* MP3 ReplayGain support (using ID3v2 tags only)
* Support for MP2 files if MP3 support is enabled
* Composer, Performer, Comment, and Disc metadata support
* New outputs command for listing available audio outputs
* New enableoutput and disableoutput commands for enabling/disabling outputs
* New plchangesposid command for a stripped down version of plchanges
* New addid command for adding to the playlist and returning a song ID
* New commands and notcommands commands for checking available commands
403
* Can now specify any supported metadata type or "any" in search, find, and list
404 405 406 407 408 409 410 411 412 413 414 415 416
* New volume_normalization parameter for enabling Audio Compress normalization
* New metadata_to_use parameter for choosing supported metadata types
* New pid_file parameter for saving the MPD process ID to the specified file
* The db_file parameter is now required
* The port parameter is now optional (defaults to 6600)
* Can specify bind_to_address multiple times
* New --kill argument for killing MPD if pid_file is specified
* Removed --update-db argument (use the update function in your client instead)
* New mpdconf.example
* New mpd.conf man page 
* Removed bundled libmad and libid3tag
* Lots of bug fixes, cleaned up code, and performance improvements

417
ver 0.11.5 (2004/11/1)
418 419
1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch
from dottedmag)
420 421 422
2) Strip '\r' from m3u playlists (thank you windows)
3) Use random() instead of rand() for playlist randomizing
4) Fix a bug trying skipping some commented lines in m3u playlist files
423 424
5) Fix a bug when fetching metadata from streams that may cause certain
weirdnesses
425 426
6) Fix a bug where replaygain preamp was used on files w/o replaygain tags
7) Fix a busy loop when trying to prebuffer a nonexistant or missing stream
427 428
8) Fix a bug in forgetting to remove leading ' ' in content-type for http
streams
429 430
9) Check for ice-name in http headers
10) Be sure the strip all '\n' chars in tags
431 432
11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop
errors triggered by arts/libao
433

434 435 436 437
ver 0.11.4 (2004/7/26)
1) Fixed a segfault when decoding mp3's with corrupt id3v2 tags
2) Fixed a memory leak when encountering id3v2 tags in mp3 decoder

Warren Dukes's avatar
Warren Dukes committed
438 439 440 441
ver 0.11.3 (2004/7/21)
1) Add support for http authentication for streams
2) Added replaygain pre-amp support
3) Better error handling for fread() in inputStream_file
442 443 444 445 446 447 448 449
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()).
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)
Warren Dukes's avatar
Warren Dukes committed
450
6) Updated mpdconf.example from sbh/avuton
451 452
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).
Warren Dukes's avatar
Warren Dukes committed
453

454
ver 0.11.2 (2004/7/5) 
455 456
1) Work around in computing total time for mp3's whose first valid mpeg frame is
not layer III
457 458 459 460 461
2) Fix mp3 and mp4 decoders when seeking past the end of the file
3) Fix replaygain for flac and vorbis
4) Fix memory leaks in flac decoder (from normalperson)
5) Fix Several other bugs in playlist.c and directory.c (from normalperson)

462 463 464 465 466 467
ver 0.11.1 (2004/6/24)
1) Fix a bug that caused "popping" at the beginning of mp3's
2) Fix playlistid command
3) Fix move commands so they don't mess up the song id's
4) Added support for HTTP Proxy
5) Detect and skip recursive links in the music directory
468 469
6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds
the parent directories to the DB
470

471
ver 0.11.0 (2004/6/18)
472 473 474
1) Support for playing mp3 and Ogg Vorbis streams
2) Non-blocking Update
3) Replaygain support for Ogg Vorbis and FLAC (by Eric Moore aka AliasMrJones)
475 476
4) audio_output_format option that allows for all audio output to be converted
to a format compatible with any sound card
477 478
5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
6) Added "Id" and "Pos" metadata for songs in playlist
479 480
7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid,
swapid, deleteid
481 482 483 484 485 486 487 488 489 490 491 492
8) UTF-8 validation of all tags
9) Update specific files/directories (for fast, incremental updating)
10) Added ACK error codes
11) Mod file support
12) Added command_list_ok_begin
13) Play after stop resumes from last position in the playlist
14) Play while pause resumes playback
15) Better signal handling by mackstann
16) Cleanup decoder interface (now called InputPlugins)
17) --create-db no long starts the daemon
18) --no-daemon outputs to log files
19) --stdout sends output to stdout/stderr
493 494
20) Default port is now 6600
21) Lots of other cleanups and Bugfixes
495

496 497 498 499
ver 0.10.4 (2004/5/26)
1) Fix configure problems on OpenBSD with langinfo and iconv
2) Fix an infinte loop when writing to an interface and it has expired
3) Fix a segfault in decoding flac's
500 501
4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC
correctly
502 503
5) Fix a segfault in processing faulty mp4 metadata

504 505 506
ver 0.10.3 (2004/4/2)
1) Fix a segfault when a blanck line is sent from a client
2) Fix for loading playlists on platforms where char is unsigned
507 508 509 510
3) When pausing, release audio device after we say pause is successful (this
makes pause appear to not lag)
4) When returning errors for unknown types by player, be sure to copy the
filename
511
5) add --disable-alsa for disabling alsa mixer support
Warren Dukes's avatar
Warren Dukes committed
512
6) Use select() for a portable usleep()
513
7) For alsa mixer, default to "Master' element, not first element
514

Warren Dukes's avatar
Warren Dukes committed
515 516
ver 0.10.2 (2004/3/25)
1) Add suport for AAC
517
2) Substitute '\n' with ' ' in tag info
Warren Dukes's avatar
Warren Dukes committed
518 519 520 521 522
3) Remove empty directories from db
4) Resume from current position in song when using state file
5) Pause now closes the music device, and reopens it on resuming
6) Fix unnecessary big endian byte swapping
7) If locale is "C" or "POSIX", then use ISO-8859-1 as the fs charset
523
8) Fix a bug where alsa mixer wasn't detecting volume changes
524 525
9) For alsa and software mixer, show volume to be the same as it was set (even
if its not the exact volume)
526
10) Report bitrate for wave files
527
11) Compute song length of CBR mp3's more accurately
Warren Dukes's avatar
Warren Dukes committed
528

529
ver 0.10.1 (2004/3/7)
530
1) Check to see if we need to add "-lm" when linking mpd
531 532
2) Fix issues with skipping bad frames in an mp3 (this way we get the correct
samplerate and such)
533
3) Fix crossfading bug with ogg's
534
4) Updated libmad and libid3tag included w/ source to 0.15.1b
535

536
ver 0.10.0 (2004/3/3)
537 538 539 540 541 542 543 544 545 546
1) Use UTF-8 for all client communications
2) Crossfading support
3) Password Authentication (all in plaintext)
4) Software mixer
5) Buffer Size is configurable
6) Reduced Memory consumption (use directory tree for search and find)
7) Bitrate support for Flac
8) setvol command (deprecates volume command)
9) add command takes directories
10) Path's in config file now work with ~
Warren Dukes's avatar
Warren Dukes committed
547 548 549 550 551
11) Add samplerate,bits, and channels to status
12) Reenable playTime in stats display
13) Fix a segfault when doing: add ""
14) Fix a segfault with flac vorbis comments simply being "="
15) Fix a segfault/bug in queueNextSong with repeat+random
552 553
16) Fix a bug, where one process may segfault, and cause more processes to spawn
w/o killing ones that lost their parent.
554
17) Fix a bug when the OSS device was unable to fetch the current volume,
555 556
it would close the device (when it maybe previously closed by the exact same
code)
557 558
18) command.c cleanup by mackstann
19) directory.c and command.c cleanup by tw-nym
559

Warren Dukes's avatar
Warren Dukes committed
560 561
ver 0.9.4 (2004/1/21)
1) Fix a bug where updated tag info wasn't being detected
562 563
2) Set the default audio write size to 1024 bytes (should decrease cpu load a
bit on some machines).
Warren Dukes's avatar
Warren Dukes committed
564
3) Make audio write size configurable via "audio_write_size" config option
565 566
4) Tweak output buffer size for connections by detecting the kernel output
buffer size.
Warren Dukes's avatar
Warren Dukes committed
567 568 569 570 571 572 573 574 575 576 577 578 579 580 581

ver 0.9.3 (2003/10/31)
1) Store total time/length of songs in db and display in *info commands
2) Display instantaneous bitrate in status command
3) Add Wave Support using libaudiofile (Patch from normalperson)
4) Command code cleanup (Patch from tw-nym)
5) Optimize listing of playlists (10-100x faster)
6) Optimize interface output (write in 4kB chunks instead of on every '\n')
7) Fix bug that prevented rm command from working
8) Fix bug where deleting current song skips the next song
9) Use iconv to convert vorbis comments from UTF-8 to Latin1

ver 0.9.2 (2003/10/6)
1) Fix FreeBSD Compilation Problems
2) Fix bug in move command
582 583
3) Add mixer_control options to configure which mixer control/device mpd
controls
Warren Dukes's avatar
Warren Dukes committed
584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617
4) Randomize on play -1
5) Fix a bug in toggling repeat off and at the end of the playlist

ver 0.9.1 (2003/9/30)
1) Fix a statement in the middle of declarations in listen.c, causes error for
gcc 2.7

ver 0.9.0 (2003/9/30)
1) Random play mode
2) Alsa Mixer Support
3) Save and Restore "state"
4) Default config file locations (.mpdconf and /etc/mpd.conf)
5) Make db file locations configurable
6) Move songs around in the playlist
7) Gapless playback
8) Use Xing tags for mp3's
9) Remove stop_on_error
10) Seeking support
11) Playlists can be loaded and deleted from subdirectories
12) Complete rewrite of player layer (fork()'s only once, opens and closes
audio device as needed).
13) Eliminate use and dependence of SIGIO
14) IPv6 support
15) Solaris compilations fixes
16) Support for different log levels
17) Timestamps for log entries
18) "user" config parameter for setuid (patch from Nagilum)
19) Other misc features and bug fixes

ver 0.8.7 (2003/9/3)
1) Fix a memory leak.  When closing a interface, was called close() on the fd
instead of calling fclose() on the fp that was opened with fdopen().

ver 0.8.6 (2003/8/25)
618 619
1) Fix a memory leak when a buffered existed, and a connection was unexpectedly
closed, and i wasn't free'ing the buffer apropriatly.
Warren Dukes's avatar
Warren Dukes committed
620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705

ver 0.8.5 (2003/8/17)
1) Fix a bug where an extra end of line is returned when attempting to play a
non existing file.  This causes parsing errors for clients.

ver 0.8.4 (2003/8/13)
1) Fix a bug where garbage is returned with errors in "list" command

ver 0.8.3 (2003/8/12) 
1) Fix a compilation error on older linux systems
2) Fix a bug in searching by title
3) Add "list" command
4) Add config options for specifying libao driver/plugin and options
5) Add config option to specify which address to bind to
6) Add support for loading and saving absolute pathnames in saved playlists
7) Playlist no longer creates duplicate entries for song data (more me
efficient)
8) Songs deleted from the db are now removed for the playlist as well

ver 0.8.2 (2003/7/22)
1) Increased the connection que for listen() from 0 to 5
2) Cleanup configure makefiles so that mpd uses MPD_LIBS and MPD_CFLAGS
rather than LIBS and CFLAGS
3) Put a cap on the number of commands per command list
4) Put a cap on the maximum number of buffered output lines
5) Get rid of TIME_WAIT/EADDRINUSE socket problem
6) Use asynchronious IO (i.e. trigger SIGIO instead so we can sleep in
select() calls longer)

ver 0.8.1 (2003/7/11)
1) FreeBSD fixes
2) Fix for rare segfault when updating
3) Fix bug where client was being hungup on when done playing current song
4) Fix bug when playing flac's where it incorrectly reports an error
5) Make stop playlist on error configurable
6) Configure checks for installed libmad and libid3tag and uses those if found
7) Use buffer->finished in *_decode's instead of depending on catching signals

ver 0.8.0 (2003/7/6)
1) Flac support
2) Make playlist max length configurable
3) New backward compatible status (backward compatible for 0.8.0 on)
4) listall command now can take a directory as an argument
5) Buffer rewritten to use shared memory instead of sockets
6) Playlist adding done using db
7) Add sort to list, and use binary search for finding
8) New "stats" command
9) Command list (for faster adding of large batches of files)
10) Add buffered chunks before play
11) Useful error reporting to clients (part of status command)
12) Use libid3tag for reading id3 tags (more stable)
13) Non-blocking output to clients
14) Fix bug when removing items from directory
15) Fix bug when playing mono mp3's
16) Fix bug when attempting to delete files when using samba
17) Lots of other bug fixes I can't remember

ver 0.7.0 (2003/6/20)
1) use mad instead of mpg123 for mp3 decoding
2) volume support
3) repeate playlist support
4) use autoconf/automake (i.e. "configure")
5) configurable max connections

ver 0.6.2 (2003/6/11)
1) Buffer support for ogg
2) new config file options: "connection_timeout" and "mpg123_ignore_junk"
3) new commands: "next", "previous", and "listall"
Thanks to Niklas Hofer for "next" and "previous" patches!
4) Search by filename
5) bug fix for pause when playing mp3's

ver 0.6.1 (2003/5/29)
1) Add conf file support
2) Fix a bug when doing mp3stop (do wait3(NULL,WNOHANG|WUNTRACED,NULL))
3) Fix a bug when fork'ing, fflush file buffers before forking so the
child doesn't print the same stuff in the buffer.

ver 0.6.0 (2003/5/25)
1) Add ogg vorbis support
2) Fix two bugs relating to tables, one for search by title, and one where we
freed the tables before directories, causing a segfault
3) The info command has been removed.

ver 0.5.0-0.5.2
Initial release(s).  Support for MP3 via mpg123