NEWS 58.2 KB
Newer Older
1
ver 0.20 (not yet released)
2 3
* protocol
  - "commands" returns playlist commands only if playlist_directory configured
4
  - "search"/"find" have a "window" parameter
5
  - report song duration with milliseconds precision
6
  - "sticker find" can match sticker values
7
  - drop the "file:///" prefix for absolute file paths
8
  - add range parameter to command "plchanges" and "plchangesposid"
9
  - send verbose error message to client
10
* tags
11 12 13
  - ape, ogg: drop support for non-standard tag "album artist"
    affected filetypes: vorbis, flac, opus & all files with ape2 tags
    (most importantly some mp3s)
14 15
  - id3: remove the "id3v1_encoding" setting; by definition, all ID3v1 tags
    are ISO-Latin-1
16
  - ape: support APE replay gain on remote files
17
  - read ID3 tags from NFS/SMB
18
* decoder
19
  - improved error logging
20
  - report I/O errors to clients
21
  - ffmpeg: support ReplayGain and MixRamp
22
  - ffmpeg: support stream tags
23
  - gme: add option "accuracy"
24
  - mad: reduce memory usage while scanning tags
25
  - mpcdec: read the bit rate
26
  - pcm: support audio/L16 (RFC 2586) and audio/x-mpd-float
xent's avatar
xent committed
27
* playlist
28
  - cue: don't skip pregap
xent's avatar
xent committed
29
  - embcue: fix last track
30
  - flac: new plugin which reads the "CUESHEET" metadata block
31
* output
32
  - alsa: fix multi-channel order
33
  - alsa: remove option "use_mmap"
34
  - alsa: support DSD_U32
35
  - alsa: disable DoP if it fails
36
  - jack: reduce CPU usage
37
  - pulse: set channel map to WAVE-EX
38
  - recorder: record tags
39
  - recorder: allow dynamic file names
40
  - sndio: new output plugin
41 42
* mixer
  - null: new plugin
43 44 45
* resampler
  - new block "resampler" in configuration file
    replacing the old "samplerate_converter" setting
46
  - soxr: allow multi-threaded resampling
47
* reset song priority on playback
48
* write database and state file atomically
49
* always write UTF-8 to the log file.
50
* remove dependency on GLib
51
* support libsystemd (instead of the older libsystemd-daemon)
52 53
* database
  - proxy: add TCP keepalive option
54 55
* update
  - apply .mpdignore matches to subdirectories
56

57
ver 0.19.20 (not yet released)
58 59
* decoder
  - ffmpeg: ignore empty packets
60
  - sidplay: fix playback speed with libsidplayfp
61

Max Kellermann's avatar
Max Kellermann committed
62
ver 0.19.19 (2016/08/23)
63
* decoder
64
  - ffmpeg: bug fix for FFmpeg 3.1 support
65
  - wildmidi: support libWildMidi 0.4
66 67
* output
  - pulse: support 32 bit, 24 bit and floating point playback
68
* support non-x86 NetBSD
69
* fix clang 3.9 warnings
70

Max Kellermann's avatar
Max Kellermann committed
71
ver 0.19.18 (2016/08/05)
72
* decoder
73
  - ffmpeg: fix crash with older FFmpeg versions (< 3.0)
74
  - ffmpeg: log detailed error message
75
  - ffmpeg: support FFmpeg 3.1
76
  - sidplay: detect libsidplay2 with pkg-config
77
  - sidplay: log detailed error message
78
  - sidplay: read the "date" tag
79
  - sidplay: allow building with libsidplayfp instead of libsidplay2
80 81
* output
  - shout: recognize setting "encoder" instead of "encoding"
82
* fix memory leak after stream failure
83
* fix build failure with Boost 1.61
84
* require gcc 4.7 or newer
85

Max Kellermann's avatar
Max Kellermann committed
86
ver 0.19.17 (2016/07/09)
87 88
* decoder
  - flac: fix assertion failure while seeking
89
  - flac: fix stream duration indicator
90
  - fix seek problems in several plugins
91
* fix spurious seek error "Failed to allocate silence buffer"
92
* replay gain: fix "replay_gain_handler mixer" setting
93
* DSD: use 0x69 as silence pattern
94
* fix use-after-free bug on "close" and "kill"
95

Max Kellermann's avatar
Max Kellermann committed
96
ver 0.19.16 (2016/06/13)
97
* faster seeking
98 99
* fix system include path order
* add missing DocBook file to tarball
100

Max Kellermann's avatar
Max Kellermann committed
101
ver 0.19.15 (2016/04/30)
102
* decoder
103
  - ffmpeg: support FFmpeg 3.0
104
  - ffmpeg: use as fallback instead of "mad" if no plugin matches
105
  - opus: support bigger OpusTags packets
106
* fix more build failures on non-glibc builds due to constexpr Mutex
107
* fix build failure due to missing include
108
* fix unit test on Alpha
109

Max Kellermann's avatar
Max Kellermann committed
110
ver 0.19.14 (2016/03/18)
111
* decoder
112
  - dsdiff: fix off-by-one buffer overflow
113
  - opus: limit tag size to 64 kB
114 115
* archive
  - iso9660: fix buffer overflow
116
* fix quadratic runtime bug in the tag pool
117
* fix build failures on non-glibc builds due to constexpr Mutex
118

Max Kellermann's avatar
Max Kellermann committed
119
ver 0.19.13 (2016/02/23)
120 121
* tags
  - aiff, riff: fix ID3 chunk padding
122 123
* decoder
  - ffmpeg: support the TAK codec
124
* fix disappearing duration of remote songs during playback
125
* initialize supplementary groups with glibc 2.19+
126

Max Kellermann's avatar
Max Kellermann committed
127
ver 0.19.12 (2015/12/15)
128
* fix assertion failure on malformed UTF-8 tag
129
* fix build failure on non-Linux systems
130
* fix LimitRTTIME in systemd unit file
131

Max Kellermann's avatar
Max Kellermann committed
132
ver 0.19.11 (2015/10/27)
133 134
* tags
  - ape: fix buffer overflow
135 136
* decoder
  - ffmpeg: fix crash due to wrong avio_alloc_context() call
137
  - gme: don't loop forever, fall back to GME's default play length
138 139
* encoder
  - flac: fix crash with 32 bit playback
140 141
* mixer
  - fix mixer lag after enabling/disabling output
142

Max Kellermann's avatar
Max Kellermann committed
143
ver 0.19.10 (2015/06/21)
144
* input
145
  - curl: fix deadlock on small responses
146
  - smbclient: fix DFF playback
147 148
* decoder
  - ffmpeg: improve seeking accuracy
149
  - fix stuck stream tags
150 151
* encoder
  - opus: fix bogus granulepos
152 153
* output
  - fix failure to open device right after booting
154 155
* neighbor
  - nfs: fix deadlock when connecting
156
* fix "single" mode breakage due to queue edits
157

Max Kellermann's avatar
Max Kellermann committed
158
ver 0.19.9 (2015/02/06)
159 160
* decoder
  - dsdiff, dsf: raise ID3 tag limit to 1 MB
161
* playlist: fix loading duplicate tag types from state file
162
* despotify: remove defunct plugin
163
* fix clock integer overflow on OS X
164
* fix gcc 5.0 warnings
165
* fix build failure with uClibc
166
* fix build failure on non-POSIX operating systems
167
* fix dependency issue on parallel Android build
168
* fix database/state file saving on Windows
169

Max Kellermann's avatar
Max Kellermann committed
170
ver 0.19.8 (2015/01/14)
171
* input
172
  - curl: fix bug after rewinding from end-of-file
173
  - mms: reduce delay at the beginning of playback
174 175
* decoder
  - dsdiff, dsf: allow ID3 tags larger than 4 kB
