To find the state of this project's repository at the time of any of these versions, check out the tags.
NEWS 87.2 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 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 1307 1308 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 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 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 1588 1589 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 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644
ver 0.23.8 (not yet released)

ver 0.23.7 (2022/05/09)
* database
  - upnp: support pupnp 1.14
* decoder
  - ffmpeg: fix HLS seeking
  - opus: fix missing song length on high-latency files
* output
  - shout: require at least libshout 2.4.0
* mixer
  - pipewire: fix volume restore
  - software: update volume of disabled outputs
* support libiconv

ver 0.23.6 (2022/03/14)
* protocol
  - support filename "cover.webp" for "albumart" command
  - support "readcomments" and "readpicture" on CUE tracks
* decoder
  - ffmpeg: fix end-of-file check (update stuck at empty files)
  - opus: fix "readpicture" on Opus files
* output
  - pipewire: fix crash bug if setting volume before playback starts
  - wasapi: fix resume after pause

ver 0.23.5 (2021/12/01)
* protocol
  - support relative offsets for "searchadd"
  - fix "searchaddpl" bug (bogus error "Bad position")
* database
  - upnp: fix crash bug
* tags
  - fix MixRamp support
* migrate to PCRE2
* GCC 12 build fixes

ver 0.23.4 (2021/11/11)
* protocol
  - add optional position parameter to "searchaddpl"
* decoder
  - ffmpeg: support libavcodec 59
* output
  - alsa: add option "thesycon_dsd_workaround" to work around device bug
* fix crash on debug builds if startup fails
* systemd
  - remove "RuntimeDirectory" directive because it caused problems
  - ignore the "pid_file" setting if started as systemd service
* Windows
  - enable the "openmpt" decoder plugin

ver 0.23.3 (2021/10/31)
* protocol
  - add optional position parameter to "add" and "playlistadd"
  - allow range in "playlistdelete"
* database
  - fix scanning files with question mark in the name
  - inotify: fix use-after-free bug
* output
  - alsa: add option "stop_dsd_silence" to work around DSD DAC noise
* macOS: fix libfmt related build failure
* systemd: add "RuntimeDirectory" directive

ver 0.23.2 (2021/10/22)
* protocol
  - fix "albumart" timeout bug
* input
  - nfs: fix playback bug
* output
  - pipewire: send artist and title to PipeWire
  - pipewire: DSD support
* neighbor
  - mention failed plugin name in error message
* player
  - fix cross-fade regression
* fix crash with libfmt versions older than 7

ver 0.23.1 (2021/10/19)
* protocol
  - use decimal notation instead of scientific notation
  - "load" supports relative positions
* output
  - emit "mixer" idle event when replay gain changes volume
  - pipewire: emit "mixer" idle events on external volume change
  - pipewire: attempt to change the graph sample rate
  - snapcast: fix time stamp bug which caused "Failed to get chunk"
* fix libfmt linker problems
* fix broken password authentication

ver 0.23 (2021/10/14)
* protocol
  - new command "getvol"
  - show the audio format in "playlistinfo"
  - support "listfiles" with arbitrary storage plugins
  - support relative positions in "addid"
  - fix relative positions in "move" and "moveid"
  - add "position" parameter to "findadd" and "searchadd"
  - add position parameter to "load"
* database
  - proxy: require MPD 0.20 or later
  - proxy: require libmpdclient 2.11 or later
  - proxy: split search into chunks to avoid exceeding the output buffer
  - simple: add option to hide CUE target songs
  - upnp: support libnpupnp instead of libupnp
* archive
  - zzip, iso9660: ignore file names which are invalid UTF-8
* decoder
  - openmpt: new plugin
  - wavpack: fix WVC file support
* player
  - do not cross-fade songs shorter than 20 seconds
* output
  - oss: support DSD over PCM
  - pipewire: new plugin
  - snapcast: new plugin
* tags
  - new tags "ComposerSort", "Ensemble", "Movement", "MovementNumber", and "Location"
* split permission "player" from "control"
* add option "host_permissions"
* new build-time dependency: libfmt

ver 0.22.11 (2021/08/24)
* protocol
  - fix "albumart" crash
* filter
  - ffmpeg: pass "channel_layout" instead of "channels" to buffersrc
  - ffmpeg: fix "av_buffersink_get_frame() failed: Resource temporarily unavailable"
  - ffmpeg: support double-precision samples (by converting to single precision)
* Android
  - build with NDK r23
  - playlist_directory defaults to "/sdcard/Android/data/org.musicpd/files/playlists"

ver 0.22.10 (2021/08/06)
* protocol
  - support "albumart" for virtual tracks in CUE sheets
* database
  - simple: fix crash bug
  - simple: fix absolute paths in CUE "as_directory" entries
  - simple: prune CUE entries from database for non-existent songs
* input
  - curl: fix crash bug after stream with Icy metadata was closed by peer
  - tidal: remove defunct unmaintained plugin
* tags
  - fix crash caused by bug in TagBuilder and a few potential reference leaks
* output
  - httpd: fix missing tag after seeking into a new song
  - oss: fix channel order of multi-channel files
* mixer
  - alsa: fix yet more rounding errors

ver 0.22.9 (2021/06/23)
* database
  - simple: load all .mpdignore files of all parent directories
* tags
  - fix "readcomments" and "readpicture" on remote files with ID3 tags
* decoder
  - ffmpeg: support the tags "sort_album", "album-sort", "artist-sort"
  - ffmpeg: fix build failure with FFmpeg 3.4
* Android
  - fix auto-start on boot in Android 8 or later
* Windows
  - fix build failure with SQLite

ver 0.22.8 (2021/05/22)
* fix crash bug in "albumart" command (0.22.7 regression)

ver 0.22.7 (2021/05/19)
* protocol
  - don't use glibc extension to parse time stamps
  - optimize the "albumart" command
* input
  - curl: send user/password in the first request, save one roundtrip
* decoder
  - ffmpeg: fix build problem with FFmpeg 3.4
  - gme: support RSN files
* storage
  - curl: don't use glibc extension
* database
  - simple: fix database corruption bug
* output
  - fix crash when pausing with multiple partitions
  - jack: enable on Windows
  - httpd: send header "Access-Control-Allow-Origin: *"
  - wasapi: add algorithm for finding usable audio format
  - wasapi: use default device only if none was configured
  - wasapi: add DoP support

ver 0.22.6 (2021/02/16)
* fix missing tags on songs in queue

ver 0.22.5 (2021/02/15)
* protocol
  - error for malformed ranges instead of ignoring silently
  - better error message for open-ended range with "move"
* database
  - simple: fix missing CUE sheet metadata in "addid" command
* tags
  - id: translate TPE3 to Conductor, not Performer
* archive
  - iso9660: another fix for unaligned reads
* output
  - httpd: error handling on Windows improved
  - pulse: fix deadlock with "always_on"
* Windows:
  - enable https:// support (via Schannel)
* Android
  - work around "Permission denied" on mpd.conf

ver 0.22.4 (2021/01/21)
* protocol
  - add command "binarylimit" to allow larger chunk sizes
  - fix "readpicture" on 32 bit machines
  - show duration and tags of songs in virtual playlist (CUE) folders
* storage
  - curl: fix several WebDAV protocol bugs
* decoder
  - dsdiff: apply padding to odd-sized chunks
* filter
  - ffmpeg: detect the output sample format
* output
  - moveoutput: fix always_on and tag lost on move
* Android
  - enable https:// support (via OpenSSL)

ver 0.22.3 (2020/11/06)
* playlist
  - add option "as_directory", making CUE file expansion optional
* storage
  - curl: fix crash bug
* filter
  - fix garbage after "Audio format not supported by filter" message
  - ffmpeg: support planar output
  - ffmpeg: support sample formats other than 16 bit

ver 0.22.2 (2020/10/28)
* database
  - simple: purge songs and virtual directories for unavailable plugins
    on update
* input
  - qobuz/tidal: fix protocol errors due to newlines in error messages
  - smbclient: disable by default due to libsmbclient crash bug
* playlist
  - soundcloud: fix protocol errors due to newlines in error messages
* state_file: save on shutdown

ver 0.22.1 (2020/10/17)
* decoder
  - opus: apply the OpusHead output gain even if there is no EBU R128 tag
  - opus: fix track/album ReplayGain fallback
* output
  - alsa: don't deadlock when the ALSA driver is buggy
  - jack, pulse: reduce the delay when stopping or pausing playback
* playlist
  - cue: fix two crash bugs
* state_file: fix the state_file_interval setting

ver 0.22 (2020/09/23)
* protocol
  - "findadd"/"searchadd"/"searchaddpl" support the "sort" and
    "window" parameters
  - add command "readpicture" to download embedded pictures
  - command "moveoutput" moves an output between partitions
  - command "delpartition" deletes a partition
  - show partition name in "status" response
* tags
  - new tags "Grouping" (for ID3 "TIT1"), "Work" and "Conductor"
* input
  - curl: support "charset" parameter in URI fragment
  - ffmpeg: allow partial reads
  - io_uring: new plugin for local files on Linux (using liburing)
  - smbclient: close unused SMB/CIFS connections
* database
  - upnp: drop support for libupnp versions older than 1.8
* playlist
  - cue: integrate contents in database
* decoder
  - ffmpeg: support RTSP
  - mad: remove option "gapless", always do gapless
  - sidplay: add option "default_genre"
  - sidplay: map SID name field to "Album" tag
  - sidplay: add support for new song length format with libsidplayfp 2.0
  - vorbis, opus: improve seeking accuracy
