NEWS 49.8 KB
Newer Older
1
ver 0.20 (not yet released)
2 3
* output
  - pulse: set channel map to WAVE-EX
4

5
ver 0.19.2 (not yet released)
6 7
* decoder
  - ffmpeg: recognize MIME type audio/aacp
8 9
* output
  - fix memory leak after filter initialization error
10
* fix assertion failure on unsupported PCM conversion
11
* auto-disable plugins that require GLib when --disable-glib is used
12

Max Kellermann's avatar
Max Kellermann committed
13
ver 0.19.1 (2014/10/19)
14 15
* input
  - mms: fix deadlock bug
16 17
* playlist
  - extm3u: fix Extended M3U detection
18
  - m3u, extm3u, cue: fix truncated lines
Max Kellermann's avatar
Max Kellermann committed
19
* fix build failure on Mac OS X
20
* add missing file systemd/mpd.socket to tarball
21

Max Kellermann's avatar
Max Kellermann committed
22
ver 0.19 (2014/10/10)
23
* protocol
24 25
  - new commands "addtagid", "cleartagid", "listfiles", "listmounts",
    "listneighbors", "mount", "rangeid", "unmount"
26
  - "lsinfo" and "readcomments" allowed for remote files
27
  - "listneighbors" lists file servers on the local network
28
  - "playlistadd" supports file:///
29
  - "idle" with unrecognized event name fails
30
  - "list" on album artist falls back to the artist tag
31
  - "list" and "count" allow grouping
32
  - new "search"/"find" filter "modified-since"
33
  - "seek*" allows fractional position
34
  - close connection after syntax error
35
* database
36
  - proxy: forward "idle" events
37
  - proxy: forward the "update" command
38
  - proxy: copy "Last-Modified" from remote directories
39
  - simple: compress the database file using gzip
40
  - upnp: new plugin
41
  - cancel the update on shutdown
42 43
* storage
  - music_directory can point to a remote file server
44
  - nfs: new plugin
45
  - smbclient: new plugin
46
* playlist
47
  - cue: fix bogus duration of the last track
48
  - cue: restore CUE tracks from state file
49
  - soundcloud: use https instead of http
50
  - soundcloud: add default API key
51 52
* archive
  - read tags from songs in an archive
53 54
* input
  - alsa: new input plugin
55
  - curl: options "verify_peer" and "verify_host"
56
  - ffmpeg: update offset after seeking
57
  - ffmpeg: improved error messages
58
  - mms: non-blocking I/O
59
  - nfs: new input plugin
60
  - smbclient: new input plugin
61 62
* filter
  - volume: improved software volume dithering
63 64
* decoder:
  - vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song
65
  - audiofile: support scanning remote files
66
  - audiofile: log libaudiofile errors
67
  - dsdiff, dsf: report bit rate
68
  - dsdiff, dsf: implement seeking
69
  - dsf: support DSD512
70
  - dsf: support multi-channel files
71
  - dsf: fix big-endian bugs
72
  - dsf: fix noise at end of malformed file
73
  - mpg123: support ID3v2, ReplayGain and MixRamp
74
  - sndfile: support scanning remote files
75
  - sndfile: support tags "comment", "album", "track", "genre"
76 77
  - sndfile: native floating point playback
  - sndfile: optimized 16 bit playback
78
  - mp4v2: support playback of MP4 files.
Andrée Ekroth's avatar
Andrée Ekroth committed
79 80
* encoder:
  - shine: new encoder plugin
81 82
* output
  - alsa: support native DSD playback
83
  - alsa: rename "DSD over USB" to "DoP"
84
  - osx: fix hang after (un)plugging headphones
85 86 87
* threads:
  - the update thread runs at "idle" priority
  - the output thread runs at "real-time" priority
88
  - increase kernel timer slack on Linux
89
  - name each thread (for debugging)
90 91
* configuration
  - allow playlist directory without music directory
92
  - use XDG to auto-detect "music_directory" and "db_file"
93
* add tags "AlbumSort", "MUSICBRAINZ_RELEASETRACKID"
94
* disable global Latin-1 fallback for tag values
95
* new resampler option using libsoxr
96
* ARM NEON optimizations
97
* install systemd unit for socket activation
Max Kellermann's avatar
Max Kellermann committed
98
* Android port
Max Kellermann's avatar
Max Kellermann committed
99

Max Kellermann's avatar
Max Kellermann committed
100
ver 0.18.16 (2014/09/26)
101
* fix DSD breakage due to typo in configure.ac
102

Max Kellermann's avatar
Max Kellermann committed
103
ver 0.18.15 (2014/09/26)
104 105
* command
  - list: reset used size after the list has been processed
106
* fix MixRamp
107
* work around build failure on NetBSD
108

Max Kellermann's avatar
Max Kellermann committed
109
ver 0.18.14 (2014/09/11)
110 111
* protocol
  - fix range parser bug on certain 32 bit architectures
112 113
* decoder
  - audiofile: fix crash after seeking
114
  - ffmpeg: fix crash with ffmpeg/libav version 11
115
  - fix assertion failure after seeking
116

Max Kellermann's avatar
Max Kellermann committed
117
ver 0.18.13 (2014/08/31)
118 119
* protocol
  - don't change song on "seekcur" in random mode
Max Kellermann's avatar
Max Kellermann committed
120

121
* decoder
122
  - dsdiff, dsf: fix endless loop on malformed file
123
  - ffmpeg: support ffmpeg/libav version 11
124
  - gme: fix song duration
125 126
* output
  - alsa: fix endless loop at end of file in dsd_usb mode
127
* fix state file saver
128
* fix build failure on Darwin
129

Max Kellermann's avatar
Max Kellermann committed
130
ver 0.18.12 (2014/07/30)
131 132
* database
  - proxy: fix build failure with libmpdclient 2.2
133
  - proxy: fix add/search and other commands with libmpdclient < 2.9
134 135
* decoder
  - audiofile: improve responsiveness
136
  - audiofile: fix WAV stream playback
137
  - dsdiff, dsf: fix stream playback
138
  - dsdiff: fix metadata parser bug (uninitialized variables)
139
  - faad: estimate song duration for remote files
140
  - sndfile: improve responsiveness