176
  - ffmpeg: support interleaved floating point
177
* fix clang 3.6 warnings
178
* fix build failure on NetBSD
179

Max Kellermann's avatar
Max Kellermann committed
180
ver 0.19.7 (2014/12/17)
181 182
* input
  - nfs: fix crash while canceling a failing file open operation
183
  - nfs: fix memory leak on connection failure
184
  - nfs: fix reconnect after mount failure
185
  - nfs: implement mount timeout (60 seconds)
186 187
* storage
  - nfs: implement I/O timeout (60 seconds)
188
* playlist
189
  - embcue: fix filename suffix detection
190
  - don't skip non-existent songs in "listplaylist"
191 192
* decoder
  - ffmpeg: fix time stamp underflow
193
* fix memory allocator bug on Windows
194

Max Kellermann's avatar
Max Kellermann committed
195
ver 0.19.6 (2014/12/08)
196 197 198
* decoder
  - ffmpeg: support FFmpeg 2.5
* fix build failure with musl
199 200
* android
  - update libFLAC to 1.3.1
201
  - update FFmpeg to 2.5
202

Max Kellermann's avatar
Max Kellermann committed
203
ver 0.19.5 (2014/11/26)
204 205
* input
  - nfs: fix crash on connection failure
206 207
* archive
  - zzip: fix crash after seeking
208 209
* decoder
  - dsdiff, dsf, opus: fix deadlock while seeking
210
  - mp4v2: remove because of incompatible license
211

Max Kellermann's avatar
Max Kellermann committed
212
ver 0.19.4 (2014/11/18)
213 214
* protocol
  - workaround for buggy clients that send "add /"
215
* decoder
216
  - ffmpeg: support opus
217
  - opus: add MIME types audio/ogg and application/ogg
218 219
* fix crash on failed filename charset conversion
* fix local socket detection from uid=0 (root)
220

Max Kellermann's avatar
Max Kellermann committed
221
ver 0.19.3 (2014/11/11)
222 223
* protocol
  - fix "(null)" result string to "list" when AlbumArtist is disabled
224 225
* database
  - upnp: fix breakage due to malformed URIs
226 227
* input
  - curl: another fix for redirected streams
228 229
* decoder
  - audiofile: fix crash while playing streams
230
  - audiofile: fix bit rate calculation
231
  - ffmpeg: support opus
232
  - opus: fix bogus duration on streams
233
  - opus: support chained streams
234
  - opus: improved error logging
235
* fix distorted audio with soxr resampler
236
* fix build failure on Mac OS X with non-Apple compilers
237

Max Kellermann's avatar
Max Kellermann committed
238
ver 0.19.2 (2014/11/02)
239 240
* input
  - curl: fix redirected streams
241
* playlist
242
  - don't allow empty playlist name
243
  - m3u: don't ignore unterminated last line
244
  - m3u: recognize the file suffix ".m3u8"
245
* decoder
246
  - ignore URI query string for plugin detection
247
  - faad: remove workaround for ancient libfaad2 ABI bug
248
  - ffmpeg: recognize MIME type audio/aacp
249
  - mad: fix negative replay gain values
250 251
* output
  - fix memory leak after filter initialization error
252
  - fall back to PCM if given DSD sample rate is not supported
253
* fix assertion failure on unsupported PCM conversion
254
* auto-disable plugins that require GLib when --disable-glib is used
255

Max Kellermann's avatar
Max Kellermann committed
256
ver 0.19.1 (2014/10/19)
257 258
* input
  - mms: fix deadlock bug
259 260
* playlist
  - extm3u: fix Extended M3U detection
261
  - m3u, extm3u, cue: fix truncated lines
Max Kellermann's avatar
Max Kellermann committed
262
* fix build failure on Mac OS X
263
* add missing file systemd/mpd.socket to tarball
264

Max Kellermann's avatar
Max Kellermann committed
265
ver 0.19 (2014/10/10)
266
* protocol
267 268
  - new commands "addtagid", "cleartagid", "listfiles", "listmounts",
    "listneighbors", "mount", "rangeid", "unmount"
269
  - "lsinfo" and "readcomments" allowed for remote files
270
  - "listneighbors" lists file servers on the local network
271
  - "playlistadd" supports file:///
272
  - "idle" with unrecognized event name fails
273
  - "list" on album artist falls back to the artist tag
274
  - "list" and "count" allow grouping
275
  - new "search"/"find" filter "modified-since"
276
  - "seek*" allows fractional position
277
  - close connection after syntax error
278
* database
279
  - proxy: forward "idle" events
280
  - proxy: forward the "update" command
281
  - proxy: copy "Last-Modified" from remote directories
282
  - simple: compress the database file using gzip
283
  - upnp: new plugin
284
  - cancel the update on shutdown
285 286
* storage
  - music_directory can point to a remote file server
287
  - nfs: new plugin
288
  - smbclient: new plugin
289
* playlist
290
  - cue: fix bogus duration of the last track
291
  - cue: restore CUE tracks from state file
292
  - soundcloud: use https instead of http
293
  - soundcloud: add default API key
294 295
* archive
  - read tags from songs in an archive
296 297
* input
  - alsa: new input plugin
298
  - curl: options "verify_peer" and "verify_host"
299
  - ffmpeg: update offset after seeking
300
  - ffmpeg: improved error messages
301
  - mms: non-blocking I/O
302
  - nfs: new input plugin
303
  - smbclient: new input plugin
304 305
* filter
  - volume: improved software volume dithering
306 307
* decoder:
  - vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song
308
  - audiofile: support scanning remote files
309
  - audiofile: log libaudiofile errors
310
  - dsdiff, dsf: report bit rate
311
  - dsdiff, dsf: implement seeking
312
  - dsf: support DSD512
313
  - dsf: support multi-channel files
314
  - dsf: fix big-endian bugs
315
  - dsf: fix noise at end of malformed file
316
  - mpg123: support ID3v2, ReplayGain and MixRamp
317
  - sndfile: support scanning remote files
318
  - sndfile: support tags "comment", "album", "track", "genre"
319 320
  - sndfile: native floating point playback
  - sndfile: optimized 16 bit playback
321
  - mp4v2: support playback of MP4 files.
Andrée Ekroth's avatar
Andrée Ekroth committed
322 323
* encoder:
  - shine: new encoder plugin
324 325
* output
  - alsa: support native DSD playback
326
  - alsa: rename "DSD over USB" to "DoP"
327
  - osx: fix hang after (un)plugging headphones
328 329 330
* threads:
  - the update thread runs at "idle" priority
  - the output thread runs at "real-time" priority
331
  - increase kernel timer slack on Linux
332
  - name each thread (for debugging)
333 334
* configuration
  - allow playlist directory without music directory
335
  - use XDG to auto-detect "music_directory" and "db_file"
336
* add tags "AlbumSort", "MUSICBRAINZ_RELEASETRACKID"
337
* disable global Latin-1 fallback for tag values
338
* new resampler option using libsoxr
339
* ARM NEON optimizations
340
* install systemd unit for socket activation
Max Kellermann's avatar
Max Kellermann committed
341
* Android port
Max Kellermann's avatar
Max Kellermann committed
342

Max Kellermann's avatar
Max Kellermann committed
343
ver 0.18.23 (2015/02/06)
344
* despotify: remove defunct plugin
345
* fix clock integer overflow on OS X
346
* fix gcc 5.0 warnings
347

348
ver 0.18.22 (2015/01/14)
349
* fix clang 3.6 warnings
350

Max Kellermann's avatar
Max Kellermann committed
351
ver 0.18.21 (2014/12/17)
352 353
* playlist
  - embcue: fix filename suffix detection
354 355
* decoder
  - ffmpeg: fix time stamp underflow
356