* playlist
  - flac: support reading CUE sheets from remote FLAC files
* filter
  - ffmpeg: new plugin based on FFmpeg's libavfilter library
  - hdcd: new plugin based on FFmpeg's "af_hdcd" for HDCD playback
  - volume: convert S16 to S24 to preserve quality and reduce dithering noise
  - dsd: add integer-only DSD to PCM converter
* output
  - jack: add option "auto_destination_ports"
  - jack: report error details
  - pulse: add option "media_role"
  - solaris: support S8 and S32
* lower the real-time priority from 50 to 40
* switch to C++17
  - GCC 8 or clang 5 (or newer) recommended

ver 0.21.26 (2020/09/21)
* database
  - inotify: obey ".mpdignore" files
* output
  - osx: fix crash bug
  - sles: support floating point samples
* archive
  - bzip2: fix crash on corrupt bzip2 file
  - bzip2: flush output at end of input file
  - iso9660: fix unaligned reads
  - iso9660: support seeking
  - zzip: fix crash on corrupt ZIP file
* decoder
  - ffmpeg: remove "rtsp://" from the list of supported protocols
  - ffmpeg: add "hls+http://" to the list of supported protocols
  - opus: support the gain value from the Opus header
  - sndfile: fix lost samples at end of file
* fix "single" mode bug after resuming playback
* the default log_level is "default", not "info"

ver 0.21.25 (2020/07/06)
* protocol:
  - fix crash when using "rangeid" while playing
* database
  - simple: automatically scan new mounts
  - upnp: fix compatibility with Plex DLNA
* storage
  - fix disappearing mounts after mounting twice
  - udisks: fix reading ".mpdignore"
* input
  - file: detect premature end of file
  - smbclient: don't send credentials to MPD clients
* decoder
  - opus: apply pre-skip and end trimming
  - opus: fix memory leak
  - opus: fix crash bug
  - vorbis: fix crash bug
* output
  - osx: improve sample rate selection
  - osx: fix noise while stopping
* neighbor
  - upnp: fix crash during shutdown
* Windows/Android:
  - fix Boost detection after breaking change in Meson 0.54

ver 0.21.24 (2020/06/10)
* protocol
  - "tagtypes" requires no permissions
* database
  - simple: fix crash when mounting twice
* decoder
  - modplug: fix Windows build failure
  - wildmidi: attempt to detect WildMidi using pkg-config
  - wildmidi: fix Windows build failure
* player
  - don't restart current song if seeking beyond end
* Android
  - enable the decoder plugins GME, ModPlug and WildMidi
  - fix build failure with Android NDK r21
* Windows
  - fix stream playback
  - enable the decoder plugins GME, ModPlug and WildMidi
  - work around Meson bug breaking the Windows build with GCC 10
* fix unit test failure

ver 0.21.23 (2020/04/23)
* protocol
  - add tag fallback for AlbumSort
* storage
  - curl: fix corrupt "href" values in the presence of XML entities
  - curl: unescape "href" values
* input
  - nfs: fix crash bug
  - nfs: fix freeze bug on reconnect
* decoder
  - gme: adapt to API change in the upcoming version 0.7.0
* output
  - alsa: implement channel mapping for 5.0 and 7.0
* player
  - drain outputs at end of song in "single" mode
* Windows
  - fix case insensitive search

ver 0.21.22 (2020/04/02)
* database
  - simple: optimize startup
* input
  - curl: fix streaming errors on Android
* playlist
  - rss: support MIME type application/xml
* mixer
  - android: new mixer plugin for "sles" output
* Android
  - TV support
* Windows
  - fix time zone offset check
* fix build failures with uClibc-ng

ver 0.21.21 (2020/03/19)
* configuration
  - fix bug in "metadata_to_use" setting
* playlist
  - asx, xspf: fix corrupt tags in the presence of XML entities
* archive
  - iso9660: skip empty file names to work around libcdio bug
* decoder
  - gme: ignore empty tags
* output
  - solaris: port to NetBSD
* raise default "max_connections" value to 100

ver 0.21.20 (2020/02/16)
* decoder
  - audiofile, ffmpeg, sndfile: handle MIME type "audio/wav"
  - ffmpeg: fix playback of AIFF and TTA
  - vorbis, opus: fix seeking in small files
* fix backwards seeking on ARM (and other non-x86 CPUs)

ver 0.21.19 (2020/01/17)
* configuration
  - allow overriding top-level settings in includes
* output
  - pulse: obey Pulse's maximum sample rate (fixes DSD128 playback)
* fix build failure with clang 10
* fix build failure with Android NDK r20

ver 0.21.18 (2019/12/24)
* protocol
  - work around Mac OS X bug in the ISO 8601 parser
* output
  - alsa: fix hang bug with ALSA "null" outputs
* storage
  - curl: fix crash bug
* drop support for CURL versions older than 7.32.0
* reduce unnecessary CPU wakeups

ver 0.21.17 (2019/12/16)
* protocol
  - relax the ISO 8601 parser: allow omitting field separators, the
    time of day and the "Z" suffix
* archive
  - zzip: improve error reporting
* outputs
  - jack: mark ports as terminal
  - shout: declare metadata as UTF-8
* fix build failure with -Ddatabase=false

ver 0.21.16 (2019/10/16)
* queue
  - fix relative destination offset when moving a range
* storage
  - curl: request the "resourcetype" property to fix database update
  - curl: URL-encode more paths
  - curl: follow redirects for collections without trailing slash
* update
  - fix crash when music_directory is not a directory
* fix build with iconv() instead of ICU

ver 0.21.15 (2019/09/25)
* decoder
  - dsdiff, dsf: fix displayed bit rate
  - mpcdec: fix bogus ReplayGain values
* output
  - solaris: fix build with glibc 2.30

ver 0.21.14 (2019/08/21)
* decoder
  - sidplay: show track durations in database
  - sidplay: convert tag values from Windows-1252 charset
  - sidplay: strip text from "Date" tag
* player
  - fix crash after song change
  - fix seek position after restarting the decoder
* protocol
  - include command name in error responses

ver 0.21.13 (2019/08/06)
* input
  - cdio_paranoia: require libcdio-paranoia 10.2+0.93+1
* decoder
  - mad: fix crackling sound (0.21.12 regression)
* output
  - jack: improved Windows compatibility

ver 0.21.12 (2019/08/03)
* decoder
  - mad: update bit rate after seeking
  - mad: fix several bugs preventing the plugin from decoding the last frame
  - opus: ignore case in replay gain tag names
  - opus, vorbis: decode the "end of stream" packet
* output
  - jack: fix mono-to-stereo conversion
* player
  - don't restart unseekable song after failed seek attempt
* Windows
  - support backslash in relative URIs loaded from playlists

ver 0.21.11 (2019/07/03)
* input
  - tidal: deprecated because Tidal has changed the protocol
* decoder
  - wildmidi: log error if library initialization fails
* output
  - alsa: fix busy loop while draining
  - alsa: fix missing drain call
  - alsa: improve xrun-avoiding silence generator
  - alsa: log when generating silence due to slow decoder
  - alsa, osx: fix distortions with DSD_U32 and DoP on 32 bit CPUs
* protocol
  - fix "list" with multiple "group" levels

ver 0.21.10 (2019/06/05)
* decoder
  - opus: fix duplicate tags
* output
  - httpd: reject some well-known URIs
* fix crash bug (0.21.9 regression)

ver 0.21.9 (2019/05/20)
* input
  - buffer: fix deadlock bug
* Android
  - fix crash on ARMv7
  - request storage permission on Android 6+
* fix spurious "single" mode bug

ver 0.21.8 (2019/04/23)
* input
  - smbclient: download to buffer instead of throttling transfer
* output
  - httpd: add missing mutex lock
  - httpd: fix use-after-free bug
* playlist
  - soundcloud: fix "Unsupported URI scheme" (0.21.6 regression)
* fix Bonjour bug
* fix build failure with GCC 9
* fix build failure with -Ddatabase=false
* systemd: add user socket unit
* doc: "list file" is deprecated

ver 0.21.7 (2019/04/03)
* input
  - qobuz/tidal: scan tags when loading a playlist
* require Meson 0.49.0 for native libgcrypt-config support
* fix build failure with -Dlocal_socket=false
* Haiku
  - fix build
  - add version info

ver 0.21.6 (2019/03/17)
* protocol
  - allow loading playlists specified as absolute filesystem paths
  - fix negated filter expressions with multiple tag values
  - fix "list" with filter expression
  - omit empty playlist names in "listplaylists"
* input
  - cdio_paranoia: fix build failure due to missing #include
* decoder
  - opus: fix replay gain when there are no other tags
  - opus: fix seeking to beginning of song
  - vorbis: fix Tremor conflict resulting in crash
* output
  - pulse: work around error with unusual channel count
  - osx: fix build failure
* playlist
  - flac: fix use-after-free bug
* support abstract sockets on Linux
* Windows
  - remove the unused libwinpthread-1.dll dependency
* Android
  - enable SLES power saving mode

ver 0.21.5 (2019/02/22)
* protocol
  - fix deadlock in "albumart" command
  - fix "tagtypes disable" command
* database
  - simple: fix assertion failure
  - fix assertion failures with mount points
* storage
  - udisks: fix "AlreadyMounted" error
  - udisks: use relative path from mount URI
  - fix memory leak