141
* randomize next song when enabling "random" mode while not playing
142
* randomize next song when adding to single-song queue
143

Max Kellermann's avatar
Max Kellermann committed
144
ver 0.18.11 (2014/05/12)
145 146
* decoder
  - opus: fix missing song length on high-latency files
147
* fix race condition when using GLib event loop (non-Linux)
148

Max Kellermann's avatar
Max Kellermann committed
149
ver 0.18.10 (2014/04/10)
150
* decoder
151
  - ffmpeg: fix seeking bug
152
  - ffmpeg: handle unknown stream start time
153
  - gme: fix memory leak
154
  - sndfile: work around libsndfile bug on partial read
155
* don't interrupt playback when current song gets deleted
156

Max Kellermann's avatar
Max Kellermann committed
157
ver 0.18.9 (2014/03/02)
158 159
* protocol
  - "findadd" requires the "add" permission
160 161
* output
  - alsa: improved workaround for noise after manual song change
162 163
* decoder
  - vorbis: fix linker failure when libvorbis/libogg are static
164 165
* encoder
  - vorbis: fix another linker failure
166 167
* output
  - pipe: fix hanging child process due to blocked signals
168
* fix build failure due to missing signal.h include
169

Max Kellermann's avatar
Max Kellermann committed
170
ver 0.18.8 (2014/02/07)
171 172
* decoder
  - ffmpeg: support libav v10_alpha1
173 174
* encoder
  - vorbis: fix linker failure
175 176
* output
  - roar: documentation
177
* more robust Icy-Metadata parser
178
* fix Solaris build failure
179

180
ver 0.18.7 (2014/01/13)
181
* playlist
182
  - pls: fix crash after parser error
183
  - soundcloud: fix build failure with libyajl 2.0.1
184 185
* decoder
  - faad: fix memory leak
186
  - mpcdec: reject libmpcdec SV7 in configure script
187 188
* daemon: don't initialize supplementary groups when already running
  as the configured user
189

Max Kellermann's avatar
Max Kellermann committed
190
ver 0.18.6 (2013/12/24)
191 192
* input
  - cdio_paranoia: support libcdio-paranoia 0.90
193 194
* tags
  - riff: recognize upper-case "ID3" chunk name
195 196
* decoder
  - ffmpeg: use relative timestamps
Max Kellermann's avatar
Max Kellermann committed
197 198
* output
  - openal: fix build failure on Mac OS X
199
  - osx: fix build failure
200 201
* mixer
  - alsa: fix build failure with uClibc
202
* fix replay gain during cross-fade
203
* accept files without metadata
204

Max Kellermann's avatar
Max Kellermann committed
205
ver 0.18.5 (2013/11/23)
206 207
* configuration
  - fix crash when db_file is configured without music_directory
208
  - fix crash on "stats" without db_file/music_directory
209 210
* database
  - proxy: auto-reload statistics
211
  - proxy: provide "db_update" in "stats" response
212 213
* input
  - curl: work around stream resume bug (fixed in libcurl 7.32.0)
214 215
* decoder
  - fluidsynth: auto-detect by default
216
* clip 24 bit data from libsamplerate
217
* fix ia64, mipsel and other little-endian architectures
218 219 220
* fix build failures due to missing includes
* fix build failure with static libmpdclient

Max Kellermann's avatar
Max Kellermann committed
221
ver 0.18.4 (2013/11/13)
222 223
* decoder
  - dsdiff: fix byte order bug
224
* fix build failures due to missing includes
225
* libc++ compatibility
226

Max Kellermann's avatar
Max Kellermann committed
227
ver 0.18.3 (2013/11/08)
228
* fix stuck MPD after song change (0.18.2 regression)
229

Max Kellermann's avatar
Max Kellermann committed
230
ver 0.18.2 (2013/11/07)
231 232
* protocol:
  - "close" flushes the output buffer
233
* input:
234
  - cdio_paranoia: add setting "default_byte_order"
235
  - curl: fix bug with redirected streams
236 237
* playlist:
  - pls: fix reversed song order
238
* decoder:
239
  - audiofile: require libaudiofile 0.3 due to API breakage
240
  - dsf: enable DSD128
241
* enable buffering when starting playback (regression fix)
Max Kellermann's avatar
Max Kellermann committed
242
* fix build failures due to missing includes
243
* fix big-endian support
244

Max Kellermann's avatar
Max Kellermann committed
245
ver 0.18.1 (2013/11/04)
246 247
* protocol:
  - always ignore whitespace at the end of the line
248 249
* networking:
  - log UNIX domain path names instead of "localhost"
250
  - open listener sockets in the order they were configured
251
  - don't abort if IPv6 is not available
252 253
* output:
  - alsa: avoid endless loop in Raspberry Pi workaround
254 255
* filter:
  - autoconvert: fix "volume_normalization" with mp3 files
256
* add missing files to source tarball
257

Max Kellermann's avatar
Max Kellermann committed
258
ver 0.18 (2013/10/31)
259 260
* configuration:
  - allow tilde paths for socket
261
  - default filesystem charset is UTF-8 instead of ISO-8859-1
262
  - increase default buffer size to 4 MB
263
* protocol:
264
  - new command "readcomments" lists arbitrary file tags
265
  - new command "toggleoutput"
266
  - "find"/"search" with "any" does not match file name
267
  - "search" and "find" with base URI (keyword "base")
268
  - search for album artist falls back to the artist tag
269
  - re-add the "volume" command
270
* input:
Ales Guzik's avatar
Ales Guzik committed
271
  - curl: enable https
272
  - soup: plugin removed
273 274
* playlist:
  - lastfm: remove defunct Last.fm support
275
* decoder:
276
  - adplug: new decoder plugin using libadplug
277
  - dsf: don't play junk at the end of the "data" chunk
278
  - ffmpeg: drop support for pre-0.8 ffmpeg
279
  - flac: require libFLAC 1.2 or newer
280
  - flac: support FLAC files inside archives
281
  - opus: new decoder plugin for the Opus codec
282
  - vorbis: skip 16 bit quantisation, provide float samples
283
  - mikmod: add "loop" configuration parameter
284
  - modplug: add "loop_count" configuration parameter