Max Kellermann's avatar
Max Kellermann committed
357
ver 0.18.20 (2014/12/08)
358 359
* decoder
  - ffmpeg: support FFmpeg 2.5
360
* fix build failure with musl
361

Max Kellermann's avatar
Max Kellermann committed
362
ver 0.18.19 (2014/11/26)
363 364
* archive
  - zzip: fix crash after seeking
365

Max Kellermann's avatar
Max Kellermann committed
366
ver 0.18.18 (2014/11/18)
367 368
* decoder
  - ffmpeg: support opus
369
* fix crash on failed filename charset conversion
370
* fix local socket detection from uid=0 (root)
371

Max Kellermann's avatar
Max Kellermann committed
372
ver 0.18.17 (2014/11/02)
373
* playlist
374
  - don't allow empty playlist name
375
  - m3u: recognize the file suffix ".m3u8"
376
* decoder
377
  - ignore URI query string for plugin detection
378
  - faad: remove workaround for ancient libfaad2 ABI bug
379
  - ffmpeg: recognize MIME type audio/aacp
380

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

Max Kellermann's avatar
Max Kellermann committed
384
ver 0.18.15 (2014/09/26)
385 386
* command
  - list: reset used size after the list has been processed
387
* fix MixRamp
388
* work around build failure on NetBSD
389

Max Kellermann's avatar
Max Kellermann committed
390
ver 0.18.14 (2014/09/11)
391 392
* protocol
  - fix range parser bug on certain 32 bit architectures
393 394
* decoder
  - audiofile: fix crash after seeking
395
  - ffmpeg: fix crash with ffmpeg/libav version 11
396
  - fix assertion failure after seeking
397

Max Kellermann's avatar
Max Kellermann committed
398
ver 0.18.13 (2014/08/31)
399 400
* protocol
  - don't change song on "seekcur" in random mode
Max Kellermann's avatar
Max Kellermann committed
401

402
* decoder
403
  - dsdiff, dsf: fix endless loop on malformed file
404
  - ffmpeg: support ffmpeg/libav version 11
405
  - gme: fix song duration
406 407
* output
  - alsa: fix endless loop at end of file in dsd_usb mode
408
* fix state file saver
409
* fix build failure on Darwin
410

Max Kellermann's avatar
Max Kellermann committed
411
ver 0.18.12 (2014/07/30)
412 413
* database
  - proxy: fix build failure with libmpdclient 2.2
414
  - proxy: fix add/search and other commands with libmpdclient < 2.9
415 416
* decoder
  - audiofile: improve responsiveness
417
  - audiofile: fix WAV stream playback
418
  - dsdiff, dsf: fix stream playback
419
  - dsdiff: fix metadata parser bug (uninitialized variables)
420
  - faad: estimate song duration for remote files
421
  - sndfile: improve responsiveness
422
* randomize next song when enabling "random" mode while not playing
423
* randomize next song when adding to single-song queue
424

Max Kellermann's avatar
Max Kellermann committed
425
ver 0.18.11 (2014/05/12)
426 427
* decoder
  - opus: fix missing song length on high-latency files
428
* fix race condition when using GLib event loop (non-Linux)
429

Max Kellermann's avatar
Max Kellermann committed
430
ver 0.18.10 (2014/04/10)
431
* decoder
432
  - ffmpeg: fix seeking bug
433
  - ffmpeg: handle unknown stream start time
434
  - gme: fix memory leak
435
  - sndfile: work around libsndfile bug on partial read
436
* don't interrupt playback when current song gets deleted
437

Max Kellermann's avatar
Max Kellermann committed
438
ver 0.18.9 (2014/03/02)
439 440
* protocol
  - "findadd" requires the "add" permission
441 442
* output
  - alsa: improved workaround for noise after manual song change
443 444
* decoder
  - vorbis: fix linker failure when libvorbis/libogg are static
445 446
* encoder
  - vorbis: fix another linker failure
447 448
* output
  - pipe: fix hanging child process due to blocked signals
449
* fix build failure due to missing signal.h include
450

Max Kellermann's avatar
Max Kellermann committed
451
ver 0.18.8 (2014/02/07)
452 453
* decoder
  - ffmpeg: support libav v10_alpha1
454 455
* encoder
  - vorbis: fix linker failure
456 457
* output
  - roar: documentation
458
* more robust Icy-Metadata parser
459
* fix Solaris build failure
460

461
ver 0.18.7 (2014/01/13)
462
* playlist
463
  - pls: fix crash after parser error
464
  - soundcloud: fix build failure with libyajl 2.0.1
465 466
* decoder
  - faad: fix memory leak
467
  - mpcdec: reject libmpcdec SV7 in configure script
468 469
* daemon: don't initialize supplementary groups when already running
  as the configured user
470

Max Kellermann's avatar
Max Kellermann committed
471
ver 0.18.6 (2013/12/24)
472 473
* input
  - cdio_paranoia: support libcdio-paranoia 0.90
474 475
* tags
  - riff: recognize upper-case "ID3" chunk name
476 477
* decoder
  - ffmpeg: use relative timestamps
Max Kellermann's avatar
Max Kellermann committed
478 479
* output
  - openal: fix build failure on Mac OS X
480
  - osx: fix build failure
481 482
* mixer
  - alsa: fix build failure with uClibc
483
* fix replay gain during cross-fade
484
* accept files without metadata
485

Max Kellermann's avatar
Max Kellermann committed
486
ver 0.18.5 (2013/11/23)
487 488
* configuration
  - fix crash when db_file is configured without music_directory
489
  - fix crash on "stats" without db_file/music_directory
490 491
* database
  - proxy: auto-reload statistics
492
  - proxy: provide "db_update" in "stats" response
493 494
* input
  - curl: work around stream resume bug (fixed in libcurl 7.32.0)
495 496
* decoder
  - fluidsynth: auto-detect by default
497
* clip 24 bit data from libsamplerate
498
* fix ia64, mipsel and other little-endian architectures
499 500 501
* fix build failures due to missing includes
* fix build failure with static libmpdclient

Max Kellermann's avatar
Max Kellermann committed
502
ver 0.18.4 (2013/11/13)
503 504
* decoder
  - dsdiff: fix byte order bug
505
* fix build failures due to missing includes
506
* libc++ compatibility
507

Max Kellermann's avatar
Max Kellermann committed
508
ver 0.18.3 (2013/11/08)
509
* fix stuck MPD after song change (0.18.2 regression)
510

Max Kellermann's avatar
Max Kellermann committed
511
ver 0.18.2 (2013/11/07)
512 513
* protocol:
  - "close" flushes the output buffer
514
* input:
515
  - cdio_paranoia: add setting "default_byte_order"
516
  - curl: fix bug with redirected streams
517 518
* playlist:
  - pls: fix reversed song order
519
* decoder:
520
  - audiofile: require libaudiofile 0.3 due to API breakage
521
  - dsf: enable DSD128
522
* enable buffering when starting playback (regression fix)
Max Kellermann's avatar
Max Kellermann committed
523
* fix build failures due to missing includes
524
* fix big-endian support
525

Max Kellermann's avatar
Max Kellermann committed
526
ver 0.18.1 (2013/11/04)
527 528
* protocol:
  - always ignore whitespace at the end of the line
529 530
* networking:
  - log UNIX domain path names instead of "localhost"
531
  - open listener sockets in the order they were configured
532
  - don't abort if IPv6 is not available
533 534
* output:
  - alsa: avoid endless loop in Raspberry Pi workaround
535 536
* filter:
  - autoconvert: fix "volume_normalization" with mp3 files
537
* add missing files to source tarball
538

Max Kellermann's avatar
Max Kellermann committed
539
ver 0.18 (2013/10/31)
540 541
* configuration:
  - allow tilde paths for socket