* input
  - buffer: fix crash bug when playing remote WAV file
* tags
  - ape: map "Album Artist"
* output
  - shout: add support for TLS
* mixer
  - pulse: add "scale_volume" setting

ver 0.21.4 (2019/01/04)
* database
  - inotify: fix crash bug "terminate called after throwing ..."
  - upnp: implement "list ... group"
* output
  - httpd: declare protocol "HTTP/1.1" instead of "ICY"
* remove libwrap support
* Windows
  - fix "Failed to accept connection: unknown error"
* fix Haiku build

ver 0.21.3 (2018/11/16)
* output
  - alsa: fix crash bug
  - alsa: fix stuttering at start of playback
  - alsa: fix discarded samples at end of song
  - alsa: clear error after reopening device
* log: default to journal if MPD was started as systemd service

ver 0.21.2 (2018/11/12)
* protocol
  - operator "=~" matches a regular expression
  - operator "contains" matches substrings
* decoder
  - ffmpeg: require FFmpeg 3.1 or later
  - ffmpeg: fix broken sound with certain codecs
* output
  - alsa: fix high CPU usage with dmix
  - httpd: fix three crash bugs
* mixer
  - alsa: fix more rounding errors
* fix zlib support

ver 0.21.1 (2018/11/04)
* protocol
  - allow escaping quotes in filter expressions
  - operator "==" never searches substrings in filter expressions
* decoder
  - ffmpeg: fix build failure with non-standard FFmpeg installation path
  - flac: fix linker failure when building without FLAC support
* encoder
  - vorbis: fix linker failure when building without Vorbis decoder
* fix build failure on Linux-PowerPC
* fix build failure on FreeBSD
* eliminate DLL dependencies on Windows
* add warning about buggy Boost version 1.67
* require Meson 0.47.2 because a Meson 0.47.1 bug breaks our build

ver 0.21 (2018/10/31)
* configuration
  - add "include" directive, allows including config files
  - incremental "metadata_to_use" setting
* protocol
  - "tagtypes" can be used to hide tags
  - "find" and "search" can sort
  - "outputs" prints the plugin name
  - "outputset" sets runtime attributes
  - close connection when client sends HTTP request
  - new filter syntax for "find"/"search" etc. with negation
* database
  - simple: scan audio formats
  - proxy: require libmpdclient 2.9
  - proxy: forward `sort` and `window` to server
* player
  - hard-code "buffer_before_play" to 1 second, independent of audio format
  - "one-shot" single mode
* input
  - curl: download to buffer instead of throttling transfer
  - qobuz: new plugin to play Qobuz streams
  - tidal: new plugin to play Tidal streams
* tags
  - new tags "OriginalDate", "MUSICBRAINZ_WORKID"
* decoder
  - ffmpeg: require at least version 11.12
  - gme: try loading m3u sidecar files
  - hybrid_dsd: new decoder plugin
  - mad: move "gapless_mp3_playback" setting to "decoder" block
  - mikmod: require at least version 3.2
  - pcm: support audio/L24 (RFC 3190)
  - sidplay: support basic and kernal rom (libsidplayfp)
* resampler
  - soxr: flush resampler at end of song
* output
  - alsa: non-blocking mode
  - alsa: change "dop" and "allowed_formats" settings at runtime
  - ao: fix crash bug due to partial frames
  - shout: support the Shine encoder plugin
  - sndio: remove support for the broken RoarAudio sndio emulation
  - osx: initial support for DSD over PCM
  - roar: removed
  - httpd_output: support for unix sockets
* mixer
  - sndio: new mixer plugin
* encoder
  - opus: support for sending metadata using ogg stream chaining
* listen on $XDG_RUNTIME_DIR/mpd/socket by default
* append hostname to Zeroconf service name
* systemd watchdog support
* require GCC 6
* build with Meson instead of autotools
* use GTest instead of cppunit

ver 0.20.23 (2018/10/29)
* protocol
  - emit "player" idle event when restarting the current song
* fix broken float to s32 conversion
* new clang crash bug workaround

ver 0.20.22 (2018/10/23)
* protocol
  - add tag fallbacks for AlbumArtistSort, ArtistSort
  - fix empty string filter on fallback tags
  - "count group ..." can print an empty group
  - fix broken command "list ... group"
* storage
  - curl: URL-encode paths
* decoder
  - fluidsynth: adapt to API change in version 2.0
* Android
  - now runs as a service
  - add button to start/stop MPD
  - add option to auto-start on boot
* work around clang bug leading to crash
* install the SVG icon

ver 0.20.21 (2018/08/17)
* database
  - proxy: add "password" setting
  - proxy: support tags "ArtistSort", "AlbumArtistSort", "AlbumSort"
  - simple: allow .mpdignore comments only at start of line
* output
  - httpd: remove broken DLNA support code
* playlist
  - cue: support file type declaration "FLAC" (non-standard)
* URI schemes are case insensitive
* Android, Windows
  - enable the "curl" storage plugin

ver 0.20.20 (2018/05/22)
* protocol
  - fix "modified-since" filter regression
* output
  - pulse: cork stream when paused due to "single" mode
* decoder
  - dsdiff, dsf: support more MIME types
  - dsdiff, dsf: allow 4 MB ID3 tags
  - opus: support R128_ALBUM_GAIN tag
* Android, Windows
  - enable the "proxy" database plugin

ver 0.20.19 (2018/04/26)
* protocol
  - validate absolute seek time, reject negative values
* database
  - proxy: fix "search already in progress" errors
  - proxy: implement "list ... group"
* input
  - mms: fix lockup bug and a crash bug
* decoder
  - ffmpeg: fix av_register_all() deprecation warning (FFmpeg 4.0)
* player
  - fix spurious "Not seekable" error when switching radio streams
* macOS: fix crash bug

ver 0.20.18 (2018/02/24)
* input
  - curl: allow authentication methods other than "Basic"
* decoder
  - flac: improve seeking precision
* fix gapless CUE song transitions
* Android, Windows
  - enable the NFS storage plugin

ver 0.20.17 (2018/02/11)
* output
  - alsa: fix crash bug with 8 channels
* mixer
  - alsa: fix rounding error at volume 0
* fix real-time and idle scheduling with Musl
* Android
  - fix compatibility with Android 4.0

ver 0.20.16 (2018/02/03)
* output
  - pulse: fix crash during auto-detection
* database
  - simple: fix search within mount points
  - upnp: enable IPv6
* archive
  - iso9660: libcdio 2.0 compatibility
* fix crash in debug build on Haiku and other operating systems

ver 0.20.15 (2018/01/05)
* queue: fix crash after seek failure
* resampler
  - soxr: clear internal state after manual song change
* state file
  - make mount point restore errors non-fatal
  - fix crash when restoring mounts with incompatible database plugin
* Android
  - build without Ant
  - fix for SIGSYS crash

ver 0.20.14 (2018/01/01)
* database
  - simple: fix file corruption in the presence of mount points
* archive
  - bz2: fix deadlock
  - reduce lock contention, fixing lots of xrun problems
* fix Solaris build failure

ver 0.20.13 (2017/12/18)
* output
  - osx: set up ring buffer to hold at least 100ms
* mixer
  - alsa: fix rounding errors
* database
  - simple: don't purge mount points on update/rescan
  - simple: fix "mount" bug caused by bad compiler optimization
  - simple: fix "lsinfo" into mount points
  - upnp: work around libupnp 1.6.24 API breakage
* queue: fix spuriously misplaced prioritized songs
* save and restore mountpoints within the state file
* include Windows cross-build script in source tarball
* fix Windows build failures

ver 0.20.12 (2017/11/25)
* database
  - upnp: adapt to libupnp 1.8 API changes
* input
  - cdio_paranoia, ffmpeg, file, smbclient: reduce lock contention,
    fixing lots of xrun problems
  - curl: fix seeking
* decoder
  - ffmpeg: fix GCC 8 warning
  - vorbis: fix Tremor support
* player
  - log message when decoder is too slow
* encoder
  - vorbis: default to quality 3
* output
  - fix hanging playback with soxr resampler
  - httpd: flush encoder after tag; fixes corrupt Vorbis stream

ver 0.20.11 (2017/10/18)
* storage
  - curl: support Content-Type application/xml
* decoder
  - ffmpeg: more reliable song duration
  - gme: fix track numbering
* improve random song order when switching songs manually
* fix case insensitive search without libicu
* fix Unicode file names in playlists on Windows
* fix endless loop when accessing malformed file names in ZIP files

ver 0.20.10 (2017/08/24)
* decoder
  - ffmpeg: support MusicBrainz ID3v2 tags
* tags
  - aiff: fix FORM chunk size endianess (is big-endian)
* mixer
  - osx: add a mixer for OSX.
* fix crash when resuming playback before decoder is ready
* fix crash on Windows

ver 0.20.9 (2017/06/04)
* decoder
  - ffmpeg: support *.adx
* fix byte order detection on FreeBSD/aarch64
* fix more random crashes when compiled with clang

ver 0.20.8 (2017/05/19)
* output
  - osx: fix build failure due to missing "noexcept"
* playlist
  - m3u: support MIME type `audio/mpegurl`
* fix build failure with GCC 4.x

ver 0.20.7 (2017/05/15)
* database
  - simple: fix false positive directory loop detection with NFS
* enforce a reasonable minimum audio_buffer_size setting
* cap buffer_before_play at 80% to prevent deadlock
* fix random crashes when compiled with clang