285
  - mp4ff: obsolete plugin removed
286 287
* encoder:
  - opus: new encoder plugin for the Opus codec
288
  - vorbis: accept floating point input samples
289 290
* output:
  - new option "tags" may be used to disable sending tags to output
291
  - alsa: workaround for noise after manual song change
292
  - ffado: remove broken plugin
293
  - httpd: support HEAD requests
294
  - mvp: remove obsolete plugin
295
  - osx: disabled by default because it's unmaintained and unsupported
296
* improved decoder/output error reporting
297
* eliminate timer wakeup on idle MPD
298
* fix unresponsive MPD while waiting for stream
Max Kellermann's avatar
Max Kellermann committed
299
* port of the source code to C++11
Max Kellermann's avatar
Max Kellermann committed
300

Max Kellermann's avatar
Max Kellermann committed
301
ver 0.17.6 (2013/10/14)
302 303
* mixer:
  - alsa: fix busy loop when USB sound device gets unplugged
304 305
* decoder:
  - modplug: fix build with Debian package 1:0.8.8.4-4
Max Kellermann's avatar
Max Kellermann committed
306 307
* stored playlists:
  - fix loading playlists with references to local files
308
  - obey filesystem_charset for URLs
Max Kellermann's avatar
Max Kellermann committed
309

Max Kellermann's avatar
Max Kellermann committed
310
ver 0.17.5 (2013/08/04)
311 312
* protocol:
  - fix "playlistadd" with URI
313
  - fix "move" relative to current when there is no current song
314
* decoder:
315
  - ffmpeg: support "application/flv"
316
  - mikmod: adapt to libmikmod 3.2
317 318
* configure.ac:
  - detect system "ar"
Max Kellermann's avatar
Max Kellermann committed
319

Max Kellermann's avatar
Max Kellermann committed
320
ver 0.17.4 (2013/04/08)
321 322
* protocol:
  - allow to omit END in ranges (START:END)
323
  - don't emit IDLE_PLAYER before audio format is known
324 325
* decoder:
  - ffmpeg: support float planar audio (ffmpeg 1.1)
326
  - ffmpeg: fix AVFrame allocation
327 328
* player:
  - implement missing "idle" events on output errors
329
* clock: fix build failure
330

Avuton Olrich's avatar
Avuton Olrich committed
331
ver 0.17.3 (2013/01/06)
332
* output:
333
  - osx: fix pops during playback
334
  - recorder: fix I/O error check
335
  - shout: fix memory leak in error handler
336
  - recorder, shout: support Ogg packets that span more than one page
337 338
* decoder:
  - ffmpeg: ignore negative time stamps
339
  - ffmpeg: support planar audio
340 341
* playlist:
  - cue: fix memory leak
342
  - cue: fix CUE files with only one track
343

Avuton Olrich's avatar
Avuton Olrich committed
344
ver 0.17.2 (2012/09/30)
345 346
* protocol:
  - fix crash in local file check
347 348
* decoder:
  - fluidsynth: remove throttle (requires libfluidsynth 1.1)
349
  - fluidsynth: stop playback at end of file
350
  - fluidsynth: check MIDI file format while scanning
351
  - fluidsynth: add sample rate setting
352
  - wavpack: support all APEv2 tags
353 354
* output:
  - httpd: use monotonic clock, avoid hiccups after system clock adjustment
355
  - httpd: fix throttling bug after resuming playback
356 357
* playlist:
  - cue: map "PERFORMER" to "artist" or "album artist"
358
* mapper: fix non-UTF8 music directory name
359
* mapper: fix potential crash in file permission check
360
* playlist: fix use-after-free bug
361
* playlist: fix memory leak
362
* state_file: save song priorities
363
* player: disable cross-fading in "single" mode
364
* update: fix unsafe readlink() usage
365 366
* configure.ac:
  - don't auto-detect the vorbis encoder when Tremor is enabled
367

Avuton Olrich's avatar
Avuton Olrich committed
368
ver 0.17.1 (2012/07/31)
369 370
* protocol:
  - require appropriate permissions for searchadd{,pl}
371 372
* tags:
  - aiff: support the AIFC format
373
  - ape: check for ID3 if no usable APE tag was found
374 375
* playlist:
  - cue: support file types "MP3", "AIFF"
376 377
* output:
  - fix noisy playback with conversion and software volume
378

Max Kellermann's avatar
Max Kellermann committed
379
ver 0.17 (2012/06/27)
380 381
* protocol:
  - support client-to-client communication
382
  - "update" and "rescan" need only "CONTROL" permission
383
  - new command "seekcur" for simpler seeking within current song
384
  - new command "config" dumps location of music directory
385
  - add range parameter to command "load"
386
  - print extra "playlist" object for embedded CUE sheets
387
  - new commands "searchadd", "searchaddpl"
388 389
* input:
  - cdio_paranoia: new input plugin to play audio CDs
390
  - curl: enable CURLOPT_NETRC
391
  - curl: non-blocking I/O
392
  - soup: new input plugin based on libsoup
393 394
* tags:
  - RVA2: support separate album/track replay gain
395 396
* decoder:
  - mpg123: implement seeking
397
  - ffmpeg: drop support for pre-0.5 ffmpeg
Max Kellermann's avatar
Max Kellermann committed
398
  - ffmpeg: support WebM
399
  - oggflac: delete this obsolete plugin
400
  - dsdiff: new decoder plugin
401
* output:
402
  - alsa: support DSD-over-USB (dCS suggested standard)
403
  - httpd: support for streaming to a DLNA client
404
  - openal: improve buffer cancellation
405
  - osx: allow user to specify other audio devices
406
  - osx: implement 32 bit playback
407
  - shout: add possibility to set url
408
  - roar: new output plugin for RoarAudio
409
  - winmm: fail if wrong device specified instead of using default device
410 411
* mixer:
  - alsa: listen for external volume changes
412 413
* playlist:
  - allow references to songs outside the music directory
414
  - new CUE parser, without libcue
415
  - soundcloud: new plugin for accessing soundcloud.com
416
* state_file: add option "restore_paused"
417
* cue: show CUE track numbers
418
* allow port specification in "bind_to_address" settings
419
* support floating point samples
420
* systemd socket activation
421
* improve --version output
422
* WIN32: fix renaming of stored playlists with non-ASCII names
423 424


