summaryrefslogtreecommitdiff
path: root/NEWS
AgeCommit message (Collapse)Author
2019-12-24release v0.21.18v0.21.18Max Kellermann
2019-12-24time/ISO8601: refactor ParseTimeOfDay() to parse one by oneMax Kellermann
This prepares the migration away from strptime() for Windows portability. But the real reason I'm doing this is that strptime() on Apple is buggy: strptime("14", "%H%M%S") (without separating colons) succeeds even though only the hour has been parsed. This fixes recent Travis failures in the ParseISO8601() unit test.
2019-12-23lib/curl: drop support for CURL versions older than 7.32.0Max Kellermann
For simplicity, this commit removes a workaround for an old CURL bug.
2019-12-23storage/curl: move start call out of the constructorMax Kellermann
This can cause request completion in the I/O thread before this constructor returns, leaving the object in an abstract state, causing a crash due to pure virtual method call. We should not start the request until this object is fully constructed. Closes https://github.com/MusicPlayerDaemon/MPD/issues/665
2019-12-22event/MultiSocketMonitor: add workaround for /dev/nullMax Kellermann
The ALSA "null" driver opens /dev/null and returns the file handle from snd_pcm_poll_descriptors(), but /dev/null cannot be used with epoll, the epoll_ctl() system call returns -EPERM. This means that the ALSA output hangs, eventually freezing the whole MPD process. This commit adds a workaround to the MultiSocketMonitor class which is used by the ALSA output plugin. Closes https://github.com/MusicPlayerDaemon/MPD/issues/695
2019-12-22event/Loop: round timeout up to avoid unnecessary wakeupsMax Kellermann
2019-12-18increment version number to 0.21.18Max Kellermann
2019-12-16release v0.21.17v0.21.17Max Kellermann
2019-12-16time/ISO8601: support omitting field separatorsMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/685
2019-12-16time/ISO8601: allow omitting the "Z" suffixMax Kellermann
And allow "Z" suffix after date.
2019-12-16time/ISO8601: allow omitting the time of dayMax Kellermann
2019-12-04archive/zzip: improve error reportingMax Kellermann
Most importantly, this commit translates ZZIP_ENOENT to std::system_error(ENOENT) so IsFileNotFound() returns true and find_stream_art() can suppress the log line.
2019-11-06output/shout: declare metadata as UTF-8Max Kellermann
Apparently, Icecast defaults to ISO-8859-1 for MP3: http://icecast.org/docs/icecast-2.4.0/config-file.html#mountsettings This change forces Icecast to UTF-8 without having to configure it in Icecast's configuration file.
2019-11-04lib/sqlite: disable if -Ddatabase=falseMax Kellermann
Fixes build failure in StickerCommands.cxx.
2019-10-29output/Jack: mark ports as terminalNiklas Haas
This is the correct thing to do for ports from which a signal ultimately "originates", such as is the case with mpd.
2019-10-16increment version number to 0.21.17Max Kellermann
2019-10-16release v0.21.16v0.21.16Max Kellermann
2019-10-15queue/PlaylistEdit: fix relative destination offset when moving a rangeMax Kellermann
Commit 13208bf5a7c91a6406195139f1068f173ccdac94 added range support to the `move` command, but applied the wrong offset to the `to` variable. When the source range is before the current song, and the song thus gets decremented by the range size, then the final destination offset must also be decremented by the range size. Closes https://github.com/MusicPlayerDaemon/MPD/issues/663
2019-10-15storage/curl: follow redirects for collections without trailing slashMax Kellermann
2019-10-15storage/curl: use MapUTF8() to reuse existing escaping codeMax Kellermann
Commit 29f78b18b1d continued. Closes https://github.com/MusicPlayerDaemon/MPD/issues/662
2019-10-07lib/icu: fix build with iconv()Andre Heider
2019-10-07storage/curl: request the "resourcetype" property to fix updateMax Kellermann
Without requesting the property, "good" WebDAV servers would not send it, and so MPD could never recognize a directory, failing the database update. Closes https://github.com/MusicPlayerDaemon/MPD/issues/660
2019-10-07db/update/Walk: fix crash when music_directory is not a directoryMax Kellermann
Add a runtime sanity check to avoid the assertion failure. Closes https://github.com/MusicPlayerDaemon/MPD/issues/660
2019-10-07increment version number to 0.21.16Max Kellermann
2019-09-25release v0.21.15v0.21.15Max Kellermann
2019-09-13decoder/mpcdec: fix bogus ReplayGain valuesMax Kellermann
Apparently, libmpcdec sets gain/peak variables to zero if they are not present. This clashes with our formula and results in bogus values which cause noise during playback. Closes https://github.com/MusicPlayerDaemon/MPD/issues/640
2019-09-08NEWS: add missing line for 818b7e0641f25fMax Kellermann
2019-09-08decoder/{dsf,dsdiff}: fix displayed bit rateMax Kellermann
The formula did not consider the channel count. Closes https://github.com/MusicPlayerDaemon/MPD/issues/639
2019-08-22increment version number to 0.21.15Max Kellermann
2019-08-21release v0.21.14v0.21.14Max Kellermann
2019-08-20command/all: don't create new Response instance in exception handlerMax Kellermann
The new Response instance in the `catch` block didn't have the `command` attribute set, so the error response didn't indicate which command had failed, which however is required in the MPD protocol. Closes https://github.com/MusicPlayerDaemon/MPD/issues/628
2019-08-20decoder/Thread: on late SEEK, start decoder at seek positionMax Kellermann
Previously, a bogus value (whatever happened to be still in `start_time`) was used.
2019-08-20decoder/Control: work around crash after SEEK was too lateMax Kellermann
See code comment. Closes https://github.com/MusicPlayerDaemon/MPD/issues/629
2019-08-10decoder/sidplay: Fix date field to have year but not company or authorFredrik Noring
Field 2 is called <released>, formerly used as <copyright>[1][2]. It is formatted <year><space><company or author or group>, where <year> may be <YYYY>, <YYY?>, <YY??> or <YYYY-YY>, for example "1987", "199?", "19??" or "1985-87". The <company or author or group> may be for example Rob Hubbard. A full field may be for example "1987 Rob Hubbard". This change splits the <released> field at the first <space>, to retain the <year> part. The 51823 SID files in High Voltage SID Collection (HVSC) version 71 have the following distribution of dates: 333 19?? 11 1990-92 6 1995-99 2 2006-08 827 198? 88 1990-93 2140 1996 530 2007 32 1982 69 1990-94 9 1996-97 15 2007-08 1 1982-83 49 1990-95 2 1996-98 2 2007-09 255 1983 3467 1991 5 1996-99 1 2007-10 677 1984 75 1991-92 1840 1997 430 2008 775 1985 65 1991-93 4 1997-98 23 2008-09 3 1985-86 10 1991-94 1276 1998 1 2008-12 10 1985-87 35 1991-97 4 1998-99 631 2009 943 1986 3320 1992 865 1999 1 2009-10 12 1986-87 26 1992-93 24 200? 645 2010 5 1986-89 59 1992-94 590 2000 1 2010-12 2083 1987 1 1992-96 4 2000-01 538 2011 31 1987-88 2996 1993 727 2001 1 2011-12 44 1987-89 42 1993-94 875 2002 651 2012 2510 1988 12 1993-95 2 2002-04 811 2013 129 1988-89 2 1993-97 844 2003 790 2014 91 1988-90 2737 1994 3 2003-05 740 2015 58 1988-91 16 1994-95 842 2004 792 2016 3466 1989 20 1994-96 2 2004-05 775 2017 95 1989-90 17 1994-97 707 2005 638 2018 150 1989-91 2271 1995 1 2005-06 284 2019 1077 199? 2 1995-96 2 2005-07 2834 1990 4 1995-97 785 2006 119 1990-91 2 1995-98 6 2006-07 References: [1] https://www.hvsc.c64.org/download/C64Music/DOCUMENTS/SID_file_format.txt [2] https://hvsc.c64.org/info
2019-08-10decoder/sidplay: Fix windows-1252 to utf-8 string conversionFredrik Noring
High Voltage SID Collection (HVSC) metadata fields are encoded in windows-1252, as described in DOCUMENTS/SID_file_format.txt: https://www.hvsc.c64.org/download/C64Music/DOCUMENTS/SID_file_format.txt If utf-8 transcoding fails, or the ICU library is unavailable, fall back to plain ASCII and replace other characters with '?'.
2019-08-09decoder/sidplay: Fix song length initialisation during container scanFredrik Noring
The song length was previously undetermined.
2019-08-09increment version number to 0.21.14Max Kellermann
2019-08-06release v0.21.13v0.21.13Max Kellermann
2019-08-06output/jack: use jack_free() for Windows compatibilityMax Kellermann
2019-08-06input/cdio_paranoia: drop support for libcdio-paranoia older than 10.2+0.93+1Max Kellermann
Version 10.2+0.93+1 was released five years ago in 2014 and is the first version to feature cdio_cddap_free_messages(). There is no way to check the libcdio-paranoia version at compile time, so let's just remove support for older versions instead of attempting to fix the cdio_cddap_free_messages() check at build time. Closes https://github.com/MusicPlayerDaemon/MPD/issues/613
2019-08-05Revert "decoder/mad: use MAD_F_MIN and MAD_F_MAX"Max Kellermann
This reverts commit f7ed7446ae4be9226de554d6d75a14a9fb71dd7c. It was a bad idea, because MAD_F_MIN and MAD_F_MAX do not represent the clamping limits, but the theoretical minimum and maximum values of the mad_fixed_t data type. Closes https://github.com/MusicPlayerDaemon/MPD/issues/617
2019-08-05increment version number to 0.21.13Max Kellermann
2019-08-03release v0.21.12v0.21.12Max Kellermann
2019-08-03player/Thread: don't restart unseekable song after failed seek attemptMax Kellermann
The check IsSeekableCurrentSong() was added by commit 44b200240f1f4b8394dd2e58fec72da3d3ec448f in version 0.20.19, but it caused a regression: by doing the branch only if the current song is seekable, the player would restart the current song if it was not seekable, and later the initial seek would fail; but we already know it's not seekable, and so we should fail early.
2019-08-03decoder/mad: subtract libmad decoder delay from LAME encoder paddingMax Kellermann
Apparently, libmad not only inserts 529 samples of silence at the beginning of the file, but also removes them at the end. This solves the last piece of https://github.com/MusicPlayerDaemon/MPD/issues/601 Closes https://github.com/MusicPlayerDaemon/MPD/issues/601
2019-08-03decoder/mad: eliminate attribute "bit_rate"Max Kellermann
This also fixes a bug which caused the bit rate to not update after seeking.
2019-08-02Fix JACK plugin outputting only to left channelDiomendius
The JACK output plugin would not correctly upmix mono input files when exactly 2 output ports were configured. This fixes that.
2019-08-02lib/xiph/OggVisitor: invoke OnOggPacket() with the "E_O_S" packetMax Kellermann
The "end of stream" packet is not special; it contains normal data, and thus we should pass it to OnOggPacket(). This fixes one part of https://github.com/MusicPlayerDaemon/MPD/issues/601
2019-07-29decoder/opus: ignore case in replay gain tag namesMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/604
2019-07-29playlist/Song: support backslash in relative URIsMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/607