ver 0.20.6 (2017/03/10)
* input
  - curl: fix headers after HTTP redirect to Shoutcast server
* decoder
  - ffmpeg: re-enable as fallback
  - mpcdec: fix crash (division by zero) after seeking
  - sidplay: make compatible with libsidplayfp < 1.8
* fix stream tags after automatic song change
* workaround for GCC 4.9.4 / libstdc++ bug (build failure)

ver 0.20.5 (2017/02/20)
* tags
  - id3: fix memory leak on corrupt ID3 tags
* decoder
  - sidplay: don't require libsidutils when building with libsidplayfp
* output
  - httpd: fix two buffer overflows in IcyMetaData length calculation
* mixer
  - alsa: fix crash bug

ver 0.20.4 (2017/02/01)
* input
  - nfs: fix freeze after reconnect
* output
  - sndio: work around a libroar C++ incompatibility
* workaround for GCC 4.9 "constexpr" bug
* fix FreeBSD build failure

ver 0.20.3 (2017/01/25)
* protocol
  - "playlistadd" creates new playlist if it does not exist, as documented
* database
  - proxy: fix error "terminate called after throwing ..."
  - proxy: make connect errors during startup non-fatal
* neighbor
  - upnp: fix premature expiry
* replay gain: don't reset ReplayGain levels when unpausing playback
* silence surround channels when converting from stereo
* use shortcuts such as "dsd64" in log messages

ver 0.20.2 (2017/01/15)
* input
  - alsa: fix crash bug
  - alsa: fix buffer overruns
* decoder
  - flac: add options "probesize" and "analyzeduration"
* resampler
  - libsamplerate: reset state after seeking
* output
  - fix static noise after changing to a different audio format
  - alsa: fix the DSD_U32 sample rate
  - alsa: fix the DSD_U32 byte order
  - alsa: support DSD_U16
  - recorder: fix error "Failed to create : No such file or directory"
* playlist
  - cue: fix skipping songs

ver 0.20.1 (2017/01/09)
* input
  - curl: fix crash bug
  - curl: fix freeze bug
* decoder
  - wavpack: fix crash bug
* storage
  - curl: new storage plugin for WebDAV (work in progress)
* mixer
  - alsa: normalize displayed volume according to human perception
* fix crash with volume_normalization enabled

ver 0.20 (2017/01/04)
* protocol
  - "commands" returns playlist commands only if playlist_directory configured
  - "search"/"find" have a "window" parameter
  - report song duration with milliseconds precision
  - "sticker find" can match sticker values
  - drop the "file:///" prefix for absolute file paths
  - add range parameter to command "plchanges" and "plchangesposid"
  - send verbose error message to client
* input
  - curl: fix memory leak
* tags
  - ape, ogg: drop support for non-standard tag "album artist"
    affected filetypes: vorbis, flac, opus & all files with ape2 tags
    (most importantly some mp3s)
  - id3: remove the "id3v1_encoding" setting; by definition, all ID3v1 tags
    are ISO-Latin-1
  - ape: support APE replay gain on remote files
  - read ID3 tags from NFS/SMB
* decoder
  - improved error logging
  - report I/O errors to clients
  - ffmpeg: support ReplayGain and MixRamp
  - ffmpeg: support stream tags
  - gme: add option "accuracy"
  - gme: provide the TRACK tag
  - gme: faster scanning
  - mad: reduce memory usage while scanning tags
  - mpcdec: read the bit rate
  - pcm: support audio/L16 (RFC 2586) and audio/x-mpd-float
  - sidplay: faster scanning
  - wavpack: large file support
  - wavpack: support DSD (WavPack 5)
  - wavpack: archive support
* playlist
  - cue: don't skip pregap
  - embcue: fix last track
  - flac: new plugin which reads the "CUESHEET" metadata block
* output
  - alsa: fix multi-channel order
  - alsa: remove option "use_mmap"
  - alsa: support DSD_U32
  - alsa: disable DoP if it fails
  - jack: reduce CPU usage
  - pulse: set channel map to WAVE-EX
  - recorder: record tags
  - recorder: allow dynamic file names
  - sndio: new output plugin
* mixer
  - null: new plugin
* resampler
  - new block "resampler" in configuration file
    replacing the old "samplerate_converter" setting
  - soxr: allow multi-threaded resampling
* player
  - reset song priority on playback
  - reduce xruns
* write database and state file atomically
* always write UTF-8 to the log file.
* remove dependency on GLib
* support libsystemd (instead of the older libsystemd-daemon)
* database
  - proxy: add TCP keepalive option
* update
  - apply .mpdignore matches to subdirectories
* switch the code base to C++14
  - GCC 4.9 or clang 3.4 (or newer) recommended

ver 0.19.21 (2016/12/13)
* decoder
  - ffmpeg: fix crash bug
* fix unit test failure after recent "setprio" change
* systemd: add user unit

ver 0.19.20 (2016/12/09)
* protocol
  - "setprio" re-enqueues old song if priority has been raised
* decoder
  - ffmpeg: ignore empty packets
  - pcm: fix corruption bug with partial frames (after short read)
  - sidplay: fix playback speed with libsidplayfp
* output
  - winmm: fix 8 bit playback
* fix gcc 7.0 -Wimplicit-fallthrough
* systemd: paranoid security settings

ver 0.19.19 (2016/08/23)
* decoder
  - ffmpeg: bug fix for FFmpeg 3.1 support
  - wildmidi: support libWildMidi 0.4
* output
  - pulse: support 32 bit, 24 bit and floating point playback
* support non-x86 NetBSD
* fix clang 3.9 warnings

ver 0.19.18 (2016/08/05)
* decoder
  - ffmpeg: fix crash with older FFmpeg versions (< 3.0)
  - ffmpeg: log detailed error message
  - ffmpeg: support FFmpeg 3.1
  - sidplay: detect libsidplay2 with pkg-config
  - sidplay: log detailed error message
  - sidplay: read the "date" tag
  - sidplay: allow building with libsidplayfp instead of libsidplay2
* output
  - shout: recognize setting "encoder" instead of "encoding"
* fix memory leak after stream failure
* fix build failure with Boost 1.61
* require gcc 4.7 or newer

ver 0.19.17 (2016/07/09)
* decoder
  - flac: fix assertion failure while seeking
  - flac: fix stream duration indicator
  - fix seek problems in several plugins
* fix spurious seek error "Failed to allocate silence buffer"
* replay gain: fix "replay_gain_handler mixer" setting
* DSD: use 0x69 as silence pattern
* fix use-after-free bug on "close" and "kill"

ver 0.19.16 (2016/06/13)
* faster seeking
* fix system include path order
* add missing DocBook file to tarball

ver 0.19.15 (2016/04/30)
* decoder
  - ffmpeg: support FFmpeg 3.0
  - ffmpeg: use as fallback instead of "mad" if no plugin matches
  - opus: support bigger OpusTags packets
* fix more build failures on non-glibc builds due to constexpr Mutex
* fix build failure due to missing include
* fix unit test on Alpha

ver 0.19.14 (2016/03/18)
* decoder
  - dsdiff: fix off-by-one buffer overflow
  - opus: limit tag size to 64 kB
* archive
  - iso9660: fix buffer overflow
* fix quadratic runtime bug in the tag pool
* fix build failures on non-glibc builds due to constexpr Mutex

ver 0.19.13 (2016/02/23)
* tags
  - aiff, riff: fix ID3 chunk padding
* decoder
  - ffmpeg: support the TAK codec
* fix disappearing duration of remote songs during playback
* initialize supplementary groups with glibc 2.19+

ver 0.19.12 (2015/12/15)
* fix assertion failure on malformed UTF-8 tag
* fix build failure on non-Linux systems
* fix LimitRTTIME in systemd unit file

ver 0.19.11 (2015/10/27)
* tags
  - ape: fix buffer overflow
* decoder
  - ffmpeg: fix crash due to wrong avio_alloc_context() call
  - gme: don't loop forever, fall back to GME's default play length
* encoder
  - flac: fix crash with 32 bit playback
* mixer
  - fix mixer lag after enabling/disabling output

ver 0.19.10 (2015/06/21)
* input
  - curl: fix deadlock on small responses
  - smbclient: fix DFF playback
* decoder
  - ffmpeg: improve seeking accuracy
  - fix stuck stream tags
* encoder
  - opus: fix bogus granulepos
* output
  - fix failure to open device right after booting
* neighbor
  - nfs: fix deadlock when connecting
* fix "single" mode breakage due to queue edits

ver 0.19.9 (2015/02/06)
* decoder
  - dsdiff, dsf: raise ID3 tag limit to 1 MB
* playlist: fix loading duplicate tag types from state file
* despotify: remove defunct plugin
* fix clock integer overflow on OS X
* fix gcc 5.0 warnings
* fix build failure with uClibc
* fix build failure on non-POSIX operating systems
* fix dependency issue on parallel Android build
* fix database/state file saving on Windows

ver 0.19.8 (2015/01/14)
* input
  - curl: fix bug after rewinding from end-of-file
  - mms: reduce delay at the beginning of playback
* decoder
  - dsdiff, dsf: allow ID3 tags larger than 4 kB
  - ffmpeg: support interleaved floating point
* fix clang 3.6 warnings
* fix build failure on NetBSD

ver 0.19.7 (2014/12/17)
* input
  - nfs: fix crash while canceling a failing file open operation
  - nfs: fix memory leak on connection failure
  - nfs: fix reconnect after mount failure
  - nfs: implement mount timeout (60 seconds)