Avuton Olrich's avatar
Avuton Olrich committed
425
ver 0.16.8 (2012/04/04)
426
* fix for libsamplerate assertion failure
427 428
* decoder:
  - vorbis (and others): fix seeking at startup
429
  - ffmpeg: read the "year" tag
430 431
* encoder:
  - vorbis: generate end-of-stream packet before tag
432
  - vorbis: generate end-of-stream packet when playback ends
433
* output:
434
  - jack: check for connection failure before starting playback
435
  - jack: workaround for libjack1 crash bug
436
  - osx: fix stuttering due to buffering bug
437
* fix endless loop in text file reader
438
* update: skip symlinks in path that is to be updated
439 440


Avuton Olrich's avatar
Avuton Olrich committed
441
ver 0.16.7 (2012/02/04)
442 443
* input:
  - ffmpeg: support libavformat 0.7
444
* decoder:
445
  - ffmpeg: support libavformat 0.8, libavcodec 0.9
446
  - ffmpeg: support all MPD tags
447 448
* output:
  - httpd: fix excessive buffering
449
  - openal: force 16 bit playback, as 8 bit doesn't work
450
  - osx: remove sleep call from render callback
451
  - osx: clear render buffer when there's not enough data
452
* fix moving after current song
453 454


Avuton Olrich's avatar
Avuton Olrich committed
455
ver 0.16.6 (2011/12/01)
456 457
* decoder:
  - fix assertion failure when resuming streams
458
  - ffmpeg: work around bogus channel count
459
* encoder:
460
  - flac, null, wave: fix buffer corruption bug
461
  - wave: support packed 24 bit samples
462
* mapper: fix the bogus "not a directory" error message
463
* mapper: check "x" and "r" permissions on music directory
464
* log: print reason for failure
465
* event_pipe: fix WIN32 regression
466
* define WINVER in ./configure
467
* WIN32: autodetect filesystem encoding
468 469


Avuton Olrich's avatar
Avuton Olrich committed
470
ver 0.16.5 (2011/10/09)
471 472 473
* configure.ac
  - disable assertions in the non-debugging build
  - show solaris plugin result correctly
474
  - add option --enable-solaris-output
475
* pcm_format: fix 32-to-24 bit conversion (the "silence" bug)
476 477
* input:
  - rewind: reduce heap usage
478 479
* decoder:
  - ffmpeg: higher precision timestamps
480
  - ffmpeg: don't require key frame for seeking
481
  - fix CUE track seeking
482 483
* output:
  - openal: auto-fallback to mono if channel count is unsupported
484 485 486
* player:
  - make seeking to CUE track more reliable
  - the "seek" command works when MPD is stopped
487
  - restore song position from state file (bug fix)
488
  - fix crash that sometimes occurred when audio device fails on startup
489
  - fix absolute path support in playlists
490
* WIN32: close sockets properly
491
* install systemd service file if systemd is available
492 493


Avuton Olrich's avatar
Avuton Olrich committed
494
ver 0.16.4 (2011/09/01)
495
* don't abort configure when avahi is not found
496
* auto-detect libmad without pkg-config
Max Kellermann's avatar
Max Kellermann committed
497
* fix memory leaks
498
* don't resume playback when seeking to another song while paused
499
* apply follow_inside_symlinks to absolute symlinks
500
* fix playback discontinuation after seeking
501 502
* input:
  - curl: limit the receive buffer size
503
  - curl: implement a hard-coded timeout of 10 seconds
504 505
* decoder:
  - ffmpeg: workaround for semantic API change in recent ffmpeg versions
506
  - flac: validate the sample rate when scanning the tag
507
  - wavpack: obey all decoder commands, stop at CUE track border
508 509
* encoder:
  - vorbis: don't send end-of-stream on flush
510 511
* output:
  - alsa: fix SIGFPE when alsa announces a period size of 0
512
  - httpd: don't warn on client disconnect
513
  - osx: don't drain the buffer when closing
514
  - pulse: fix deadlock when resuming the stream
515
  - pulse: fix deadlock when the stream was suspended
516 517


Avuton Olrich's avatar
Avuton Olrich committed
518
ver 0.16.3 (2011/06/04)
519
* fix assertion failure in audio format mask parser
520
* fix NULL pointer dereference in playlist parser
521
* fix playlist files in base music directory
522
* database: allow directories with just playlists
523
* decoder:
524
  - ffmpeg: support libavcodec 0.7
525 526


Avuton Olrich's avatar
Avuton Olrich committed
527
ver 0.16.2 (2011/03/18)
528 529
* configure.ac:
  - fix bashism in tremor test
530 531
* decoder:
  - tremor: fix configure test
532
  - gme: detect end of song
533 534
* encoder:
  - vorbis: reset the Ogg stream after flush
535 536
* output:
  - httpd: fix uninitialized variable
537
  - httpd: include sys/socket.h
538
  - oss: AFMT_S24_PACKED is little-endian
539
  - oss: disable 24 bit playback on FreeBSD
540 541


Max Kellermann's avatar
Max Kellermann committed
542
ver 0.16.1 (2011/01/09)
543
* audio_check: fix parameter in prototype
544
* add void casts to suppress "result unused" warnings (clang)
545 546
* input:
  - ffado: disable by default
547 548
* decoder:
  - mad: work around build failure on Solaris
549
  - resolve modplug vs. libsndfile cflags/headers conflict
550 551
* output:
  - solaris: add missing parameter to open_cloexec() cal
552
  - osx: fix up audio format first, then apply it to device
553
* player_thread: discard empty chunks while cross-fading
554
* player_thread: fix assertion failure due to early seek
555
* output_thread: fix double lock
556 557


Avuton Olrich's avatar
Avuton Olrich committed
558
ver 0.16 (2010/12/11)
559 560
* protocol:
  - send song modification time to client
561
  - added "update" idle event
562
  - removed the deprecated "volume" command
563
  - added the "findadd" command
564
  - range support for "delete"
565
  - "previous" really plays the previous song
566
  - "addid" with negative position is deprecated
