summaryrefslogtreecommitdiff
path: root/NEWS
AgeCommit message (Collapse)Author
2021-05-25sticker/Database: pass NarrowPath to sqlite3_open()Max Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1171
2021-05-24increment version number to 0.22.9Max Kellermann
2021-05-22release v0.22.8v0.22.8Max Kellermann
2021-05-22input/last: add nullptr check to Open(), fixes assertion failureMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1168
2021-05-22increment version number to 0.22.8Max Kellermann
2021-05-19release v0.22.7v0.22.7Max Kellermann
2021-05-18command/file: cache the last "albumart" fileMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1156
2021-05-17{input,storage}/curl: set CURLOPT_HTTPAUTH=CURLAUTH_BASICMax Kellermann
With the default value CURLAUTH_ANY, libcurl needs to probe for authentication methods first, and only the second request will have an Authorization header. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1155
2021-04-26output/jack: enable on WindowsMax Kellermann
This enables the JACK output plugin on Windows, but doesn't link against libjack64.dll, instead loads the DLL at runtime with LoadLibrary(). This kludge avoids the extremely fragile JACK shared memory protocol by using the system's libjack64.dll, without requiring the same DLL at build time.
2021-04-26output/control: add missing nullptr checksMax Kellermann
Fixes crash when pausing the default partition after an output was moved to another partition. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1147
2021-04-15Revert "tag/Pool: use strncmp() without strlen() to compare strings"Max Kellermann
This reverts commit 1532983fb5755305a86fc37d2f35a7757d2bd66f. This optimization was bad because now all strings match if they are a prefix of another string, and this caused collisions in the tag string pool, corrupting the database.
2021-03-13gme: add support for rsn filesJohn Regan
Upcoming release of game-music-emu will support it, details here: https://bitbucket.org/mpyne/game-music-emu/pull-requests/23/rsn-support
2021-03-10Added cross-origin header to http headers of the http output.bitkeeper
The current http output doesn't provide a header for cross-origin support. This prevents to use the mpd http stream directly from an other webapplication due the origin from the webpage differs from then the audio stream. The fix is to add the following header to the http response: Access-Control-Allow-Origin: *
2021-03-05output/wasapi: Add dop support for WASAPIShen-Ta Hsieh
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1102
2021-03-05output/wasapi: use default device only if none was configuredMax Kellermann
2021-03-04src/output: add algorithm for finding usable AudioFormatShen-Ta Hsieh
* Use PcmExport for 24bit packed output
2021-03-04time/ISO8601: don't use glibc extension in strptime.Érico Rolim
Per the manual for strptime, %F is equivalent %Y-%m-%d, so use that directly.
2021-03-04storage/plugins/CurlStorage: don't use glibc extension inÉrico Rolim
ParseTimePoint. %Z is a glibc extension to strptime, and is a no-op there, due to the mapping between timezone names and their definition (especially when the name comes from a different machine) being ambiguous / impossible. Time in HTTP headers is guaranteed to be UTC. Passing an unknown format to strptime() implementations that don't support it will generally cause them to return NULL, which will lead to ParseTimePoint throwing an exception and ParseTimeStamp using an unnecessary fallback. Since the timezone name goes at the end of the string, we don't need to use %Z to skip it (could be an issue in a different time stamp format), so simply removing %Z works best.
2021-02-22decoder/ffmpeg: fix build problem with FFmpeg 3.4Max Kellermann
Regression by commit a22d1c88d7e11bfdc553f38a86d416783421c7e4 Closes https://github.com/MusicPlayerDaemon/MPD/issues/1097
2021-02-17increment version number to 0.22.7Max Kellermann
2021-02-16release v0.22.6v0.22.6Max Kellermann
2021-02-16db/simple: fix ExportedSong move constructor for non-owning sourcesMax Kellermann
If the constructor moves from an ExportedSong instance which refers to somebody else's "Tag" instance, the newly constructed instance will instead refer to its own empty "tag_buffer" field. This broke SimpleDatabase::GetSong(), i.e. all songs on the queue restored from the state file or added using the "addid" command. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1089
2021-02-16increment version number to 0.22.6Max Kellermann
2021-02-15release v0.22.5v0.22.5Max Kellermann
2021-02-15command/queue: better error message for open-ended range with "move"Max Kellermann
The "move" command doesn't allow open-ended ranges because they don't make a lot of sense; moving an open-ended range is only possible if the destination index is before the range, and in that case, the client should be well aware how many songs there are. Closes https://github.com/MusicPlayerDaemon/MPD/pull/1057
2021-02-15protocol/ArgParser: check for invalid rangesMax Kellermann
Catch errors like that early, before invalid ranges get passed to internal MPD subsystems.
2021-02-15android/AndroidManifest.xml: enable requestLegacyExternalStorageMax Kellermann
This is a workaround for the new scoped storage design in Android 11: https://developer.android.com/about/versions/11/privacy/storage This needs a proper solution eventually, but this quick fix will do until we change "targetSdkVersion" to 30. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1061
2021-02-15db/simple: fix dangling LightSong::tag reference in moved ExportedSongMax Kellermann
After commit 1afa33c3c766af2, an old bug was revealed: SimpleDatabase::GetSong() constructs an ExportedSong instance by moving the return value of Song::Export(), which causes the LightSong::tag field to be dangling on the moved-from ExportedSong::tag_buffer. This broke tags from CUE sheets. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1070
2021-02-15output/pulse: don't drain if stream is suspended or corkedMax Kellermann
In this state, we can't make any progress. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1084
2021-02-07python/build/libs.py: enable CURL/schannel support on WindowsMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1031
2021-02-07archive/iso9660: another fix for unaligned readsMax Kellermann
Commit 79b2366387dcd5f4ccae50eacf1ae06973f01d83 added the field `skip` to support unaligned reads, but set the `offset` field to a wrong value. This resulted in miscalculation of `remaining`, causing an assertion failure. The fix is to assign `offset` the correct value, but consider the `skip` value in the assertion. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1067
2021-02-07Fix: Separate Conductor from Performervkostas
Conductor was incorrectly saved to Performer tag in MPD database
2021-01-21net/SocketError: add syscall specific check functionsMax Kellermann
Fixes Windows compatibility.
2021-01-21increment version number to 0.22.5Max Kellermann
2021-01-21release v0.22.4v0.22.4Max Kellermann
2021-01-21protocol: add command "binarylimit"Max Kellermann
Increasing the protocol version to 0.22.4 to allow clients to detect this feature. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1038
2021-01-21python/build/libs.py: build CURL with OpenSSL supportMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1059
2021-01-21db/simple/Song: Export() merges tags with "target"Max Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1048
2021-01-21SongPrint: use LightSong::GetDuration()Max Kellermann
This properly prints the "Time"/"duration" values for songs in virtual CUE folders. This is loosely related to https://github.com/MusicPlayerDaemon/MPD/issues/1048
2021-01-20command/file: use %zu to format a size_tMax Kellermann
`PRIoffset` was wrong, because it expects an `offset_type` (i.e. `uint64_t`). This broke on 32 bit machines where `size_t` has 32 bits. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1058
2021-01-05Merge branch 'bugfix/1039/fix-webdav' of git://github.com/PVince81/MPD into ↵Max Kellermann
v0.22.x Closes https://github.com/MusicPlayerDaemon/MPD/issues/1039
2020-11-16filter/ffmpeg: detect the output sample formatMax Kellermann
Some FFmpeg filters change the sample format, and since MPD assumes this never happens, this results in loud noise instead of music. This commit finally implements the TODO comment by sending one frame of silence to the filter and checking the output frame's format. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1009
2020-11-15Fixes #994 - moveoutput: new AudioOutputControl created from copyMoving an ↵Stapper
output to a partition is now done via MultipleOutputs::AddCopy(),using a new AudioOutputControl constructor. Tags and always_on settings willpersist when moving outputs between partitions.
2020-11-10decoder/dsdiff: apply padding to odd-sized chunksMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1001
2020-11-06increment version number to 0.22.4Max Kellermann
2020-11-06release v0.22.3v0.22.3Max Kellermann
2020-11-06storage/curl: fix nullptr dereferenceMax Kellermann
Pass a std::string to PathTraitsUTF8::Relative(), implicitly casting it to std::string_view. This selects the right overload which returns std::string_view instead of `const char *`; the latter could return `nullptr` which would cause the implicit conversion of the return value to std::string_view to crash. Regression caused by commits ead208987dd and a98d627c0bd. Closes https://github.com/MusicPlayerDaemon/MPD/issues/995
2020-11-04filter/LoadChain: use the AutoConvertFilterMax Kellermann
This adds support for input samples other than 16 bit to the FFmpeg filter plugin.
2020-11-04filter/ffmpeg: interleave the output AVFrameMax Kellermann
If the FFmpeg filter outputs planar data, interleave it, just like the FFmpeg decoder plugin does.
2020-11-04filter/chain: copy the child nameMax Kellermann
filter_chain_parse() passes a temporary string pointer which results in a use-after-free in the PreparedChainFilter::Child::Open() error message.