* storage
  - nfs: implement I/O timeout (60 seconds)
* playlist
  - embcue: fix filename suffix detection
  - don't skip non-existent songs in "listplaylist"
* decoder
  - ffmpeg: fix time stamp underflow
* fix memory allocator bug on Windows

ver 0.19.6 (2014/12/08)
* decoder
  - ffmpeg: support FFmpeg 2.5
* fix build failure with musl
* android
  - update libFLAC to 1.3.1
  - update FFmpeg to 2.5

ver 0.19.5 (2014/11/26)
* input
  - nfs: fix crash on connection failure
* archive
  - zzip: fix crash after seeking
* decoder
  - dsdiff, dsf, opus: fix deadlock while seeking
  - mp4v2: remove because of incompatible license

ver 0.19.4 (2014/11/18)
* protocol
  - workaround for buggy clients that send "add /"
* decoder
  - ffmpeg: support opus
  - opus: add MIME types audio/ogg and application/ogg
* fix crash on failed filename charset conversion
* fix local socket detection from uid=0 (root)

ver 0.19.3 (2014/11/11)
* protocol
  - fix "(null)" result string to "list" when AlbumArtist is disabled
* database
  - upnp: fix breakage due to malformed URIs
* input
  - curl: another fix for redirected streams
* decoder
  - audiofile: fix crash while playing streams
  - audiofile: fix bit rate calculation
  - ffmpeg: support opus
  - opus: fix bogus duration on streams
  - opus: support chained streams
  - opus: improved error logging
* fix distorted audio with soxr resampler
* fix build failure on Mac OS X with non-Apple compilers

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

ver 0.19.1 (2014/10/19)
* input
  - mms: fix deadlock bug
* playlist
  - extm3u: fix Extended M3U detection
  - m3u, extm3u, cue: fix truncated lines
* fix build failure on Mac OS X
* add missing file systemd/mpd.socket to tarball

ver 0.19 (2014/10/10)
* protocol
  - new commands "addtagid", "cleartagid", "listfiles", "listmounts",
    "listneighbors", "mount", "rangeid", "unmount"
  - "lsinfo" and "readcomments" allowed for remote files
  - "listneighbors" lists file servers on the local network
  - "playlistadd" supports file:///
  - "idle" with unrecognized event name fails
  - "list" on album artist falls back to the artist tag
  - "list" and "count" allow grouping
  - new "search"/"find" filter "modified-since"
  - "seek*" allows fractional position
  - close connection after syntax error
* database
  - proxy: forward "idle" events
  - proxy: forward the "update" command
  - proxy: copy "Last-Modified" from remote directories
  - simple: compress the database file using gzip
  - upnp: new plugin
  - cancel the update on shutdown
* storage
  - music_directory can point to a remote file server
  - nfs: new plugin
  - smbclient: new plugin
* playlist
  - cue: fix bogus duration of the last track
  - cue: restore CUE tracks from state file
  - soundcloud: use https instead of http
  - soundcloud: add default API key
* archive
  - read tags from songs in an archive
* input
  - alsa: new input plugin
  - curl: options "verify_peer" and "verify_host"
  - ffmpeg: update offset after seeking
  - ffmpeg: improved error messages
  - mms: non-blocking I/O
  - nfs: new input plugin
  - smbclient: new input plugin
* filter
  - volume: improved software volume dithering
* decoder:
  - vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song
  - audiofile: support scanning remote files
  - audiofile: log libaudiofile errors
  - dsdiff, dsf: report bit rate
  - dsdiff, dsf: implement seeking
  - dsf: support DSD512
  - dsf: support multi-channel files
  - dsf: fix big-endian bugs
  - dsf: fix noise at end of malformed file
  - mpg123: support ID3v2, ReplayGain and MixRamp
  - sndfile: support scanning remote files
  - sndfile: support tags "comment", "album", "track", "genre"
  - sndfile: native floating point playback
  - sndfile: optimized 16 bit playback
  - mp4v2: support playback of MP4 files.
* encoder:
  - shine: new encoder plugin
* output
  - alsa: support native DSD playback
  - alsa: rename "DSD over USB" to "DoP"
  - osx: fix hang after (un)plugging headphones
* threads:
  - the update thread runs at "idle" priority
  - the output thread runs at "real-time" priority
  - increase kernel timer slack on Linux
  - name each thread (for debugging)
* configuration
  - allow playlist directory without music directory
  - use XDG to auto-detect "music_directory" and "db_file"
* add tags "AlbumSort", "MUSICBRAINZ_RELEASETRACKID"
* disable global Latin-1 fallback for tag values
* new resampler option using libsoxr
* ARM NEON optimizations
* install systemd unit for socket activation
* Android port

ver 0.18.23 (2015/02/06)
* despotify: remove defunct plugin
* fix clock integer overflow on OS X
* fix gcc 5.0 warnings

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

ver 0.18.21 (2014/12/17)
* playlist
  - embcue: fix filename suffix detection
* decoder
  - ffmpeg: fix time stamp underflow

ver 0.18.20 (2014/12/08)
* decoder
  - ffmpeg: support FFmpeg 2.5
* fix build failure with musl

ver 0.18.19 (2014/11/26)
* archive
  - zzip: fix crash after seeking

ver 0.18.18 (2014/11/18)
* decoder
  - ffmpeg: support opus
* fix crash on failed filename charset conversion
* fix local socket detection from uid=0 (root)

ver 0.18.17 (2014/11/02)
* playlist
  - don't allow empty playlist name
  - m3u: recognize the file suffix ".m3u8"
* decoder
  - ignore URI query string for plugin detection
  - faad: remove workaround for ancient libfaad2 ABI bug
  - ffmpeg: recognize MIME type audio/aacp

ver 0.18.16 (2014/09/26)
* fix DSD breakage due to typo in configure.ac

ver 0.18.15 (2014/09/26)
* command
  - list: reset used size after the list has been processed
* fix MixRamp
* work around build failure on NetBSD

ver 0.18.14 (2014/09/11)
* protocol
  - fix range parser bug on certain 32 bit architectures
* decoder
  - audiofile: fix crash after seeking
  - ffmpeg: fix crash with ffmpeg/libav version 11
  - fix assertion failure after seeking

ver 0.18.13 (2014/08/31)
* protocol
  - don't change song on "seekcur" in random mode

* decoder
  - dsdiff, dsf: fix endless loop on malformed file
  - ffmpeg: support ffmpeg/libav version 11
  - gme: fix song duration
* output
  - alsa: fix endless loop at end of file in dsd_usb mode
* fix state file saver
* fix build failure on Darwin

ver 0.18.12 (2014/07/30)
* database
  - proxy: fix build failure with libmpdclient 2.2
  - proxy: fix add/search and other commands with libmpdclient < 2.9
* decoder
  - audiofile: improve responsiveness
  - audiofile: fix WAV stream playback
  - dsdiff, dsf: fix stream playback
  - dsdiff: fix metadata parser bug (uninitialized variables)
  - faad: estimate song duration for remote files
  - sndfile: improve responsiveness
* randomize next song when enabling "random" mode while not playing
* randomize next song when adding to single-song queue

ver 0.18.11 (2014/05/12)
* decoder
  - opus: fix missing song length on high-latency files
* fix race condition when using GLib event loop (non-Linux)

ver 0.18.10 (2014/04/10)
* decoder
  - ffmpeg: fix seeking bug
  - ffmpeg: handle unknown stream start time
  - gme: fix memory leak
  - sndfile: work around libsndfile bug on partial read
* don't interrupt playback when current song gets deleted

ver 0.18.9 (2014/03/02)
* protocol
  - "findadd" requires the "add" permission
* output
  - alsa: improved workaround for noise after manual song change
* decoder
  - vorbis: fix linker failure when libvorbis/libogg are static
* encoder
  - vorbis: fix another linker failure
* output
  - pipe: fix hanging child process due to blocked signals
* fix build failure due to missing signal.h include

ver 0.18.8 (2014/02/07)
* decoder
  - ffmpeg: support libav v10_alpha1
* encoder
  - vorbis: fix linker failure
* output
  - roar: documentation
* more robust Icy-Metadata parser
* fix Solaris build failure

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

ver 0.18.6 (2013/12/24)
* input
  - cdio_paranoia: support libcdio-paranoia 0.90
* tags
  - riff: recognize upper-case "ID3" chunk name
* decoder
  - ffmpeg: use relative timestamps
* output
  - openal: fix build failure on Mac OS X
  - osx: fix build failure
* mixer
  - alsa: fix build failure with uClibc
* fix replay gain during cross-fade
* accept files without metadata

ver 0.18.5 (2013/11/23)
* configuration
  - fix crash when db_file is configured without music_directory
  - fix crash on "stats" without db_file/music_directory
* database
  - proxy: auto-reload statistics
  - proxy: provide "db_update" in "stats" response
* input
  - curl: work around stream resume bug (fixed in libcurl 7.32.0)
* decoder
  - fluidsynth: auto-detect by default
* clip 24 bit data from libsamplerate
* fix ia64, mipsel and other little-endian architectures
* fix build failures due to missing includes
* fix build failure with static libmpdclient

ver 0.18.4 (2013/11/13)
* decoder
  - dsdiff: fix byte order bug
* fix build failures due to missing includes
* libc++ compatibility

ver 0.18.3 (2013/11/08)
* fix stuck MPD after song change (0.18.2 regression)