542
  - default filesystem charset is UTF-8 instead of ISO-8859-1
543
  - increase default buffer size to 4 MB
544
* protocol:
545
  - new command "readcomments" lists arbitrary file tags
546
  - new command "toggleoutput"
547
  - "find"/"search" with "any" does not match file name
548
  - "search" and "find" with base URI (keyword "base")
549
  - search for album artist falls back to the artist tag
550
  - re-add the "volume" command
551
* input:
Ales Guzik's avatar
Ales Guzik committed
552
  - curl: enable https
553
  - soup: plugin removed
554 555
* playlist:
  - lastfm: remove defunct Last.fm support
556
* decoder:
557
  - adplug: new decoder plugin using libadplug
558
  - dsf: don't play junk at the end of the "data" chunk
559
  - ffmpeg: drop support for pre-0.8 ffmpeg
560
  - flac: require libFLAC 1.2 or newer
561
  - flac: support FLAC files inside archives
562
  - opus: new decoder plugin for the Opus codec
563
  - vorbis: skip 16 bit quantisation, provide float samples
564
  - mikmod: add "loop" configuration parameter
565
  - modplug: add "loop_count" configuration parameter
566
  - mp4ff: obsolete plugin removed
567 568
* encoder:
  - opus: new encoder plugin for the Opus codec
569
  - vorbis: accept floating point input samples
570 571
* output:
  - new option "tags" may be used to disable sending tags to output
572
  - alsa: workaround for noise after manual song change
573
  - ffado: remove broken plugin
574
  - httpd: support HEAD requests
575
  - mvp: remove obsolete plugin
576
  - osx: disabled by default because it's unmaintained and unsupported
577
* improved decoder/output error reporting
578
* eliminate timer wakeup on idle MPD
579
* fix unresponsive MPD while waiting for stream
Max Kellermann's avatar
Max Kellermann committed
580
* port of the source code to C++11
Max Kellermann's avatar
Max Kellermann committed
581

Max Kellermann's avatar
Max Kellermann committed
582
ver 0.17.6 (2013/10/14)
583 584
* mixer:
  - alsa: fix busy loop when USB sound device gets unplugged
585 586
* decoder:
  - modplug: fix build with Debian package 1:0.8.8.4-4
Max Kellermann's avatar
Max Kellermann committed
587 588
* stored playlists:
  - fix loading playlists with references to local files
589
  - obey filesystem_charset for URLs
Max Kellermann's avatar
Max Kellermann committed
590

Max Kellermann's avatar
Max Kellermann committed
591
ver 0.17.5 (2013/08/04)
592 593
* protocol:
  - fix "playlistadd" with URI
594
  - fix "move" relative to current when there is no current song
595
* decoder:
596
  - ffmpeg: support "application/flv"
597
  - mikmod: adapt to libmikmod 3.2
598 599
* configure.ac:
  - detect system "ar"
Max Kellermann's avatar
Max Kellermann committed
600

Max Kellermann's avatar
Max Kellermann committed
601
ver 0.17.4 (2013/04/08)
602 603
* protocol:
  - allow to omit END in ranges (START:END)
604
  - don't emit IDLE_PLAYER before audio format is known
605 606
* decoder:
  - ffmpeg: support float planar audio (ffmpeg 1.1)
607
  - ffmpeg: fix AVFrame allocation
608 609
* player:
  - implement missing "idle" events on output errors
610
* clock: fix build failure
611

Avuton Olrich's avatar
Avuton Olrich committed
612
ver 0.17.3 (2013/01/06)
613
* output:
614
  - osx: fix pops during playback
615
  - recorder: fix I/O error check
616
  - shout: fix memory leak in error handler
617
  - recorder, shout: support Ogg packets that span more than one page
618 619
* decoder:
  - ffmpeg: ignore negative time stamps
620
  - ffmpeg: support planar audio
621 622
* playlist:
  - cue: fix memory leak
623
  - cue: fix CUE files with only one track
624

Avuton Olrich's avatar
Avuton Olrich committed
625
ver 0.17.2 (2012/09/30)
626 627
* protocol:
  - fix crash in local file check
628 629
* decoder:
  - fluidsynth: remove throttle (requires libfluidsynth 1.1)
630
  - fluidsynth: stop playback at end of file
631
  - fluidsynth: check MIDI file format while scanning
632
  - fluidsynth: add sample rate setting
633
  - wavpack: support all APEv2 tags
634 635
* output:
  - httpd: use monotonic clock, avoid hiccups after system clock adjustment
636
  - httpd: fix throttling bug after resuming playback
637 638
* playlist:
  - cue: map "PERFORMER" to "artist" or "album artist"
639
* mapper: fix non-UTF8 music directory name
640
* mapper: fix potential crash in file permission check
641
* playlist: fix use-after-free bug
642
* playlist: fix memory leak
643
* state_file: save song priorities
644
* player: disable cross-fading in "single" mode
645
* update: fix unsafe readlink() usage
646 647
* configure.ac:
  - don't auto-detect the vorbis encoder when Tremor is enabled
648

Avuton Olrich's avatar
Avuton Olrich committed
649
ver 0.17.1 (2012/07/31)
650 651
* protocol:
  - require appropriate permissions for searchadd{,pl}
652 653
* tags:
  - aiff: support the AIFC format
654
  - ape: check for ID3 if no usable APE tag was found
655 656
* playlist:
  - cue: support file types "MP3", "AIFF"
657 658
* output:
  - fix noisy playback with conversion and software volume
659

Max Kellermann's avatar
Max Kellermann committed
660
ver 0.17 (2012/06/27)
661 662
* protocol:
  - support client-to-client communication
663
  - "update" and "rescan" need only "CONTROL" permission
664
  - new command "seekcur" for simpler seeking within current song
665
  - new command "config" dumps location of music directory
666
  - add range parameter to command "load"
667
  - print extra "playlist" object for embedded CUE sheets
668
  - new commands "searchadd", "searchaddpl"
669 670
* input:
  - cdio_paranoia: new input plugin to play audio CDs
671
  - curl: enable CURLOPT_NETRC
672
  - curl: non-blocking I/O
673
  - soup: new input plugin based on libsoup
674 675
* tags:
  - RVA2: support separate album/track replay gain
676 677
* decoder:
  - mpg123: implement seeking
678
  - ffmpeg: drop support for pre-0.5 ffmpeg
Max Kellermann's avatar
Max Kellermann committed
679
  - ffmpeg: support WebM
680
  - oggflac: delete this obsolete plugin
681
  - dsdiff: new decoder plugin
682
* output:
683
  - alsa: support DSD-over-USB (dCS suggested standard)
684
  - httpd: support for streaming to a DLNA client
685
  - openal: improve buffer cancellation
686
  - osx: allow user to specify other audio devices
687
  - osx: implement 32 bit playback
688
  - shout: add possibility to set url
689
  - roar: new output plugin for RoarAudio
690
  - winmm: fail if wrong device specified instead of using default device
691 692
* mixer:
  - alsa: listen for external volume changes
693 694
* playlist:
  - allow references to songs outside the music directory
695
  - new CUE parser, without libcue
696
  - soundcloud: new plugin for accessing soundcloud.com
697
* state_file: add option "restore_paused"
698
* cue: show CUE track numbers
699
* allow port specification in "bind_to_address" settings
700
* support floating point samples
701
* systemd socket activation
702
* improve --version output
703
* WIN32: fix renaming of stored playlists with non-ASCII names
704 705


Avuton Olrich's avatar
Avuton Olrich committed
706
ver 0.16.8 (2012/04/04)
707
* fix for libsamplerate assertion failure
708 709
* decoder:
  - vorbis (and others): fix seeking at startup
710
  - ffmpeg: read the "year" tag
711 712
* encoder:
  - vorbis: generate end-of-stream packet before tag
