summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-12-04util/PrintException, ...: update copyrightMax Kellermann
2019-12-04system/Error: move code to IsErrno()Max Kellermann
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-04neighbor/meson.build: disable if -Ddatabase=falseMax Kellermann
Fixes yet another build failure (which however only affects the 0.22 branch). Closes https://github.com/MusicPlayerDaemon/MPD/issues/666
2019-11-04meson.build, SongUpdate: disable db-specific archive code if -Ddatabase=falseMax Kellermann
Fixes another build failure.
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-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: unescape file names from PROPFINDMax Kellermann
This is the last missing piece for https://github.com/MusicPlayerDaemon/MPD/issues/662
2019-10-15storage/curl: follow redirects for collections without trailing slashMax Kellermann
2019-10-15storage/curl: work around different case in hex digitsMax 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-15storage/curl: unescape URI in MapToRelativeUTF8()Max Kellermann
2019-10-15lib/curl/Escape: add CurlUnescape()Max Kellermann
2019-10-15storage/curl: move code to EscapeUriPath()Max Kellermann
2019-10-15lib/curl/String: OO wrapper for allocated strings returned from CURLMax Kellermann
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-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-13ReplayGainInfo: move more code to a functionMax Kellermann
2019-09-13decoder/mpcdec: merge duplicate codeMax Kellermann
2019-09-13ReplayGainInfo: add static method Undefined()Max Kellermann
2019-09-08decoder/{dsf,dsdiff}: precalculate bit rateMax 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-22output/solaris: include sys/stropts.h only on SolarisMax Kellermann
This header had been available for a long time on Linux, but was removed in glibc 2.30. This commit moves the `#include` line inside the `#ifdef __sun` block and adds a fake declaration of `I_FLUSH` for the Linux build. Closes https://github.com/MusicPlayerDaemon/MPD/issues/630
2019-08-21output/Thread: add missing `return` in exception handlerMax 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-20client/Process, command/all: add `noexcept`Max Kellermann
Clarify that those can't throw, preparing for the next commit.
2019-08-20command/all: remove obsolete prototypeMax Kellermann
2019-08-20command/all: simplify `return` from command_process()Max Kellermann
2019-08-20command/all: catch all exceptionsMax Kellermann
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-13output/Thread: fix typo in commentMax Kellermann
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-06output/jack: use jack_free() for Windows compatibilityMax Kellermann
2019-08-06output/jack: use std::atomic_bool for "shutdown" and "pause"Max Kellermann
Without this, the compiler may optimize accesses away.
2019-08-06output/jack: use SIZE_MAX instead of (size_t)-1Max 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-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: pass const reference to RecoverFrameError()Max Kellermann
2019-08-03decoder/mad: change integers to size_tMax Kellermann
2019-08-03decoder/mad: return from SynthAndSubmit() earlyMax Kellermann
2019-08-03decoder/mad: pass mad_pcm to mad_fixed_to_24_buffer()Max Kellermann
2019-08-03decoder/mad: eliminate the loop in SubmitPCM()Max Kellermann
libmad has a hard-coded maximum PCM buffer size; if we make our output_buffer just as large, we can avoid the loop, because any possible size will fit.
2019-08-03decoder/mad: rename a few misnamed methodsMax Kellermann