ver 0.18.2 (2013/11/07)
* protocol:
  - "close" flushes the output buffer
* input:
  - cdio_paranoia: add setting "default_byte_order"
  - curl: fix bug with redirected streams
* playlist:
  - pls: fix reversed song order
* decoder:
  - audiofile: require libaudiofile 0.3 due to API breakage
  - dsf: enable DSD128
* enable buffering when starting playback (regression fix)
* fix build failures due to missing includes
* fix big-endian support

ver 0.18.1 (2013/11/04)
* protocol:
  - always ignore whitespace at the end of the line
* networking:
  - log UNIX domain path names instead of "localhost"
  - open listener sockets in the order they were configured
  - don't abort if IPv6 is not available
* output:
  - alsa: avoid endless loop in Raspberry Pi workaround
* filter:
  - autoconvert: fix "volume_normalization" with mp3 files
* add missing files to source tarball

ver 0.18 (2013/10/31)
* configuration:
  - allow tilde paths for socket
  - default filesystem charset is UTF-8 instead of ISO-8859-1
  - increase default buffer size to 4 MB
* protocol:
  - new command "readcomments" lists arbitrary file tags
  - new command "toggleoutput"
  - "find"/"search" with "any" does not match file name
  - "search" and "find" with base URI (keyword "base")
  - search for album artist falls back to the artist tag
  - re-add the "volume" command
* input:
  - curl: enable https
  - soup: plugin removed
* playlist:
  - lastfm: remove defunct Last.fm support
* decoder:
  - adplug: new decoder plugin using libadplug
  - dsf: don't play junk at the end of the "data" chunk
  - ffmpeg: drop support for pre-0.8 ffmpeg
  - flac: require libFLAC 1.2 or newer
  - flac: support FLAC files inside archives
  - opus: new decoder plugin for the Opus codec
  - vorbis: skip 16 bit quantisation, provide float samples
  - mikmod: add "loop" configuration parameter
  - modplug: add "loop_count" configuration parameter
  - mp4ff: obsolete plugin removed
* encoder:
  - opus: new encoder plugin for the Opus codec
  - vorbis: accept floating point input samples
* output:
  - new option "tags" may be used to disable sending tags to output
  - alsa: workaround for noise after manual song change
  - ffado: remove broken plugin
  - httpd: support HEAD requests
  - mvp: remove obsolete plugin
  - osx: disabled by default because it's unmaintained and unsupported
* improved decoder/output error reporting
* eliminate timer wakeup on idle MPD
* fix unresponsive MPD while waiting for stream
* port of the source code to C++11

ver 0.17.6 (2013/10/14)
* mixer:
  - alsa: fix busy loop when USB sound device gets unplugged
* decoder:
  - modplug: fix build with Debian package 1:0.8.8.4-4
* stored playlists:
  - fix loading playlists with references to local files
  - obey filesystem_charset for URLs

ver 0.17.5 (2013/08/04)
* protocol:
  - fix "playlistadd" with URI
  - fix "move" relative to current when there is no current song
* decoder:
  - ffmpeg: support "application/flv"
  - mikmod: adapt to libmikmod 3.2
* configure.ac:
  - detect system "ar"

ver 0.17.4 (2013/04/08)
* protocol:
  - allow to omit END in ranges (START:END)
  - don't emit IDLE_PLAYER before audio format is known
* decoder:
  - ffmpeg: support float planar audio (ffmpeg 1.1)
  - ffmpeg: fix AVFrame allocation
* player:
  - implement missing "idle" events on output errors
* clock: fix build failure

ver 0.17.3 (2013/01/06)
* output:
  - osx: fix pops during playback
  - recorder: fix I/O error check
  - shout: fix memory leak in error handler
  - recorder, shout: support Ogg packets that span more than one page
* decoder:
  - ffmpeg: ignore negative time stamps
  - ffmpeg: support planar audio
* playlist:
  - cue: fix memory leak
  - cue: fix CUE files with only one track

ver 0.17.2 (2012/09/30)
* protocol:
  - fix crash in local file check
* decoder:
  - fluidsynth: remove throttle (requires libfluidsynth 1.1)
  - fluidsynth: stop playback at end of file
  - fluidsynth: check MIDI file format while scanning
  - fluidsynth: add sample rate setting
  - wavpack: support all APEv2 tags
* output:
  - httpd: use monotonic clock, avoid hiccups after system clock adjustment
  - httpd: fix throttling bug after resuming playback
* playlist:
  - cue: map "PERFORMER" to "artist" or "album artist"
* mapper: fix non-UTF8 music directory name
* mapper: fix potential crash in file permission check
* playlist: fix use-after-free bug
* playlist: fix memory leak
* state_file: save song priorities
* player: disable cross-fading in "single" mode
* update: fix unsafe readlink() usage
* configure.ac:
  - don't auto-detect the vorbis encoder when Tremor is enabled

ver 0.17.1 (2012/07/31)
* protocol:
  - require appropriate permissions for searchadd{,pl}
* tags:
  - aiff: support the AIFC format
  - ape: check for ID3 if no usable APE tag was found
* playlist:
  - cue: support file types "MP3", "AIFF"
* output:
  - fix noisy playback with conversion and software volume

ver 0.17 (2012/06/27)
* protocol:
  - support client-to-client communication
  - "update" and "rescan" need only "CONTROL" permission
  - new command "seekcur" for simpler seeking within current song
  - new command "config" dumps location of music directory
  - add range parameter to command "load"
  - print extra "playlist" object for embedded CUE sheets
  - new commands "searchadd", "searchaddpl"
* input:
  - cdio_paranoia: new input plugin to play audio CDs
  - curl: enable CURLOPT_NETRC
  - curl: non-blocking I/O
  - soup: new input plugin based on libsoup
* tags:
  - RVA2: support separate album/track replay gain
* decoder:
  - mpg123: implement seeking
  - ffmpeg: drop support for pre-0.5 ffmpeg
  - ffmpeg: support WebM
  - oggflac: delete this obsolete plugin
  - dsdiff: new decoder plugin
* output:
  - alsa: support DSD-over-USB (dCS suggested standard)
  - httpd: support for streaming to a DLNA client
  - openal: improve buffer cancellation
  - osx: allow user to specify other audio devices
  - osx: implement 32 bit playback
  - shout: add possibility to set url
  - roar: new output plugin for RoarAudio
  - winmm: fail if wrong device specified instead of using default device
* mixer:
  - alsa: listen for external volume changes
* playlist:
  - allow references to songs outside the music directory
  - new CUE parser, without libcue
  - soundcloud: new plugin for accessing soundcloud.com
* state_file: add option "restore_paused"
* cue: show CUE track numbers
* allow port specification in "bind_to_address" settings
* support floating point samples
* systemd socket activation
* improve --version output
* WIN32: fix renaming of stored playlists with non-ASCII names


ver 0.16.8 (2012/04/04)
* fix for libsamplerate assertion failure
* decoder:
  - vorbis (and others): fix seeking at startup
  - ffmpeg: read the "year" tag
* encoder:
  - vorbis: generate end-of-stream packet before tag
  - vorbis: generate end-of-stream packet when playback ends
* output:
  - jack: check for connection failure before starting playback
  - jack: workaround for libjack1 crash bug
  - osx: fix stuttering due to buffering bug
* fix endless loop in text file reader
* update: skip symlinks in path that is to be updated


ver 0.16.7 (2012/02/04)
* input:
  - ffmpeg: support libavformat 0.7
* decoder:
  - ffmpeg: support libavformat 0.8, libavcodec 0.9
  - ffmpeg: support all MPD tags
* output:
  - httpd: fix excessive buffering
  - openal: force 16 bit playback, as 8 bit doesn't work
  - osx: remove sleep call from render callback
  - osx: clear render buffer when there's not enough data
* fix moving after current song


ver 0.16.6 (2011/12/01)
* decoder:
  - fix assertion failure when resuming streams
  - ffmpeg: work around bogus channel count
* encoder:
  - flac, null, wave: fix buffer corruption bug
  - wave: support packed 24 bit samples
* mapper: fix the bogus "not a directory" error message
* mapper: check "x" and "r" permissions on music directory
* log: print reason for failure
* event_pipe: fix WIN32 regression
* define WINVER in ./configure
* WIN32: autodetect filesystem encoding


ver 0.16.5 (2011/10/09)
* configure.ac
  - disable assertions in the non-debugging build
  - show solaris plugin result correctly
  - add option --enable-solaris-output
* pcm_format: fix 32-to-24 bit conversion (the "silence" bug)
* input:
  - rewind: reduce heap usage
* decoder:
  - ffmpeg: higher precision timestamps
  - ffmpeg: don't require key frame for seeking
  - fix CUE track seeking
* output:
  - openal: auto-fallback to mono if channel count is unsupported
* player:
  - make seeking to CUE track more reliable
  - the "seek" command works when MPD is stopped
  - restore song position from state file (bug fix)
  - fix crash that sometimes occurred when audio device fails on startup
  - fix absolute path support in playlists
* WIN32: close sockets properly
* install systemd service file if systemd is available


ver 0.16.4 (2011/09/01)
* don't abort configure when avahi is not found
* auto-detect libmad without pkg-config
* fix memory leaks
* don't resume playback when seeking to another song while paused
* apply follow_inside_symlinks to absolute symlinks
* fix playback discontinuation after seeking
* input:
  - curl: limit the receive buffer size
  - curl: implement a hard-coded timeout of 10 seconds