713
  - vorbis: generate end-of-stream packet when playback ends
714
* output:
715
  - jack: check for connection failure before starting playback
716
  - jack: workaround for libjack1 crash bug
717
  - osx: fix stuttering due to buffering bug
718
* fix endless loop in text file reader
719
* update: skip symlinks in path that is to be updated
720 721


Avuton Olrich's avatar
Avuton Olrich committed
722
ver 0.16.7 (2012/02/04)
723 724
* input:
  - ffmpeg: support libavformat 0.7
725
* decoder:
726
  - ffmpeg: support libavformat 0.8, libavcodec 0.9
727
  - ffmpeg: support all MPD tags
728 729
* output:
  - httpd: fix excessive buffering
730
  - openal: force 16 bit playback, as 8 bit doesn't work
731
  - osx: remove sleep call from render callback
732
  - osx: clear render buffer when there's not enough data
733
* fix moving after current song
734 735


Avuton Olrich's avatar
Avuton Olrich committed
736
ver 0.16.6 (2011/12/01)
737 738
* decoder:
  - fix assertion failure when resuming streams
739
  - ffmpeg: work around bogus channel count
740
* encoder:
741
  - flac, null, wave: fix buffer corruption bug
742
  - wave: support packed 24 bit samples
743
* mapper: fix the bogus "not a directory" error message
744
* mapper: check "x" and "r" permissions on music directory
745
* log: print reason for failure
746
* event_pipe: fix WIN32 regression
747
* define WINVER in ./configure
748
* WIN32: autodetect filesystem encoding
749 750


Avuton Olrich's avatar
Avuton Olrich committed
751
ver 0.16.5 (2011/10/09)
752 753 754
* configure.ac
  - disable assertions in the non-debugging build
  - show solaris plugin result correctly
755
  - add option --enable-solaris-output
756
* pcm_format: fix 32-to-24 bit conversion (the "silence" bug)
757 758
* input:
  - rewind: reduce heap usage
759 760
* decoder:
  - ffmpeg: higher precision timestamps
761
  - ffmpeg: don't require key frame for seeking
762
  - fix CUE track seeking
763 764
* output:
  - openal: auto-fallback to mono if channel count is unsupported
765 766 767
* player:
  - make seeking to CUE track more reliable
  - the "seek" command works when MPD is stopped
768
  - restore song position from state file (bug fix)
769
  - fix crash that sometimes occurred when audio device fails on startup
770
  - fix absolute path support in playlists
771
* WIN32: close sockets properly
772
* install systemd service file if systemd is available
773 774


Avuton Olrich's avatar
Avuton Olrich committed
775
ver 0.16.4 (2011/09/01)
776
* don't abort configure when avahi is not found
777
* auto-detect libmad without pkg-config
Max Kellermann's avatar
Max Kellermann committed
778
* fix memory leaks
779
* don't resume playback when seeking to another song while paused
780
* apply follow_inside_symlinks to absolute symlinks
781
* fix playback discontinuation after seeking
782 783
* input:
  - curl: limit the receive buffer size
784
  - curl: implement a hard-coded timeout of 10 seconds
785 786
* decoder:
  - ffmpeg: workaround for semantic API change in recent ffmpeg versions
787
  - flac: validate the sample rate when scanning the tag
788
  - wavpack: obey all decoder commands, stop at CUE track border
789 790
* encoder:
  - vorbis: don't send end-of-stream on flush
791 792
* output:
  - alsa: fix SIGFPE when alsa announces a period size of 0
793
  - httpd: don't warn on client disconnect
794
  - osx: don't drain the buffer when closing
795
  - pulse: fix deadlock when resuming the stream
796
  - pulse: fix deadlock when the stream was suspended
797 798


Avuton Olrich's avatar
Avuton Olrich committed
799
ver 0.16.3 (2011/06/04)
800
* fix assertion failure in audio format mask parser
801
* fix NULL pointer dereference in playlist parser
802
* fix playlist files in base music directory
803
* database: allow directories with just playlists
804
* decoder:
805
  - ffmpeg: support libavcodec 0.7
806 807


Avuton Olrich's avatar
Avuton Olrich committed
808
ver 0.16.2 (2011/03/18)
809 810
* configure.ac:
  - fix bashism in tremor test
811 812
* decoder:
  - tremor: fix configure test
813
  - gme: detect end of song
814 815
* encoder:
  - vorbis: reset the Ogg stream after flush
816 817
* output:
  - httpd: fix uninitialized variable
818
  - httpd: include sys/socket.h
819
  - oss: AFMT_S24_PACKED is little-endian
820
  - oss: disable 24 bit playback on FreeBSD
821 822


Max Kellermann's avatar
Max Kellermann committed
823
ver 0.16.1 (2011/01/09)
824
* audio_check: fix parameter in prototype
825
* add void casts to suppress "result unused" warnings (clang)
826 827
* input:
  - ffado: disable by default
828 829
* decoder:
  - mad: work around build failure on Solaris
830
  - resolve modplug vs. libsndfile cflags/headers conflict
831 832
* output:
  - solaris: add missing parameter to open_cloexec() cal
833
  - osx: fix up audio format first, then apply it to device
834
* player_thread: discard empty chunks while cross-fading
835
* player_thread: fix assertion failure due to early seek
836
* output_thread: fix double lock
837 838


Avuton Olrich's avatar
Avuton Olrich committed
839
ver 0.16 (2010/12/11)
840 841
* protocol:
  - send song modification time to client
842
  - added "update" idle event
843
  - removed the deprecated "volume" command
844
  - added the "findadd" command
845
  - range support for "delete"
846
  - "previous" really plays the previous song
847
  - "addid" with negative position is deprecated