567
  - "load" supports remote playlists (extm3u, pls, asx, xspf, lastfm://)
568
  - allow changing replay gain mode on-the-fly
569
  - omitting the range end is possible
570
  - "update" checks if the path is malformed
571
* archive:
572
  - iso: renamed plugin to "iso9660"
573
  - zip: renamed plugin to "zzip"
574
* input:
575
  - lastfm: obsolete plugin removed
576
  - ffmpeg: new input plugin using libavformat's "avio" library
577
* tags:
Bart Nagel's avatar
Bart Nagel committed
578
  - added tags "ArtistSort", "AlbumArtistSort"
579
  - id3: revised "performer" tag support
580
  - id3: support multiple values
581
  - ape: MusicBrainz tags
582
  - ape: support multiple values
583
* decoders:
584
  - don't try a plugin twice (MIME type & suffix)
585
  - don't fall back to "mad" unless no plugin matches
586
  - ffmpeg: support multiple tags
587
  - ffmpeg: convert metadata to generic format
588
  - ffmpeg: implement the libavutil log callback
589
  - sndfile: new decoder plugin based on libsndfile
590
  - flac: moved CUE sheet support to a playlist plugin
591
  - flac: support streams without STREAMINFO block
592
  - mikmod: sample rate is configurable
593
  - mpg123: new decoder plugin based on libmpg123
Mike Dawson's avatar
Mike Dawson committed
594
  - sidplay: support sub-tunes
595
  - sidplay: implemented songlength database
596
  - sidplay: support seeking
597
  - sidplay: play monaural SID tunes in mono
598
  - sidplay: play mus, str, prg, x00 files
599
  - wavpack: activate 32 bit support
600
  - wavpack: allow more than 2 channels
601
  - mp4ff: rename plugin "mp4" to "mp4ff"
602 603
* encoders:
  - twolame: new encoder plugin based on libtwolame
604 605
  - flac: new encoder plugin based on libFLAC
  - wave: new encoder plugin for PCM WAV format
606 607
* output:
  - recorder: new output plugin for recording radio streams
608
  - alsa: don't recover on CANCEL
609
  - alsa: fill period buffer with silence before draining
610
  - openal: new output plugin
611
  - pulse: announce "media.role=music"
612
  - pulse: renamed context to "Music Player Daemon"
613
  - pulse: connect to server on MPD startup, implement pause
614
  - jack: require libjack 0.100
615
  - jack: don't disconnect during pause
616
  - jack: connect to server on MPD startup
617
  - jack: added options "client_name", "server_name"
618
  - jack: clear ring buffers before activating
619
  - jack: renamed option "ports" to "destination_ports"
620
  - jack: support more than two audio channels
621
  - httpd: bind port when output is enabled
622
  - httpd: added name/genre/website configuration
623
  - httpd: implement "pause"
624
  - httpd: bind_to_address support (including IPv6)
625
  - oss: 24 bit support via OSS4
626
  - win32: new output plugin for Windows Wave
627
  - shout, httpd: more responsive to control commands
628
  - wildcards allowed in audio_format configuration
629
  - consistently lock audio output objects
630 631
* player:
  - drain audio outputs at the end of the playlist
632 633
* mixers:
  - removed support for legacy mixer configuration
634 635
  - reimplemented software volume as mixer+filter plugin
  - per-device software/hardware mixer setting
636 637
* commands:
  - added new "status" line with more precise "elapsed time"
638 639 640
* update:
  - automatically update the database with Linux inotify
  - support .mpdignore files in the music directory
641
  - sort songs by album name first, then disc/track number
642
  - rescan after metadata_to_use change
643
* normalize: upgraded to AudioCompress 2.0
644
  - automatically convert to 16 bit samples
645 646
* replay gain:
  - reimplemented as a filter plugin
647
  - fall back to track gain if album gain is unavailable
648
  - optionally use hardware mixer to apply replay gain
649
  - added mode "auto"
650
  - parse replay gain from APE tags
651
* log unused/unknown block parameters
652
* removed the deprecated "error_file" option
653
* save state when stopped
654
* renamed option "--stdout" to "--stderr"
655
* removed options --create-db and --no-create-db
656
* state_file: save only if something has changed
657
* database: eliminated maximum line length
658
* log: redirect stdout/stderr to /dev/null if syslog is used
659
* set the close-on-exec flag on all file descriptors
660
* pcm_volume, pcm_mix: implemented 32 bit support
661
* support packed 24 bit samples
662
* CUE sheet support
663
* support for MixRamp tags
664
* obey $(sysconfdir) for default mpd.conf location
665
* build with large file support by default
666
* added test suite ("make check")
667
* require GLib 2.12
668
* added libwrap support
669
* make single mode 'sticky'
670 671


672
ver 0.15.17 (2011/??/??)
673 674
* encoder:
  - vorbis: reset the Ogg stream after flush
675 676
* decoders:
  - vorbis: fix tremor support
677 678


Avuton Olrich's avatar
Avuton Olrich committed
679
ver 0.15.16 (2011/03/13)
680 681
* output:
  - ao: initialize the ao_sample_format struct
682
  - jack: fix crash with mono playback
683 684
* encoders:
  - lame: explicitly configure the output sample rate
685
* update: log all file permission problems
686 687


Max Kellermann's avatar
Max Kellermann committed
688
ver 0.15.15 (2010/11/08)
689 690
* input:
  - rewind: fix assertion failure
691 692
* output:
  - shout: artist comes first in stream title
693 694


Avuton Olrich's avatar
Avuton Olrich committed
695
ver 0.15.14 (2010/11/06)
696
* player_thread: fix assertion failure due to wrong music pipe on seek
697
* output_thread: fix assertion failure due to race condition in OPEN
698 699
* input:
  - rewind: fix double free bug
700 701 702
* decoders:
  - mp4ff, ffmpeg: add extension ".m4b" (audio book)

703

Avuton Olrich's avatar
Avuton Olrich committed
704
ver 0.15.13 (2010/10/10)
705
* output_thread: fix race condition after CANCEL command
706 707
* output:
  - httpd: fix random data in stream title
708
  - httpd: MIME type audio/ogg for Ogg Vorbis
709 710
* input:
  - rewind: update MIME not only once
711
  - rewind: enable for MMS
712 713


Max Kellermann's avatar
Max Kellermann committed
714
ver 0.15.12 (2010/07/20)
715 716
* input:
  - curl: remove assertion after curl_multi_fdset()
717 718
* tags:
  - rva2: set "gain", not "peak"
719 720
* decoders:
  - wildmidi: support version 0.2.3
721 722


Avuton Olrich's avatar
Avuton Olrich committed
723
ver 0.15.11 (2010/06/14)
724 725
* tags:
  - ape: support album artist
726
* decoders:
727
  - mp4ff: support tags "album artist", "albumartist", "band"
728
  - mikmod: fix memory leak
729
  - vorbis: handle uri==NULL
730
  - ffmpeg: fix memory leak
731
  - ffmpeg: free AVFormatContext on error
732
  - ffmpeg: read more metadata
733
  - ffmpeg: fix libavformat 0.6 by using av_open_input_stream()
734
* playlist: emit IDLE_OPTIONS when resetting single mode
735
* listen: make get_remote_uid() work on BSD
736 737


Avuton Olrich's avatar
Avuton Olrich committed
738
ver 0.15.10 (2010/05/30)
739 740
* input:
  - mms: fix memory leak in error handler
741
  - mms: initialize the "eof" attribute
742 743
* decoders:
  - mad: properly calculate ID3 size without libid3tag
744 745


Avuton Olrich's avatar
Avuton Olrich committed
746
ver 0.15.9 (2010/03/21)
747 748
* decoders:
  - mad: fix crash when seeking at end of song
749
  - mpcdec: fix negative shift on fixed-point samples
750
  - mpcdec: fix replay gain formula with v8
751
* playlist: fix single+repeat in random mode
752
* player: postpone song tags during cross-fade
753 754


Avuton Olrich's avatar
Avuton Olrich committed
755
ver 0.15.8 (2010/01/17)
756 757
* input:
  - curl: allow rewinding with Icy-Metadata
758 759
* decoders:
  - ffmpeg, flac, vorbis: added more flac/vorbis MIME types
760
  - ffmpeg: enabled libavformat's file name extension detection
761
* dbUtils: return empty tag value only if no value was found
762
* decoder_thread: fix CUE track playback
763
* queue: don't repeat current song in consume mode
764 765


Avuton Olrich's avatar
Avuton Olrich committed
766
ver 0.15.7 (2009/12/27)
767 768
* archive:
  - close archive when stream is closed
769
  - iso, zip: fixed memory leak in destructor
770 771
* input:
  - file: don't fall back to parent directory
772
  - archive: fixed memory leak in error handler
773 774
* tags:
  - id3: fix ID3v1 charset conversion
775
* decoders:
776
  - eliminate jitter after seek failure
777
  - ffmpeg: don't try to force stereo
778
  - wavpack: allow fine-grained seeking
779
* mixer: explicitly close all mixers on shutdown
780
* mapper: fix memory leak when playlist_directory is not set
781
* mapper: apply filesystem_charset to playlists
782
* command: verify playlist name in the "rm" command
783
* database: return multiple tag values per song
784 785


Avuton Olrich's avatar
Avuton Olrich committed
786
ver 0.15.6 (2009/11/18)
787 788
* input:
  - lastfm: fixed variable name in GLib<2.16 code path
789
  - input/mms: require libmms 0.4
790 791
* archive:
  - zzip: require libzzip 0.13
792 793
* tags:
  - id3: allow 4 MB RIFF/AIFF tags
794 795
* decoders:
  - ffmpeg: convert metadata
796
  - ffmpeg: align the output buffer
797
  - oggflac: rewind stream after FLAC detection
798
  - flac: fixed CUE seeking range check
799
  - flac: fixed NULL pointer dereference in CUE code
800
* output_thread: check again if output is open on PAUSE
801
* update: delete ignored symlinks from database
802
* database: increased maximum line length to 32 kB
803
* sticker: added fallback for sqlite3_prepare_v2()
804 805


Avuton Olrich's avatar
Avuton Olrich committed
806
ver 0.15.5 (2009/10/18)
807 808
* input:
  - curl: don't abort if a packet has only metadata
809
  - curl: fixed endless loop during buffering
810 811
* tags:
  - riff, aiff: fixed "limited range" gcc warning
812 813
* decoders:
  - flac: fixed two memory leaks in the CUE tag loader
814
* decoder_thread: change the fallback decoder name to "mad"
815
* output_thread: check again if output is open on CANCEL
816
* update: fixed memory leak during container scan
817 818


Avuton Olrich's avatar
Avuton Olrich committed
819
ver 0.15.4 (2009/10/03)
820 821
* decoders:
  - vorbis: revert "faster tag scanning with ov_test_callback()"
822
  - faad: skip assertion failure on large ID3 tags
823
  - ffmpeg: use the "artist" tag if "author" is not present
824 825
* output:
  - osx: fix the OS X 10.6 build
826 827


Avuton Olrich's avatar
Avuton Olrich committed
828
ver 0.15.3 (2009/08/29)
829 830
* decoders:
  - vorbis: faster tag scanning with ov_test_callback()
831 832
* output:
  - fix stuttering due to uninitialized variable
833
* update: don't re-read unchanged container files
834 835


Avuton Olrich's avatar
Avuton Olrich committed
836
ver 0.15.2 (2009/08/15)
837 838
* tags:
  - ape: check the tag size (fixes integer underflow)
839
  - ape: added protection against large memory allocations
840 841
* decoders:
  - mad: skip ID3 frames when libid3tag is disabled
842
  - flac: parse all replaygain tags
843
  - flac: don't allocate cuesheet twice (memleak)
844 845
* output:
  - shout: fixed stuck pause bug
846
  - shout: minimize the unpause latency
847
* update: free empty path string (memleak)
848
* update: free temporary string in container scan (memleak)
849
* directory: free empty directories after removing them (memleak)
850 851


Avuton Olrich's avatar
Avuton Olrich committed
852
ver 0.15.1 (2009/07/15)
Max Kellermann's avatar
Max Kellermann committed
853
* decoders:
854
  - flac: fix assertion failure in tag_free() call
855 856
* output:
  - httpd: include sys/types.h (fixes Mac OS X)
857 858
* commands:
  - don't resume playback when stopping during pause
859
* database: fixed NULL pointer dereference after charset change
860
* log: fix double free() bug during shutdown
861 862


Avuton Olrich's avatar
Avuton Olrich committed
863
ver 0.15 (2009/06/23)
Max Kellermann's avatar
Max Kellermann committed
864 865
* input:
  - parse Icy-Metadata
866
  - added support for the MMS protocol
867
  - hide HTTP password in playlist
868
  - lastfm: new input plugin for last.fm radio (experimental and incomplete!)
869
  - curl: moved proxy settings to "input" block
Max Kellermann's avatar
Max Kellermann committed
870 871
* tags:
  - support the "album artist" tag
872
  - support MusicBrainz tags
Max Kellermann's avatar
Max Kellermann committed
873
  - parse RVA2 tags in mp3 files
874 875 876
  - 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
877 878
* decoders:
  - audiofile: streaming support added
879
  - audiofile: added 24 bit support
Max Kellermann's avatar
Max Kellermann committed
880 881
  - modplug: another MOD plugin, based on libmodplug
  - mikmod disabled by default, due to severe security issues in libmikmod
882
  - sidplay: new decoder plugin for C64 SID (using libsidplay2)
883 884
  - fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
    experimental due to shortcomings in libfluidsynth)
