1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
|
ver 0.15.2 (2009/??/??)
* tags:
- ape: check the tag size (fixes integer underflow)
- ape: added protection against large memory allocations
* decoders:
- mad: skip ID3 frames when libid3tag is disabled
- flac: parse all replaygain tags
- flac: don't allocate cuesheet twice (memleak)
* update: free empty path string (memleak)
* update: free temporary string in container scan (memleak)
* directory: free empty directories after removing them (memleak)
ver 0.15.1 (2009/07/15)
* decoders:
- flac: fix assertion failure in tag_free() call
* output:
- httpd: include sys/types.h (fixes Mac OS X)
* commands:
- don't resume playback when stopping during pause
* database: fixed NULL pointer dereference after charset change
* log: fix double free() bug during shutdown
ver 0.15 (2009/06/23)
* input:
- parse Icy-Metadata
- added support for the MMS protocol
- hide HTTP password in playlist
- lastfm: new input plugin for last.fm radio (experimental and incomplete!)
- curl: moved proxy settings to "input" block
* tags:
- support the "album artist" tag
- support MusicBrainz tags
- parse RVA2 tags in mp3 files
- parse ID3 tags in AIFF/RIFF/WAV files
- ffmpeg: support new metadata API
- ffmpeg: added support for the tags comment, genre, year
* decoders:
- audiofile: streaming support added
- audiofile: added 24 bit support
- modplug: another MOD plugin, based on libmodplug
- mikmod disabled by default, due to severe security issues in libmikmod
- sidplay: new decoder plugin for C64 SID (using libsidplay2)
- fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
experimental due to shortcomings in libfluidsynth)
- wildmidi: another decoder plugin for MIDI files (using libwildmidi)
- flac: parse stream tags
- mpcdec: support the new libmpcdec SV8 API
- added configuration option to disable decoder plugins
- flac: support embedded cuesheets
- ffmpeg: updated list of supported formats
* audio outputs:
- added option to disable audio outputs by default
- wait 10 seconds before reopening after play failure
- shout: enlarged buffer size to 32 kB
- null: allow disabling synchronization
- mvp: fall back to stereo
- mvp: fall back to 16 bit audio samples
- mvp: check for reopen errors
- mvp: fixed default device detection
- pipe: new audio output plugin which runs a command
- alsa: better period_time default value for high sample rates
- solaris: new audio output plugin for Solaris /dev/audio
- httpd: new audio output plugin for web based streaming, similar to icecast
but built in.
* commands:
- "playlistinfo" and "move" supports a range now
- added "sticker database", command "sticker", which allows clients
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.
* mixers:
- rewritten mixer code to support multiple mixers
- new pulseaudio mixer
- alsa: new mixer_index option supports choosing between multiple
identically-named controls on a device.
* Add audio archive extraction support:
- bzip2
- iso9660
- zip
* the option "error_file" was removed, all messages are logged into
"log_file"
* support logging to syslog
* fall back to XDG music directory if no music_directory is configured
* failure to read the state file is non-fatal
* --create-db starts the MPD daemon instead of exiting
* playlist_directory and music_directory are optional
* playlist: recalculate the queued song after random is toggled
* playlist: don't unpause on delete
* pause when all audio outputs fail to play
* daemon: ignore "user" setting if already running as that user
* listen: fix broken client IP addresses in log
* listen: bind failure on secondary address is non-fatal
* 24/32 bit audio support
* print available protocols in --version
* fill buffer after seeking
* choose the fallback resampler at runtime
* steps taken towards win32 compatibility
* require glib 2.6 or greater
* built-in documentation using doxygen and docbook
ver 0.14.2 (2009/02/13)
* configure.ac:
- define HAVE_FFMPEG after all checks
* decoders:
- ffmpeg: added support for the tags comment, genre, year
- ffmpeg: don't warn of empty packet output
- ffmpeg: check if the time stamp is valid
- ffmpeg: fixed seek integer overflow
- ffmpeg: enable WAV streaming
- ffmpeg: added TTA support
- wavpack: pass NULL if the .wvc file fails to open
- mikmod: call MikMod_Exit() only in the finish() method
- aac: fix stream metadata
* audio outputs:
- jack: allocate ring buffers before connecting
- jack: clear "shutdown" flag on reconnect
- jack: reduced sleep time to 1ms
- shout: fixed memory leak in the mp3 encoder
- shout: switch to blocking mode
- shout: use libshout's synchronization
- shout: don't postpone metadata
- shout: clear buffer before calling the encoder
* mapper: remove trailing slashes from music_directory
* player: set player error when output device fails
* update: recursively purge deleted directories
* update: free deleted subdirectories
ver 0.14.1 (2009/01/17)
* decoders:
- mp4: support the writer/composer tag
- id3: strip leading and trailing whitespace from ID3 tags
- oggvorbis: fix tremor support
- oggvorbis: disable seeking on remote files
* 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
- fix assertion failure on "connection refused"
- fix assertion failure with empty HTTP responses
* corrected the sample calculation in the fallback resampler
* 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
* 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
ver 0.14 (2008/12/25)
* audio outputs:
- wait 10 seconds before reopening a failed device
- fifo: new plugin
- null: new plugin
- shout: block while trying to connect instead of failing
- shout: new timeout parameter
- shout: support mp3 encoding and the shoutcast protocol
- shout: send silence during pause, so clients don't get disconnected
* decoders:
- ffmpeg: new plugin
- wavpack: new plugin
- aac: stream support added
- mod: disabled by default due to critical bugs in all libmikmod versions
* commands:
- "addid" takes optional second argument to specify position
- "idle" notifies the client when a notable change occurs
* Zeroconf support using Bonjour
* New zeroconf_enabled option so that Zeroconf support can be disabled
* 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
* Support for reading ReplayGain from LAME tags on MP3s
* 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
* symbolic links in the music directory can be disabled; the default
is to ignore symlinks pointing outside the music directory
ver 0.13.0 (2007/5/28)
* New JACK audio output
* Support for "file" as an alternative to "filename" in search, find, and list
* FLAC 1.1.3 API support
* 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
* New tagtypes command for retrieving a list of available tag types
* Fix a bug where no ACK was returned if loading a playlist failed
* Fix a bug where db_update in stats would be 0 after initial database creation
* New count command for getting stats on found songs (similar to "find")
* New playlistmove command for moving songs in stored playlists
* New playlistdelete command for deleting songs from stored playlists
* New rename command for renaming stored playlists
* Increased default buffer_before_play from 0% to 10% to prevent skipping
* Lots of bug fixes, cleaned up code, and performance improvements
ver 0.12.2 (2007/3/20)
* Fix a bug where clients could cause MPD to segfault
ver 0.12.1 (2006/10/10)
* 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
ver 0.12.0 (2006/9/22)
* 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
* Can now specify any supported metadata type or "any" in search, find, and list
* 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
ver 0.11.5 (2004/11/1)
1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch
from dottedmag)
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
5) Fix a bug when fetching metadata from streams that may cause certain
weirdnesses
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
8) Fix a bug in forgetting to remove leading ' ' in content-type for http
streams
9) Check for ice-name in http headers
10) Be sure the strip all '\n' chars in tags
11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop
errors triggered by arts/libao
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
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
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)
6) Updated mpdconf.example from sbh/avuton
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).
ver 0.11.2 (2004/7/5)
1) Work around in computing total time for mp3's whose first valid mpeg frame is
not layer III
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)
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
6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds
the parent directories to the DB
ver 0.11.0 (2004/6/18)
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)
4) audio_output_format option that allows for all audio output to be converted
to a format compatible with any sound card
5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
6) Added "Id" and "Pos" metadata for songs in playlist
7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid,
swapid, deleteid
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
20) Default port is now 6600
21) Lots of other cleanups and Bugfixes
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
4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC
correctly
5) Fix a segfault in processing faulty mp4 metadata
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
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
5) add --disable-alsa for disabling alsa mixer support
6) Use select() for a portable usleep()
7) For alsa mixer, default to "Master' element, not first element
ver 0.10.2 (2004/3/25)
1) Add suport for AAC
2) Substitute '\n' with ' ' in tag info
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
8) Fix a bug where alsa mixer wasn't detecting volume changes
9) For alsa and software mixer, show volume to be the same as it was set (even
if its not the exact volume)
10) Report bitrate for wave files
11) Compute song length of CBR mp3's more accurately
ver 0.10.1 (2004/3/7)
1) Check to see if we need to add "-lm" when linking mpd
2) Fix issues with skipping bad frames in an mp3 (this way we get the correct
samplerate and such)
3) Fix crossfading bug with ogg's
4) Updated libmad and libid3tag included w/ source to 0.15.1b
ver 0.10.0 (2004/3/3)
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 ~
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
16) Fix a bug, where one process may segfault, and cause more processes to spawn
w/o killing ones that lost their parent.
17) Fix a bug when the OSS device was unable to fetch the current volume,
it would close the device (when it maybe previously closed by the exact same
code)
18) command.c cleanup by mackstann
19) directory.c and command.c cleanup by tw-nym
ver 0.9.4 (2004/1/21)
1) Fix a bug where updated tag info wasn't being detected
2) Set the default audio write size to 1024 bytes (should decrease cpu load a
bit on some machines).
3) Make audio write size configurable via "audio_write_size" config option
4) Tweak output buffer size for connections by detecting the kernel output
buffer size.
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
3) Add mixer_control options to configure which mixer control/device mpd
controls
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)
1) Fix a memory leak when a buffered existed, and a connection was unexpectedly
closed, and i wasn't free'ing the buffer apropriatly.
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
|