848
  - "load" supports remote playlists (extm3u, pls, asx, xspf, lastfm://)
849
  - allow changing replay gain mode on-the-fly
850
  - omitting the range end is possible
851
  - "update" checks if the path is malformed
852
* archive:
853
  - iso: renamed plugin to "iso9660"
854
  - zip: renamed plugin to "zzip"
855
* input:
856
  - lastfm: obsolete plugin removed
857
  - ffmpeg: new input plugin using libavformat's "avio" library
858
* tags:
Bart Nagel's avatar
Bart Nagel committed
859
  - added tags "ArtistSort", "AlbumArtistSort"
860
  - id3: revised "performer" tag support
861
  - id3: support multiple values
862
  - ape: MusicBrainz tags
863
  - ape: support multiple values
864
* decoders:
865
  - don't try a plugin twice (MIME type & suffix)
866
  - don't fall back to "mad" unless no plugin matches
867
  - ffmpeg: support multiple tags
868
  - ffmpeg: convert metadata to generic format
869
  - ffmpeg: implement the libavutil log callback
870
  - sndfile: new decoder plugin based on libsndfile
871
  - flac: moved CUE sheet support to a playlist plugin
872
  - flac: support streams without STREAMINFO block
873
  - mikmod: sample rate is configurable
874
  - mpg123: new decoder plugin based on libmpg123
Mike Dawson's avatar
Mike Dawson committed
875
  - sidplay: support sub-tunes
876
  - sidplay: implemented songlength database
877
  - sidplay: support seeking
878
  - sidplay: play monaural SID tunes in mono
879
  - sidplay: play mus, str, prg, x00 files
880
  - wavpack: activate 32 bit support
881
  - wavpack: allow more than 2 channels
882
  - mp4ff: rename plugin "mp4" to "mp4ff"
883 884
* encoders:
  - twolame: new encoder plugin based on libtwolame
885 886
  - flac: new encoder plugin based on libFLAC
  - wave: new encoder plugin for PCM WAV format
887 888
* output:
  - recorder: new output plugin for recording radio streams
889
  - alsa: don't recover on CANCEL
890
  - alsa: fill period buffer with silence before draining
891
  - openal: new output plugin
892
  - pulse: announce "media.role=music"
893
  - pulse: renamed context to "Music Player Daemon"
894
  - pulse: connect to server on MPD startup, implement pause
895
  - jack: require libjack 0.100
896
  - jack: don't disconnect during pause
897
  - jack: connect to server on MPD startup
898
  - jack: added options "client_name", "server_name"
899
  - jack: clear ring buffers before activating
900
  - jack: renamed option "ports" to "destination_ports"
901
  - jack: support more than two audio channels
902
  - httpd: bind port when output is enabled
903
  - httpd: added name/genre/website configuration
904
  - httpd: implement "pause"
905
  - httpd: bind_to_address support (including IPv6)
906
  - oss: 24 bit support via OSS4
907
  - win32: new output plugin for Windows Wave
908
  - shout, httpd: more responsive to control commands
909
  - wildcards allowed in audio_format configuration
910
  - consistently lock audio output objects
911 912
* player:
  - drain audio outputs at the end of the playlist
913 914
* mixers:
  - removed support for legacy mixer configuration
915 916
  - reimplemented software volume as mixer+filter plugin
  - per-device software/hardware mixer setting
917 918
* commands:
  - added new "status" line with more precise "elapsed time"
919 920 921
* update:
  - automatically update the database with Linux inotify
  - support .mpdignore files in the music directory
922
  - sort songs by album name first, then disc/track number
923
  - rescan after metadata_to_use change
924
* normalize: upgraded to AudioCompress 2.0
925
  - automatically convert to 16 bit samples
926 927
* replay gain:
  - reimplemented as a filter plugin
928
  - fall back to track gain if album gain is unavailable
929
  - optionally use hardware mixer to apply replay gain
930
  - added mode "auto"
931
  - parse replay gain from APE tags
932
* log unused/unknown block parameters
933
* removed the deprecated "error_file" option
934
* save state when stopped
935
* renamed option "--stdout" to "--stderr"
936
* removed options --create-db and --no-create-db
937
* state_file: save only if something has changed
938
* database: eliminated maximum line length
939
* log: redirect stdout/stderr to /dev/null if syslog is used
940
* set the close-on-exec flag on all file descriptors
941
* pcm_volume, pcm_mix: implemented 32 bit support
942
* support packed 24 bit samples
943
* CUE sheet support
944
* support for MixRamp tags
945
* obey $(sysconfdir) for default mpd.conf location
946
* build with large file support by default
947
* added test suite ("make check")
948
* require GLib 2.12
949
* added libwrap support
950
* make single mode 'sticky'
951 952


953
ver 0.15.17 (2011/??/??)
954 955
* encoder:
  - vorbis: reset the Ogg stream after flush
956 957
* decoders:
  - vorbis: fix tremor support
958 959


Avuton Olrich's avatar
Avuton Olrich committed
960
ver 0.15.16 (2011/03/13)
961 962
* output:
  - ao: initialize the ao_sample_format struct
963
  - jack: fix crash with mono playback
964 965
* encoders:
  - lame: explicitly configure the output sample rate
966
* update: log all file permission problems
967 968


Max Kellermann's avatar
Max Kellermann committed
969
ver 0.15.15 (2010/11/08)
970 971
* input:
  - rewind: fix assertion failure
972 973
* output:
  - shout: artist comes first in stream title
974 975


Avuton Olrich's avatar
Avuton Olrich committed
976
ver 0.15.14 (2010/11/06)
977
* player_thread: fix assertion failure due to wrong music pipe on seek
978
* output_thread: fix assertion failure due to race condition in OPEN
979 980
* input:
  - rewind: fix double free bug
981 982 983
* decoders:
  - mp4ff, ffmpeg: add extension ".m4b" (audio book)

984

Avuton Olrich's avatar
Avuton Olrich committed
985
ver 0.15.13 (2010/10/10)
986
* output_thread: fix race condition after CANCEL command
987 988
* output:
  - httpd: fix random data in stream title
989
  - httpd: MIME type audio/ogg for Ogg Vorbis
990 991
* input:
  - rewind: update MIME not only once
992
  - rewind: enable for MMS
993 994


Max Kellermann's avatar
Max Kellermann committed
995
ver 0.15.12 (2010/07/20)
996 997
* input:
  - curl: remove assertion after curl_multi_fdset()
998 999
* tags:
  - rva2: set "gain", not "peak"
1000 1001
* decoders:
  - wildmidi: support version 0.2.3
1002 1003


Avuton Olrich's avatar
Avuton Olrich committed
1004
ver 0.15.11 (2010/06/14)
1005 1006
* tags:
  - ape: support album artist
1007
* decoders:
1008
  - mp4ff: support tags "album artist", "albumartist", "band"
1009
  - mikmod: fix memory leak
1010
  - vorbis: handle uri==NULL
1011
  - ffmpeg: fix memory leak
1012
  - ffmpeg: free AVFormatContext on error
1013
  - ffmpeg: read more metadata
1014
  - ffmpeg: fix libavformat 0.6 by using av_open_input_stream()
1015
* playlist: emit IDLE_OPTIONS when resetting single mode
1016
* listen: make get_remote_uid() work on BSD
1017 1018


Avuton Olrich's avatar
Avuton Olrich committed
1019
ver 0.15.10 (2010/05/30)
1020 1021
* input:
  - mms: fix memory leak in error handler
1022
  - mms: initialize the "eof" attribute
1023 1024
* decoders:
  - mad: properly calculate ID3 size without libid3tag
1025 1026


Avuton Olrich's avatar
Avuton Olrich committed
1027
ver 0.15.9 (2010/03/21)
1028 1029
* decoders:
  - mad: fix crash when seeking at end of song
1030
  - mpcdec: fix negative shift on fixed-point samples
1031
  - mpcdec: fix replay gain formula with v8
1032
* playlist: fix single+repeat in random mode
1033
* player: postpone song tags during cross-fade
1034 1035


Avuton Olrich's avatar
Avuton Olrich committed
1036
ver 0.15.8 (2010/01/17)
1037 1038
* input:
  - curl: allow rewinding with Icy-Metadata
1039 1040
* decoders:
  - ffmpeg, flac, vorbis: added more flac/vorbis MIME types
1041
  - ffmpeg: enabled libavformat's file name extension detection
1042
* dbUtils: return empty tag value only if no value was found
1043
* decoder_thread: fix CUE track playback
1044
* queue: don't repeat current song in consume mode
1045 1046


Avuton Olrich's avatar
Avuton Olrich committed
1047
ver 0.15.7 (2009/12/27)
1048 1049
* archive:
  - close archive when stream is closed
1050
  - iso, zip: fixed memory leak in destructor
1051 1052
* input:
  - file: don't fall back to parent directory
1053
  - archive: fixed memory leak in error handler
1054 1055
* tags:
  - id3: fix ID3v1 charset conversion
1056
* decoders:
1057
  - eliminate jitter after seek failure
1058
  - ffmpeg: don't try to force stereo
1059
  - wavpack: allow fine-grained seeking
1060
* mixer: explicitly close all mixers on shutdown
1061
* mapper: fix memory leak when playlist_directory is not set
1062
* mapper: apply filesystem_charset to playlists
1063
* command: verify playlist name in the "rm" command
1064
* database: return multiple tag values per song
1065 1066


Avuton Olrich's avatar
Avuton Olrich committed
1067
ver 0.15.6 (2009/11/18)
1068 1069
* input:
  - lastfm: fixed variable name in GLib<2.16 code path
1070
  - input/mms: require libmms 0.4
1071 1072
* archive:
  - zzip: require libzzip 0.13
1073 1074
* tags:
  - id3: allow 4 MB RIFF/AIFF tags
1075 1076
* decoders:
  - ffmpeg: convert metadata
1077
  - ffmpeg: align the output buffer
1078
  - oggflac: rewind stream after FLAC detection
1079
  - flac: fixed CUE seeking range check
1080
  - flac: fixed NULL pointer dereference in CUE code
1081
* output_thread: check again if output is open on PAUSE
1082
* update: delete ignored symlinks from database
1083
* database: increased maximum line length to 32 kB
1084
* sticker: added fallback for sqlite3_prepare_v2()
1085 1086


Avuton Olrich's avatar
Avuton Olrich committed
1087
ver 0.15.5 (2009/10/18)
1088 1089
* input:
  - curl: don't abort if a packet has only metadata
1090
  - curl: fixed endless loop during buffering
1091 1092
* tags:
  - riff, aiff: fixed "limited range" gcc warning
1093 1094
* decoders:
  - flac: fixed two memory leaks in the CUE tag loader
1095
* decoder_thread: change the fallback decoder name to "mad"
1096
* output_thread: check again if output is open on CANCEL
1097
* update: fixed memory leak during container scan
1098 1099


Avuton Olrich's avatar
Avuton Olrich committed
1100
ver 0.15.4 (2009/10/03)
1101 1102
* decoders:
  - vorbis: revert "faster tag scanning with ov_test_callback()"
1103
  - faad: skip assertion failure on large ID3 tags
1104
  - ffmpeg: use the "artist" tag if "author" is not present
1105 1106
* output:
  - osx: fix the OS X 10.6 build
1107 1108


Avuton Olrich's avatar
Avuton Olrich committed
1109
ver 0.15.3 (2009/08/29)
1110 1111
* decoders:
  - vorbis: faster tag scanning with ov_test_callback()
1112 1113
* output:
  - fix stuttering due to uninitialized variable
1114
* update: don't re-read unchanged container files
1115 1116


Avuton Olrich's avatar
Avuton Olrich committed
1117
ver 0.15.2 (2009/08/15)
1118 1119
* tags:
  - ape: check the tag size (fixes integer underflow)
1120
  - ape: added protection against large memory allocations
1121 1122
* decoders:
  - mad: skip ID3 frames when libid3tag is disabled
1123
  - flac: parse all replaygain tags
1124
  - flac: don't allocate cuesheet twice (memleak)
1125 1126
* output:
  - shout: fixed stuck pause bug
1127
  - shout: minimize the unpause latency
1128
* update: free empty path string (memleak)
1129
* update: free temporary string in container scan (memleak)
1130
* directory: free empty directories after removing them (memleak)
1131 1132


Avuton Olrich's avatar
Avuton Olrich committed
1133
ver 0.15.1 (2009/07/15)
Max Kellermann's avatar
Max Kellermann committed
1134
* decoders:
1135
  - flac: fix assertion failure in tag_free() call
1136 1137
* output:
  - httpd: include sys/types.h (fixes Mac OS X)
1138 1139
* commands:
  - don't resume playback when stopping during pause
1140
* database: fixed NULL pointer dereference after charset change
1141
* log: fix double free() bug during shutdown
1142 1143


Avuton Olrich's avatar
Avuton Olrich committed
1144
ver 0.15 (2009/06/23)
Max Kellermann's avatar
Max Kellermann committed
1145 1146
* input:
  - parse Icy-Metadata
1147
  - added support for the MMS protocol
1148
  - hide HTTP password in playlist
1149
  - lastfm: new input plugin for last.fm radio (experimental and incomplete!)
1150
  - curl: moved proxy settings to "input" block
Max Kellermann's avatar
Max Kellermann committed
1151 1152
* tags:
  - support the "album artist" tag
1153
  - support MusicBrainz tags
Max Kellermann's avatar
Max Kellermann committed
1154
  - parse RVA2 tags in mp3 files
1155 1156 1157
  - 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
1158 1159
* decoders:
  - audiofile: streaming support added
1160
  - audiofile: added 24 bit support
Max Kellermann's avatar
Max Kellermann committed
1161 1162
  - modplug: another MOD plugin, based on libmodplug
  - mikmod disabled by default, due to severe security issues in libmikmod
1163
  - sidplay: new decoder plugin for C64 SID (using libsidplay2)
1164 1165
  - fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
    experimental due to shortcomings in libfluidsynth)