885
  - wildmidi: another decoder plugin for MIDI files (using libwildmidi)
Max Kellermann's avatar
Max Kellermann committed
886
  - flac: parse stream tags
887
  - mpcdec: support the new libmpcdec SV8 API
888
  - added configuration option to disable decoder plugins
889 890
  - flac: support embedded cuesheets
  - ffmpeg: updated list of supported formats
Max Kellermann's avatar
Max Kellermann committed
891
* audio outputs:
892
  - added option to disable audio outputs by default
893
  - wait 10 seconds before reopening after play failure
Max Kellermann's avatar
Max Kellermann committed
894
  - shout: enlarged buffer size to 32 kB
895
  - null: allow disabling synchronization
896
  - mvp: fall back to stereo
897
  - mvp: fall back to 16 bit audio samples
898
  - mvp: check for reopen errors
899
  - mvp: fixed default device detection
900
  - pipe: new audio output plugin which runs a command
901
  - alsa: better period_time default value for high sample rates
902
  - solaris: new audio output plugin for Solaris /dev/audio
903 904
  - httpd: new audio output plugin for web based streaming, similar to icecast
     but built in.
Max Kellermann's avatar
Max Kellermann committed
905
* commands:
906
  - "playlistinfo" and "move" supports a range now
Max Kellermann's avatar
Max Kellermann committed
907
  - added "sticker database", command "sticker", which allows clients