* decoder:
  - ffmpeg: workaround for semantic API change in recent ffmpeg versions
  - flac: validate the sample rate when scanning the tag
  - wavpack: obey all decoder commands, stop at CUE track border
* encoder:
  - vorbis: don't send end-of-stream on flush
* output:
  - alsa: fix SIGFPE when alsa announces a period size of 0
  - httpd: don't warn on client disconnect
  - osx: don't drain the buffer when closing
  - pulse: fix deadlock when resuming the stream
  - pulse: fix deadlock when the stream was suspended


ver 0.16.3 (2011/06/04)
* fix assertion failure in audio format mask parser
* fix NULL pointer dereference in playlist parser
* fix playlist files in base music directory
* database: allow directories with just playlists
* decoder:
  - ffmpeg: support libavcodec 0.7


ver 0.16.2 (2011/03/18)
* configure.ac:
  - fix bashism in tremor test
* decoder:
  - tremor: fix configure test
  - gme: detect end of song
* encoder:
  - vorbis: reset the Ogg stream after flush
* output:
  - httpd: fix uninitialized variable
  - httpd: include sys/socket.h
  - oss: AFMT_S24_PACKED is little-endian
  - oss: disable 24 bit playback on FreeBSD


ver 0.16.1 (2011/01/09)
* audio_check: fix parameter in prototype
* add void casts to suppress "result unused" warnings (clang)
* input:
  - ffado: disable by default
* decoder:
  - mad: work around build failure on Solaris
  - resolve modplug vs. libsndfile cflags/headers conflict
* output:
  - solaris: add missing parameter to open_cloexec() cal
  - osx: fix up audio format first, then apply it to device
* player_thread: discard empty chunks while cross-fading
* player_thread: fix assertion failure due to early seek
* output_thread: fix double lock


ver 0.16 (2010/12/11)
* protocol:
  - send song modification time to client
  - added "update" idle event
  - removed the deprecated "volume" command
  - added the "findadd" command
  - range support for "delete"
  - "previous" really plays the previous song
  - "addid" with negative position is deprecated
  - "load" supports remote playlists (extm3u, pls, asx, xspf, lastfm://)
  - allow changing replay gain mode on-the-fly
  - omitting the range end is possible
  - "update" checks if the path is malformed
* archive:
  - iso: renamed plugin to "iso9660"
  - zip: renamed plugin to "zzip"
* input:
  - lastfm: obsolete plugin removed
  - ffmpeg: new input plugin using libavformat's "avio" library
* tags:
  - added tags "ArtistSort", "AlbumArtistSort"
  - id3: revised "performer" tag support
  - id3: support multiple values
  - ape: MusicBrainz tags
  - ape: support multiple values
* decoders:
  - don't try a plugin twice (MIME type & suffix)
  - don't fall back to "mad" unless no plugin matches
  - ffmpeg: support multiple tags
  - ffmpeg: convert metadata to generic format
  - ffmpeg: implement the libavutil log callback
  - sndfile: new decoder plugin based on libsndfile
  - flac: moved CUE sheet support to a playlist plugin
  - flac: support streams without STREAMINFO block
  - mikmod: sample rate is configurable
  - mpg123: new decoder plugin based on libmpg123
  - sidplay: support sub-tunes
  - sidplay: implemented songlength database
  - sidplay: support seeking
  - sidplay: play monaural SID tunes in mono
  - sidplay: play mus, str, prg, x00 files
  - wavpack: activate 32 bit support
  - wavpack: allow more than 2 channels
  - mp4ff: rename plugin "mp4" to "mp4ff"
* encoders:
  - twolame: new encoder plugin based on libtwolame
  - flac: new encoder plugin based on libFLAC
  - wave: new encoder plugin for PCM WAV format
* output:
  - recorder: new output plugin for recording radio streams
  - alsa: don't recover on CANCEL
  - alsa: fill period buffer with silence before draining
  - openal: new output plugin
  - pulse: announce "media.role=music"
  - pulse: renamed context to "Music Player Daemon"
  - pulse: connect to server on MPD startup, implement pause
  - jack: require libjack 0.100
  - jack: don't disconnect during pause
  - jack: connect to server on MPD startup
  - jack: added options "client_name", "server_name"
  - jack: clear ring buffers before activating
  - jack: renamed option "ports" to "destination_ports"
  - jack: support more than two audio channels
  - httpd: bind port when output is enabled
  - httpd: added name/genre/website configuration
  - httpd: implement "pause"
  - httpd: bind_to_address support (including IPv6)
  - oss: 24 bit support via OSS4
  - win32: new output plugin for Windows Wave
  - shout, httpd: more responsive to control commands
  - wildcards allowed in audio_format configuration
  - consistently lock audio output objects
* player:
  - drain audio outputs at the end of the playlist
* mixers:
  - removed support for legacy mixer configuration
  - reimplemented software volume as mixer+filter plugin
  - per-device software/hardware mixer setting
* commands:
  - added new "status" line with more precise "elapsed time"
* update:
  - automatically update the database with Linux inotify
  - support .mpdignore files in the music directory
  - sort songs by album name first, then disc/track number
  - rescan after metadata_to_use change
* normalize: upgraded to AudioCompress 2.0
  - automatically convert to 16 bit samples
* replay gain:
  - reimplemented as a filter plugin
  - fall back to track gain if album gain is unavailable
  - optionally use hardware mixer to apply replay gain
  - added mode "auto"
  - parse replay gain from APE tags
* log unused/unknown block parameters
* removed the deprecated "error_file" option
* save state when stopped
* renamed option "--stdout" to "--stderr"
* removed options --create-db and --no-create-db
* state_file: save only if something has changed
* database: eliminated maximum line length
* log: redirect stdout/stderr to /dev/null if syslog is used
* set the close-on-exec flag on all file descriptors
* pcm_volume, pcm_mix: implemented 32 bit support
* support packed 24 bit samples
* CUE sheet support
* support for MixRamp tags
* obey $(sysconfdir) for default mpd.conf location
* build with large file support by default
* added test suite ("make check")
* require GLib 2.12
* added libwrap support
* make single mode 'sticky'


ver 0.15.17 (2011/??/??)
* encoder:
  - vorbis: reset the Ogg stream after flush
* decoders:
  - vorbis: fix tremor support


ver 0.15.16 (2011/03/13)
* output:
  - ao: initialize the ao_sample_format struct
  - jack: fix crash with mono playback
* encoders:
  - lame: explicitly configure the output sample rate
* update: log all file permission problems


ver 0.15.15 (2010/11/08)
* input:
  - rewind: fix assertion failure
* output:
  - shout: artist comes first in stream title


ver 0.15.14 (2010/11/06)
* player_thread: fix assertion failure due to wrong music pipe on seek
* output_thread: fix assertion failure due to race condition in OPEN
* input:
  - rewind: fix double free bug
* decoders:
  - mp4ff, ffmpeg: add extension ".m4b" (audio book)


ver 0.15.13 (2010/10/10)
* output_thread: fix race condition after CANCEL command
* output:
  - httpd: fix random data in stream title
  - httpd: MIME type audio/ogg for Ogg Vorbis
* input:
  - rewind: update MIME not only once
  - rewind: enable for MMS


ver 0.15.12 (2010/07/20)
* input:
  - curl: remove assertion after curl_multi_fdset()
* tags:
  - rva2: set "gain", not "peak"
* decoders:
  - wildmidi: support version 0.2.3


ver 0.15.11 (2010/06/14)
* tags:
  - ape: support album artist
* decoders:
  - mp4ff: support tags "album artist", "albumartist", "band"
  - mikmod: fix memory leak
  - vorbis: handle uri==NULL
  - ffmpeg: fix memory leak
  - ffmpeg: free AVFormatContext on error
  - ffmpeg: read more metadata
  - ffmpeg: fix libavformat 0.6 by using av_open_input_stream()
* playlist: emit IDLE_OPTIONS when resetting single mode
* listen: make get_remote_uid() work on BSD


ver 0.15.10 (2010/05/30)
* input:
  - mms: fix memory leak in error handler
  - mms: initialize the "eof" attribute
* decoders:
  - mad: properly calculate ID3 size without libid3tag


ver 0.15.9 (2010/03/21)
* decoders:
  - mad: fix crash when seeking at end of song
  - mpcdec: fix negative shift on fixed-point samples
  - mpcdec: fix replay gain formula with v8
* playlist: fix single+repeat in random mode
* player: postpone song tags during cross-fade


ver 0.15.8 (2010/01/17)
* input:
  - curl: allow rewinding with Icy-Metadata
* decoders:
  - ffmpeg, flac, vorbis: added more flac/vorbis MIME types
  - ffmpeg: enabled libavformat's file name extension detection
* dbUtils: return empty tag value only if no value was found
* decoder_thread: fix CUE track playback
* queue: don't repeat current song in consume mode


ver 0.15.7 (2009/12/27)
* archive:
  - close archive when stream is closed
  - iso, zip: fixed memory leak in destructor
* input:
  - file: don't fall back to parent directory
  - archive: fixed memory leak in error handler
* tags:
  - id3: fix ID3v1 charset conversion
* decoders:
  - eliminate jitter after seek failure
  - ffmpeg: don't try to force stereo
  - wavpack: allow fine-grained seeking
* mixer: explicitly close all mixers on shutdown
* mapper: fix memory leak when playlist_directory is not set
* mapper: apply filesystem_charset to playlists
* command: verify playlist name in the "rm" command
* database: return multiple tag values per song


ver 0.15.6 (2009/11/18)
* input:
  - lastfm: fixed variable name in GLib<2.16 code path
  - input/mms: require libmms 0.4
* archive:
  - zzip: require libzzip 0.13
* tags:
  - id3: allow 4 MB RIFF/AIFF tags
* decoders:
  - ffmpeg: convert metadata
  - ffmpeg: align the output buffer
  - oggflac: rewind stream after FLAC detection
  - flac: fixed CUE seeking range check
  - flac: fixed NULL pointer dereference in CUE code
* output_thread: check again if output is open on PAUSE
* update: delete ignored symlinks from database
* database: increased maximum line length to 32 kB
* sticker: added fallback for sqlite3_prepare_v2()


ver 0.15.5 (2009/10/18)
* input:
  - curl: don't abort if a packet has only metadata
  - curl: fixed endless loop during buffering
* tags:
  - riff, aiff: fixed "limited range" gcc warning
* decoders:
  - flac: fixed two memory leaks in the CUE tag loader
* decoder_thread: change the fallback decoder name to "mad"
* output_thread: check again if output is open on CANCEL
* update: fixed memory leak during container scan


ver 0.15.4 (2009/10/03)
* decoders:
  - vorbis: revert "faster tag scanning with ov_test_callback()"
  - faad: skip assertion failure on large ID3 tags
  - ffmpeg: use the "artist" tag if "author" is not present
* output:
  - osx: fix the OS X 10.6 build


ver 0.15.3 (2009/08/29)
* decoders:
  - vorbis: faster tag scanning with ov_test_callback()
* output:
  - fix stuttering due to uninitialized variable
* update: don't re-read unchanged container files


ver 0.15.2 (2009/08/15)
* tags:
  - ape: check the tag size (fixes integer underflow)
  - ape: added protection against large memory allocations
* decoders:
  - mad: skip ID3 frames when libid3tag is disabled
  - flac: parse all replaygain tags
  - flac: don't allocate cuesheet twice (memleak)
* output:
  - shout: fixed stuck pause bug
  - shout: minimize the unpause latency
* update: free empty path string (memleak)
* update: free temporary string in container scan (memleak)
* directory: free empty directories after removing them (memleak)


ver 0.15.1 (2009/07/15)
* decoders:
  - flac: fix assertion failure in tag_free() call
* output:
  - httpd: include sys/types.h (fixes Mac OS X)
* commands:
  - don't resume playback when stopping during pause
* database: fixed NULL pointer dereference after charset change
* log: fix double free() bug during shutdown


ver 0.15 (2009/06/23)
* input:
  - parse Icy-Metadata
  - added support for the MMS protocol
  - hide HTTP password in playlist
  - lastfm: new input plugin for last.fm radio (experimental and incomplete!)
  - curl: moved proxy settings to "input" block
* tags:
  - support the "album artist" tag
  - support MusicBrainz tags
  - parse RVA2 tags in mp3 files
  - parse ID3 tags in AIFF/RIFF/WAV files
  - ffmpeg: support new metadata API
  - ffmpeg: added support for the tags comment, genre, year
* decoders:
  - audiofile: streaming support added
  - audiofile: added 24 bit support
  - modplug: another MOD plugin, based on libmodplug
  - mikmod disabled by default, due to severe security issues in libmikmod
  - sidplay: new decoder plugin for C64 SID (using libsidplay2)
  - fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
    experimental due to shortcomings in libfluidsynth)
  - wildmidi: another decoder plugin for MIDI files (using libwildmidi)
  - flac: parse stream tags
  - mpcdec: support the new libmpcdec SV8 API
  - added configuration option to disable decoder plugins
  - flac: support embedded cuesheets
  - ffmpeg: updated list of supported formats