1166
  - wildmidi: another decoder plugin for MIDI files (using libwildmidi)
Max Kellermann's avatar
Max Kellermann committed
1167
  - flac: parse stream tags
1168
  - mpcdec: support the new libmpcdec SV8 API
1169
  - added configuration option to disable decoder plugins
1170 1171
  - flac: support embedded cuesheets
  - ffmpeg: updated list of supported formats
Max Kellermann's avatar
Max Kellermann committed
1172
* audio outputs:
1173
  - added option to disable audio outputs by default
1174
  - wait 10 seconds before reopening after play failure
Max Kellermann's avatar
Max Kellermann committed
1175
  - shout: enlarged buffer size to 32 kB
1176
  - null: allow disabling synchronization
1177
  - mvp: fall back to stereo
1178
  - mvp: fall back to 16 bit audio samples
1179
  - mvp: check for reopen errors
1180
  - mvp: fixed default device detection
1181
  - pipe: new audio output plugin which runs a command
1182
  - alsa: better period_time default value for high sample rates
1183
  - solaris: new audio output plugin for Solaris /dev/audio
1184 1185
  - httpd: new audio output plugin for web based streaming, similar to icecast
     but built in.
Max Kellermann's avatar
Max Kellermann committed
1186
* commands:
1187
  - "playlistinfo" and "move" supports a range now
Max Kellermann's avatar
Max Kellermann committed
1188
  - added "sticker database", command "sticker", which allows clients
1189 1190 1191 1192
     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.
1193 1194 1195
* mixers:
  - rewritten mixer code to support multiple mixers
  - new pulseaudio mixer
1196 1197
  - alsa: new mixer_index option supports choosing between multiple
    identically-named controls on a device.
1198 1199 1200 1201
* Add audio archive extraction support:
  - bzip2
  - iso9660
  - zip
1202
* the option "error_file" was removed, all messages are logged into
1203
   "log_file"
Max Kellermann's avatar
Max Kellermann committed
1204
* support logging to syslog
1205
* fall back to XDG music directory if no music_directory is configured
1206
* failure to read the state file is non-fatal
1207
* --create-db starts the MPD daemon instead of exiting
1208
* playlist_directory and music_directory are optional
1209
* playlist: recalculate the queued song after random is toggled
1210
* playlist: don't unpause on delete
1211
* pause when all audio outputs fail to play
1212
* daemon: ignore "user" setting if already running as that user
1213
* listen: fix broken client IP addresses in log
1214
* listen: bind failure on secondary address is non-fatal
1215 1216
* 24/32 bit audio support
* print available protocols in --version
1217
* fill buffer after seeking
1218
* choose the fallback resampler at runtime
1219 1220 1221
* steps taken towards win32 compatibility
* require glib 2.6 or greater
* built-in documentation using doxygen and docbook
1222 1223


Avuton Olrich's avatar
Avuton Olrich committed
1224
ver 0.14.2 (2009/02/13)
1225 1226
* configure.ac:
  - define HAVE_FFMPEG after all checks
1227 1228
* decoders:
  - ffmpeg: added support for the tags comment, genre, year
1229
  - ffmpeg: don't warn of empty packet output
1230
  - ffmpeg: check if the time stamp is valid
1231
  - ffmpeg: fixed seek integer overflow
1232 1233
  - ffmpeg: enable WAV streaming
  - ffmpeg: added TTA support
1234
  - wavpack: pass NULL if the .wvc file fails to open
1235
  - mikmod: call MikMod_Exit() only in the finish() method
1236
  - aac: fix stream metadata