908 909 910 911
     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.
912 913 914
* mixers:
  - rewritten mixer code to support multiple mixers
  - new pulseaudio mixer
915 916
  - alsa: new mixer_index option supports choosing between multiple
    identically-named controls on a device.
917 918 919 920
* Add audio archive extraction support:
  - bzip2
  - iso9660
  - zip
921
* the option "error_file" was removed, all messages are logged into
922
   "log_file"
Max Kellermann's avatar
Max Kellermann committed
923
* support logging to syslog
924
* fall back to XDG music directory if no music_directory is configured
925
* failure to read the state file is non-fatal
926
* --create-db starts the MPD daemon instead of exiting
927
* playlist_directory and music_directory are optional
928
* playlist: recalculate the queued song after random is toggled
929
* playlist: don't unpause on delete
930
* pause when all audio outputs fail to play
931
* daemon: ignore "user" setting if already running as that user
932
* listen: fix broken client IP addresses in log
933
* listen: bind failure on secondary address is non-fatal
934 935
* 24/32 bit audio support
* print available protocols in --version
936
* fill buffer after seeking
937
* choose the fallback resampler at runtime
938 939 940
* steps taken towards win32 compatibility
* require glib 2.6 or greater
* built-in documentation using doxygen and docbook
941 942


Avuton Olrich's avatar
Avuton Olrich committed
943
ver 0.14.2 (2009/02/13)
944 945
* configure.ac:
  - define HAVE_FFMPEG after all checks
946 947
* decoders:
  - ffmpeg: added support for the tags comment, genre, year
948
  - ffmpeg: don't warn of empty packet output
949
  - ffmpeg: check if the time stamp is valid
950
  - ffmpeg: fixed seek integer overflow
951 952
  - ffmpeg: enable WAV streaming
  - ffmpeg: added TTA support
953
  - wavpack: pass NULL if the .wvc file fails to open
954
  - mikmod: call MikMod_Exit() only in the finish() method
955
  - aac: fix stream metadata
956 957
* audio outputs:
  - jack: allocate ring buffers before connecting
958
  - jack: clear "shutdown" flag on reconnect
959
  - jack: reduced sleep time to 1ms
960
  - shout: fixed memory leak in the mp3 encoder
961
  - shout: switch to blocking mode
962
  - shout: use libshout's synchronization
963
  - shout: don't postpone metadata
964
  - shout: clear buffer before calling the encoder
965
* mapper: remove trailing slashes from music_directory
966
* player: set player error when output device fails
967
* update: recursively purge deleted directories
968
* update: free deleted subdirectories
969

Avuton Olrich's avatar
Avuton Olrich committed
970
ver 0.14.1 (2009/01/17)
971 972 973
* decoders:
  - mp4: support the writer/composer tag
  - id3: strip leading and trailing whitespace from ID3 tags
974
  - oggvorbis: fix tremor support
975
  - oggvorbis: disable seeking on remote files
976 977 978 979 980 981 982 983
* 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
984
  - fix assertion failure on "connection refused"
985
  - fix assertion failure with empty HTTP responses
986
* corrected the sample calculation in the fallback resampler
987 988 989 990 991
* 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
992 993 994 995 996 997 998
* 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
999
ver 0.14 (2008/12/25)
1000
* audio outputs:
1001
  - wait 10 seconds before reopening a failed device
1002 1003 1004 1005
  - fifo: new plugin
  - null: new plugin
  - shout: block while trying to connect instead of failing
  - shout: new timeout parameter