* audio outputs:
  - added option to disable audio outputs by default
  - wait 10 seconds before reopening after play failure
  - shout: enlarged buffer size to 32 kB
  - null: allow disabling synchronization
  - mvp: fall back to stereo
  - mvp: fall back to 16 bit audio samples
  - mvp: check for reopen errors
  - mvp: fixed default device detection
  - pipe: new audio output plugin which runs a command
  - alsa: better period_time default value for high sample rates
  - solaris: new audio output plugin for Solaris /dev/audio
  - httpd: new audio output plugin for web based streaming, similar to icecast
     but built in.
* commands:
  - "playlistinfo" and "move" supports a range now
  - added "sticker database", command "sticker", which allows clients
     to implement features like "song rating"
  - added "consume" command which removes a song after play
  - added "single" command, if activated, stops playback after current song or
     repeats the song if "repeat" is active.
* mixers:
  - rewritten mixer code to support multiple mixers
  - new pulseaudio mixer
  - alsa: new mixer_index option supports choosing between multiple
    identically-named controls on a device.
* Add audio archive extraction support:
  - bzip2
  - iso9660
  - zip
* the option "error_file" was removed, all messages are logged into
   "log_file"
* support logging to syslog
* fall back to XDG music directory if no music_directory is configured
* failure to read the state file is non-fatal
* --create-db starts the MPD daemon instead of exiting
* playlist_directory and music_directory are optional
* playlist: recalculate the queued song after random is toggled
* playlist: don't unpause on delete
* pause when all audio outputs fail to play
* daemon: ignore "user" setting if already running as that user
* listen: fix broken client IP addresses in log
* listen: bind failure on secondary address is non-fatal
* 24/32 bit audio support
* print available protocols in --version
* fill buffer after seeking
* choose the fallback resampler at runtime
* steps taken towards win32 compatibility
* require glib 2.6 or greater
* built-in documentation using doxygen and docbook


ver 0.14.2 (2009/02/13)
* configure.ac:
  - define HAVE_FFMPEG after all checks
* decoders:
  - ffmpeg: added support for the tags comment, genre, year
  - ffmpeg: don't warn of empty packet output
  - ffmpeg: check if the time stamp is valid
  - ffmpeg: fixed seek integer overflow
  - ffmpeg: enable WAV streaming
  - ffmpeg: added TTA support
  - wavpack: pass NULL if the .wvc file fails to open
  - mikmod: call MikMod_Exit() only in the finish() method
  - aac: fix stream metadata
* audio outputs:
  - jack: allocate ring buffers before connecting
  - jack: clear "shutdown" flag on reconnect
  - jack: reduced sleep time to 1ms
  - shout: fixed memory leak in the mp3 encoder
  - shout: switch to blocking mode
  - shout: use libshout's synchronization
  - shout: don't postpone metadata
  - shout: clear buffer before calling the encoder
* mapper: remove trailing slashes from music_directory
* player: set player error when output device fails
* update: recursively purge deleted directories
* update: free deleted subdirectories

ver 0.14.1 (2009/01/17)
* decoders:
  - mp4: support the writer/composer tag
  - id3: strip leading and trailing whitespace from ID3 tags
  - oggvorbis: fix tremor support
  - oggvorbis: disable seeking on remote files
* audio outputs:
  - jack: allocate default port names (fixes a crash)
* update:
  - refresh stats after update
  - save the database even if it is empty
* input_curl:
  - use select() to eliminate busy loop during connect
  - honour http_proxy_* config directives
  - fix assertion failure on "connection refused"
  - fix assertion failure with empty HTTP responses
* corrected the sample calculation in the fallback resampler
* log: automatically append newline
* fix setenv() conflict on Solaris
* configure.ac: check for pkg-config before using it
* fix minor memory leak in decoder_tag()
* fix cross-fading bug: it used to play some chunks of the new song twice
* playlist
  - fix assertion failure during playlist load
  - implement Fisher-Yates shuffle properly
  - safely search the playlist for deleted song
* use custom PRNG for volume dithering (speedup)
* detect libid3tag without pkg-config

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

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

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

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

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

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

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

ver 0.11.3 (2004/7/21)
1) Add support for http authentication for streams
2) Added replaygain pre-amp support
3) Better error handling for fread() in inputStream_file
4) Fixed a bug so that when a freeAllInterfaces is called, it sets
max_interface_connections to 0.  This prevents potential segfaults and other
nastiness for forked processes, like the player and update-er (do to
interfacePrintWithFD()).
5) Allow blockingWrite() to handle errors more gracefully (for example, if the
disc is full, and thus the write() fails or can't be completed, we just skip
this write() and continue, instead of getting stuck in an infinite loop until
the write() becomes successful)
6) Updated mpdconf.example from sbh/avuton
7) If "user" is specified, then convert ~ in paths to the user's home path
specified by "user" config paramter (not the actual current user running mpd).

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

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

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

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

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

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

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

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

ver 0.9.4 (2004/1/21)
1) Fix a bug where updated tag info wasn't being detected
2) Set the default audio write size to 1024 bytes (should decrease cpu load a
bit on some machines).
3) Make audio write size configurable via "audio_write_size" config option
4) Tweak output buffer size for connections by detecting the kernel output
buffer size.

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

ver 0.9.2 (2003/10/6)
1) Fix FreeBSD Compilation Problems
2) Fix bug in move command
3) Add mixer_control options to configure which mixer control/device mpd
controls
4) Randomize on play -1
5) Fix a bug in toggling repeat off and at the end of the playlist

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

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

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

ver 0.8.6 (2003/8/25)
1) Fix a memory leak when a buffered existed, and a connection was unexpectedly
closed, and i wasn't free'ing the buffer apropriatly.

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

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

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

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

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

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

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

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

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

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

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