1237 1238
* audio outputs:
  - jack: allocate ring buffers before connecting
1239
  - jack: clear "shutdown" flag on reconnect
1240
  - jack: reduced sleep time to 1ms
1241
  - shout: fixed memory leak in the mp3 encoder
1242
  - shout: switch to blocking mode
1243
  - shout: use libshout's synchronization
1244
  - shout: don't postpone metadata
1245
  - shout: clear buffer before calling the encoder
1246
* mapper: remove trailing slashes from music_directory
1247
* player: set player error when output device fails
1248
* update: recursively purge deleted directories
1249
* update: free deleted subdirectories
1250

Avuton Olrich's avatar
Avuton Olrich committed
1251
ver 0.14.1 (2009/01/17)
1252 1253 1254
* decoders:
  - mp4: support the writer/composer tag
  - id3: strip leading and trailing whitespace from ID3 tags
1255
  - oggvorbis: fix tremor support
1256
  - oggvorbis: disable seeking on remote files
1257 1258 1259 1260 1261 1262 1263 1264
* 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
1265
  - fix assertion failure on "connection refused"
1266
  - fix assertion failure with empty HTTP responses
1267
* corrected the sample calculation in the fallback resampler
1268 1269 1270 1271 1272
* 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
1273 1274 1275 1276 1277 1278 1279
* 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
1280
ver 0.14 (2008/12/25)
1281
* audio outputs:
1282
  - wait 10 seconds before reopening a failed device
1283 1284 1285 1286
  - fifo: new plugin
  - null: new plugin
  - shout: block while trying to connect instead of failing
  - shout: new timeout parameter
1287 1288
  - shout: support mp3 encoding and the shoutcast protocol
  - shout: send silence during pause, so clients don't get disconnected
1289
* decoders:
1290
  - ffmpeg: new plugin
1291
  - wavpack: new plugin
1292
  - aac: stream support added
1293
  - mod: disabled by default due to critical bugs in all libmikmod versions
1294 1295
* commands:
  - "addid" takes optional second argument to specify position
1296
  - "idle" notifies the client when a notable change occurs
1297
* Zeroconf support using Bonjour
1298
* New zeroconf_enabled option so that Zeroconf support can be disabled
1299 1300
* 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
1301
* Support for reading ReplayGain from LAME tags on MP3s
1302 1303 1304 1305 1306 1307 1308 1309
* 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
1310 1311
* symbolic links in the music directory can be disabled; the default
  is to ignore symlinks pointing outside the music directory
1312

1313
ver 0.13.0 (2007/5/28)
1314 1315
* New JACK audio output
* Support for "file" as an alternative to "filename" in search, find, and list
Avuton Olrich's avatar
Avuton Olrich committed
1316
* FLAC 1.1.3 API support
1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328
* 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
1329
* New tagtypes command for retrieving a list of available tag types
1330
* Fix a bug where no ACK was returned if loading a playlist failed
1331
* Fix a bug where db_update in stats would be 0 after initial database creation
1332
* New count command for getting stats on found songs (similar to "find")
1333 1334
* New playlistmove command for moving songs in stored playlists
* New playlistdelete command for deleting songs from stored playlists
1335
* New rename command for renaming stored playlists
1336
* Increased default buffer_before_play from 0% to 10% to prevent skipping
1337 1338
* Lots of bug fixes, cleaned up code, and performance improvements

1339 1340 1341
ver 0.12.2 (2007/3/20)
* Fix a bug where clients could cause MPD to segfault

1342
ver 0.12.1 (2006/10/10)
1343 1344 1345 1346 1347 1348
* 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

1349
ver 0.12.0 (2006/9/22)
1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372
* 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
1373
* Can now specify any supported metadata type or "any" in search, find, and list
1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386
* 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

1387
ver 0.11.5 (2004/11/1)
1388 1389
1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch
from dottedmag)
1390 1391 1392
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
1393 1394
5) Fix a bug when fetching metadata from streams that may cause certain
weirdnesses
1395 1396
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
1397 1398
8) Fix a bug in forgetting to remove leading ' ' in content-type for http
streams
1399 1400
9) Check for ice-name in http headers
10) Be sure the strip all '\n' chars in tags
1401 1402
11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop
errors triggered by arts/libao
1403

1404 1405 1406 1407
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
1408 1409 1410 1411
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
1412 1413 1414 1415 1416 1417 1418 1419
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
1420
6) Updated mpdconf.example from sbh/avuton
1421 1422
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
1423

1424
ver 0.11.2 (2004/7/5) 
1425 1426
1) Work around in computing total time for mp3's whose first valid mpeg frame is
not layer III
1427 1428 1429 1430 1431
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)

1432 1433 1434 1435 1436 1437
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
1438 1439
6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds
the parent directories to the DB
1440

1441
ver 0.11.0 (2004/6/18)
1442 1443 1444
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)
1445 1446
4) audio_output_format option that allows for all audio output to be converted
to a format compatible with any sound card
1447 1448
5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
6) Added "Id" and "Pos" metadata for songs in playlist
1449 1450
7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid,
swapid, deleteid
1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462
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
1463 1464
20) Default port is now 6600
21) Lots of other cleanups and Bugfixes
1465

1466 1467 1468 1469
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
1470 1471
4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC
correctly
1472 1473
5) Fix a segfault in processing faulty mp4 metadata

1474 1475 1476
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
1477 1478 1479 1480
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
1481
5) add --disable-alsa for disabling alsa mixer support
Warren Dukes's avatar
Warren Dukes committed
1482
6) Use select() for a portable usleep()
1483
7) For alsa mixer, default to "Master' element, not first element
1484

Warren Dukes's avatar
Warren Dukes committed
1485 1486
ver 0.10.2 (2004/3/25)
1) Add suport for AAC
1487
2) Substitute '\n' with ' ' in tag info
Warren Dukes's avatar
Warren Dukes committed
1488 1489 1490 1491 1492
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
1493
8) Fix a bug where alsa mixer wasn't detecting volume changes
1494 1495
9) For alsa and software mixer, show volume to be the same as it was set (even
if its not the exact volume)
1496
10) Report bitrate for wave files
1497
11) Compute song length of CBR mp3's more accurately
Warren Dukes's avatar
Warren Dukes committed
1498

1499
ver 0.10.1 (2004/3/7)
1500
1) Check to see if we need to add "-lm" when linking mpd
1501 1502
2) Fix issues with skipping bad frames in an mp3 (this way we get the correct
samplerate and such)
1503
3) Fix crossfading bug with ogg's
1504
4) Updated libmad and libid3tag included w/ source to 0.15.1b
1505

1506
ver 0.10.0 (2004/3/3)
1507 1508 1509 1510 1511 1512 1513 1514 1515 1516
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
1517 1518 1519 1520 1521
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
1522 1523
16) Fix a bug, where one process may segfault, and cause more processes to spawn
w/o killing ones that lost their parent.
1524
17) Fix a bug when the OSS device was unable to fetch the current volume,
1525 1526
it would close the device (when it maybe previously closed by the exact same
code)
1527 1528
18) command.c cleanup by mackstann
19) directory.c and command.c cleanup by tw-nym
1529

Warren Dukes's avatar
Warren Dukes committed
1530 1531
ver 0.9.4 (2004/1/21)
1) Fix a bug where updated tag info wasn't being detected
1532 1533
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
1534
3) Make audio write size configurable via "audio_write_size" config option
1535 1536
4) Tweak output buffer size for connections by detecting the kernel output
buffer size.
Warren Dukes's avatar
Warren Dukes committed
1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551

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
1552 1553
3) Add mixer_control options to configure which mixer control/device mpd
controls
Warren Dukes's avatar
Warren Dukes committed
1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587
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)
1588 1589
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
1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675

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