1006 1007
  - shout: support mp3 encoding and the shoutcast protocol
  - shout: send silence during pause, so clients don't get disconnected
1008
* decoders:
1009
  - ffmpeg: new plugin
1010
  - wavpack: new plugin
1011
  - aac: stream support added
1012
  - mod: disabled by default due to critical bugs in all libmikmod versions
1013 1014
* commands:
  - "addid" takes optional second argument to specify position
1015
  - "idle" notifies the client when a notable change occurs
1016
* Zeroconf support using Bonjour
1017
* New zeroconf_enabled option so that Zeroconf support can be disabled
1018 1019
* 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
1020
* Support for reading ReplayGain from LAME tags on MP3s
1021 1022 1023 1024 1025 1026 1027 1028
* 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
1029 1030
* symbolic links in the music directory can be disabled; the default
  is to ignore symlinks pointing outside the music directory
1031

1032
ver 0.13.0 (2007/5/28)
1033 1034
* New JACK audio output
* Support for "file" as an alternative to "filename" in search, find, and list
Avuton Olrich's avatar
Avuton Olrich committed
1035
* FLAC 1.1.3 API support
1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047
* 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
1048
* New tagtypes command for retrieving a list of available tag types
1049
* Fix a bug where no ACK was returned if loading a playlist failed
1050
* Fix a bug where db_update in stats would be 0 after initial database creation
1051
* New count command for getting stats on found songs (similar to "find")
1052 1053
* New playlistmove command for moving songs in stored playlists
* New playlistdelete command for deleting songs from stored playlists
1054
* New rename command for renaming stored playlists
1055
* Increased default buffer_before_play from 0% to 10% to prevent skipping
1056 1057
* Lots of bug fixes, cleaned up code, and performance improvements

1058 1059 1060
ver 0.12.2 (2007/3/20)
* Fix a bug where clients could cause MPD to segfault

1061
ver 0.12.1 (2006/10/10)
1062 1063 1064 1065 1066 1067
* 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

1068
ver 0.12.0 (2006/9/22)
1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091
* 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
1092
* Can now specify any supported metadata type or "any" in search, find, and list
1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105
* 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

1106
ver 0.11.5 (2004/11/1)
1107 1108
1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch
from dottedmag)
1109 1110 1111
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
1112 1113
5) Fix a bug when fetching metadata from streams that may cause certain
weirdnesses
1114 1115
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
1116 1117
8) Fix a bug in forgetting to remove leading ' ' in content-type for http
streams
1118 1119
9) Check for ice-name in http headers
10) Be sure the strip all '\n' chars in tags
1120 1121
11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop
errors triggered by arts/libao
1122

1123 1124 1125 1126
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
1127 1128 1129 1130
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
1131 1132 1133 1134 1135 1136 1137 1138
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
1139
6) Updated mpdconf.example from sbh/avuton
1140 1141
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
1142

1143
ver 0.11.2 (2004/7/5) 
1144 1145
1) Work around in computing total time for mp3's whose first valid mpeg frame is
not layer III
1146 1147 1148 1149 1150
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)

1151 1152 1153 1154 1155 1156
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
1157 1158
6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds
the parent directories to the DB
1159

1160
ver 0.11.0 (2004/6/18)
1161 1162 1163
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)
1164 1165
4) audio_output_format option that allows for all audio output to be converted
to a format compatible with any sound card
1166 1167
5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
6) Added "Id" and "Pos" metadata for songs in playlist
1168 1169
7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid,
swapid, deleteid
1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181
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
1182 1183
20) Default port is now 6600
21) Lots of other cleanups and Bugfixes
1184

1185 1186 1187 1188
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
1189 1190
4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC
correctly
1191 1192
5) Fix a segfault in processing faulty mp4 metadata

1193 1194 1195
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
1196 1197 1198 1199
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
1200
5) add --disable-alsa for disabling alsa mixer support
Warren Dukes's avatar
Warren Dukes committed
1201
6) Use select() for a portable usleep()
1202
7) For alsa mixer, default to "Master' element, not first element
1203

Warren Dukes's avatar
Warren Dukes committed
1204 1205
ver 0.10.2 (2004/3/25)
1) Add suport for AAC
1206
2) Substitute '\n' with ' ' in tag info
Warren Dukes's avatar
Warren Dukes committed
1207 1208 1209 1210 1211
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
1212
8) Fix a bug where alsa mixer wasn't detecting volume changes
1213 1214
9) For alsa and software mixer, show volume to be the same as it was set (even
if its not the exact volume)
1215
10) Report bitrate for wave files
1216
11) Compute song length of CBR mp3's more accurately
Warren Dukes's avatar
Warren Dukes committed
1217

1218
ver 0.10.1 (2004/3/7)
1219
1) Check to see if we need to add "-lm" when linking mpd
1220 1221
2) Fix issues with skipping bad frames in an mp3 (this way we get the correct
samplerate and such)
1222
3) Fix crossfading bug with ogg's
1223
4) Updated libmad and libid3tag included w/ source to 0.15.1b
1224

1225
ver 0.10.0 (2004/3/3)
1226 1227 1228 1229 1230 1231 1232 1233 1234 1235
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
1236 1237 1238 1239 1240
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
1241 1242
16) Fix a bug, where one process may segfault, and cause more processes to spawn
w/o killing ones that lost their parent.
1243
17) Fix a bug when the OSS device was unable to fetch the current volume,
1244 1245
it would close the device (when it maybe previously closed by the exact same
code)
1246 1247
18) command.c cleanup by mackstann
19) directory.c and command.c cleanup by tw-nym
1248

Warren Dukes's avatar
Warren Dukes committed
1249 1250
ver 0.9.4 (2004/1/21)
1) Fix a bug where updated tag info wasn't being detected
1251 1252
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
1253
3) Make audio write size configurable via "audio_write_size" config option
1254 1255
4) Tweak output buffer size for connections by detecting the kernel output
buffer size.
Warren Dukes's avatar
Warren Dukes committed
1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270

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
1271 1272
3) Add mixer_control options to configure which mixer control/device mpd
controls
Warren Dukes's avatar
Warren Dukes committed
1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306
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)
1307 1308
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
1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394

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