summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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-21client/FileCommands: validate the given offsetMax Kellermann
2021-01-21event/FullyBufferedSocket: add method GetOutputMaxSize()Max Kellermann
2021-01-21util/PeakBuffer: add method max_size()Max Kellermann
2021-01-21util/PeakBuffer: use std::byte instead of std::uint8_tMax Kellermann
2021-01-21util/PeakBuffer: add `noexcept`Max Kellermann
2021-01-21util/PeakBuffer: use std::size_tMax Kellermann
2021-01-21util/ForeignFifoBuffer: use `auto`Max Kellermann
2021-01-21command/Request: ParseUnsigned() returns unsignedMax Kellermann
Of course, it should do that!
2021-01-21input/curl: disable verify_peer on Android by defaultMax Kellermann
I havn't yet figured out how to use Android's system CA certificates with CURL/OpenSSL, so a temporary workaround is to disable verify_peer by default. The data MPD transfers isn't extremely important, so the servers's authenticity isn't extremely important either.
2021-01-21db/simple/Song: Export() merges tags with "target"Max Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1048
2021-01-21db/simple/ExportedSong: add option to own a TagMax Kellermann
2021-01-21db/simple/ExportedSong: new classMax Kellermann
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-21util/StringView: add method SplitLast()Max Kellermann
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-20client/Response: add `printf` attributeMax Kellermann
2021-01-20Merge branch 'bugfix/1043/remove-basepath-handling' of ↵Max Kellermann
git://github.com/PVince81/MPD into v0.22.x
2021-01-19output/sles: add missing include for assert()Max Kellermann
2021-01-19lib/pcre/RegexPointer: work around bogus -Wmaybe-uninitialized with GCC 11Max Kellermann
2021-01-08Remove relative path handling which was not neededVincent Petry
The original base relative path was introduced due to an erroneous test where the URL started with three slashes: "https:///" instead of two, which led to implementing handling for such cases but broke the two slashes case. This fix removes the base relative path handling because with two slashes the path is anyway always relative to the host (aka absolute URI, without host). This reverts 216f62ea1468933f4a78f17885b27e37e1393d8c and part of 74b2fc7fdca9be13cbbe4cb52b2fab573b3cf82c Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
2021-01-05Use uri_has_scheme for Webdav response hrefVincent Petry
Use uri_has_scheme to find out if the href in Webdav responses is absolute to use the matching base path extraction. Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
2021-01-04Webdav href in response can be relativeVincent Petry
Fixed Webdav base path stripping in cases where href is a relative path. Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
2021-01-04Fix parsing propstat blocksVincent Petry
There can be more than one propstat block each with their own status code. We're only interested in the one with the 200 status, the found properties. This fixes parsing to make sure we process all propstat blocks instead of just the last one, which might have a 404 status for not-found properties. Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
2021-01-04Fix Webdav storage PROPFIND requestVincent Petry
Remove additional "a:prop" in PROPFIND request to match RFC 4918 section 9.1.3. Added Content-Type header as the body is not a true multipart POST. Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
2021-01-01copyright year 2021Max Kellermann
2020-12-01input/{tidal,qobus}: add missing includes for assert()Max Kellermann
2020-12-01input/tidal: add missing include for assert()Max Kellermann
2020-11-30lib/ffmpeg/Filter: Add define required for avutilDanilo Spinella
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-15output/Control: allow copy elision (fix -Wpessimizing-move)Max Kellermann
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-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/AutoConvert: move the Filter class to TwoFilters.cxxMax Kellermann
2020-11-04filter/AutoConvert: eliminate AutoConvertFilter if possibleMax Kellermann
If no conversion is necessary, return the child Filter as-is. This allows removing all nullptr checks from AutoConvertFilter.
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-04decoder/ffmpeg: move code to lib/ffmpeg/Interleave.cxxMax Kellermann
To be reused by the FFmpeg filter plugin.
2020-11-04decoder/ffmpeg: use AVFrame fields instead of AVCodecContext fieldsMax Kellermann
2020-11-04lib/ffmpeg/Buffer: add missing includeMax Kellermann
2020-11-04lib/ffmpeg/Buffer: disallow copyingMax Kellermann
2020-11-04lib/ffmpeg/Buffer: add `noexcept`Max Kellermann
2020-11-04lib/ffmpeg/{Buffer,Time}: remove obsolete "#undef SampleFormat"Max Kellermann
This compatibility macro has been removed from FFmpeg long ago.
2020-11-04filter/convert: convert_filter_new() returns std::unique_ptrMax Kellermann
2020-11-04filter/chain: pass std::string_view to filter_chain_append()Max Kellermann
2020-11-04filter/LoadChain: use IterableSplitString()Max Kellermann
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.
2020-11-04filter/chain: remove unused field ChainFilter::Child::nameMax Kellermann
2020-11-04playlist/registry: add option "as_directory"Max Kellermann
This allows users to disable the "CUE files as directories" feature without having to disable the CUE playlist plugin completely. This feature has been annoying some users.