summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-21release v0.21.26v0.21.26v0.21.xMax Kellermann
2020-09-21archive/iso9660: fix odd seeking bug (assertion failure)Max Kellermann
Skip the beginning of a sector if the last seek was odd, and clear the buffer on seek.
2020-09-21archive/iso9660: remove unused macro CEILING()Max Kellermann
2020-09-21util/ByteOrder: add FromLE16S()Max Kellermann
2020-09-21Support opus header gain tags and match opus playback volume to other tracks ↵Desuwa
when ReplayGain is enabled.
2020-09-21fix double promotionsRosen Penev
Found with -Wdouble-promotion Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-09-17db/update/InotifyUpdate: pass path by value to recursive_watch_subdirectories()Max Kellermann
2020-09-17db/update/InotifyUpdate: obey `.mpdignore` filesMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/846
2020-09-16db/update/InotifyUpdate: split the WatchDirectory constructorMax Kellermann
2020-09-16db/update/InotifyUpdate: use class DirectoryReaderMax Kellermann
2020-09-16db/update/InotifyUpdate: convert pointer to referenceMax Kellermann
2020-09-16db/update/InotifyUpdate: remove commented log callMax Kellermann
2020-09-16command/file, storage/{nfs,smbclient}: use PathTraitsFS::IsSpecialFilename()Max Kellermann
Eliminate some duplicate code.
2020-09-16db/update/InotifySource: use `auto`Max Kellermann
2020-09-16db/update/InotifySource: add `noexcept`Max Kellermann
2020-09-16db/update/InotifyQueue: add `noexcept`Max Kellermann
2020-09-16db/update/Inotify*: include cleanupMax Kellermann
2020-09-16player/Thread: call OnPlayerSync() in SeekDecoder()Max Kellermann
This fixes a spurious "single" mode bug which occurs when using "play" or "seek" to start playback on the song that is currently paused: in that case, the main thread never queues the next song, and at the end of the song, the player thread exits Run(), stopping playback, and after that, the main thread starts the next song without considering "single" mode. By calling OnPlayerSync(), we ensure that the main thread gets a chance to queue the next song before the player thread exits the Run() loop. Closes https://github.com/MusicPlayerDaemon/MPD/issues/850
2020-09-16player/Thread: add another code comment explaining OnPlayerSync()Max Kellermann
2020-09-16player/Thread: update function name in commentMax Kellermann
2020-09-16LogBackend: change the initial log_threshold to DEFAULTMax Kellermann
The log levels have always been very confusing (and badly named), but this was most confusing: if there's a log level called "default", why is it not the default? Closes https://github.com/MusicPlayerDaemon/MPD/issues/926
2020-09-16decoder/ffmpeg: add "hls+http://" to the list of supported protocolsMax Kellermann
2020-09-16decoder/ffmpeg: remove "rtsp://" from the list of supported protocolsMax Kellermann
FFmpeg implements RTSP as a demuxer, not as a protocol handler. Thus, avio_open() cannot be used, and our input plugin cannot handle RTSP. Closes https://github.com/MusicPlayerDaemon/MPD/issues/930
2020-09-07archive/iso9660: implement seekingMax Kellermann
2020-09-07archive/iso9660: fix unaligned readsMax Kellermann
Oh the horror! This plugin cannot possibly ever have worked. It was broken from the start, when it was added in commit 37796699cf7 nearly twelve (!) years ago. The plugin would always read at sector boundaries, so it could only ever work at multiples of 2 kB.
2020-09-07test/test_archive_iso9660.sh: use an odd chunk size to trigger bugMax Kellermann
This makes the unit test fail. D'oh!
2020-09-07test/run_input: add option --chunk-sizeMax Kellermann
2020-09-07test/run_input: pass FileDescriptor to dump_input_stream()Max Kellermann
2020-09-07system/FileDescriptor: add method FullWrite()Max Kellermann
2020-09-07*: use nullptr instead of NULLMax Kellermann
2020-09-07io/FileDescriptor: add method FullRead()Max Kellermann
2020-09-07test/run_filter: use Filter::Flush()Max Kellermann
2020-09-07test/run_filter: pass ConstBuffer<void> to FullWrite()Max Kellermann
2020-09-07test/run_filter: fix error messageMax Kellermann
2020-09-07test/run_filter: check for partial writesMax Kellermann
2020-09-07test/run_filter: move code to WriteOrThrow()Max Kellermann
2020-09-07test/run_filter: use class FileDescriptorMax Kellermann
2020-09-07test/run_filter: ensure that partial frames will not get passed to the filterMax Kellermann
2020-09-07test/run_filter: move the buffer into the loopMax Kellermann
2020-09-07test/run_input: use WithBufferedOutputStream()Max Kellermann
2020-09-07test/run_input: convert pointer to referenceMax Kellermann
2020-09-04archive/iso9660: free iso9660_stat_t as early as possibleMax Kellermann
2020-09-04archive/bzip2: make variables more localMax Kellermann
2020-09-04archive/bzip2: move the eof check out of the ScopeUnlockMax Kellermann
2020-09-04archive/bzip2: throw on unexpected input EOFMax Kellermann
Don't silently return 0 when there is no more data, because this may crash the caller. And flush output even if input EOF has been reached.
2020-09-04archive/bzip2: simplify bz_stream initializerMax Kellermann
2020-09-04archive/bzip2: fold Open() into constructorMax Kellermann
2020-09-04archive/bzip2: reorder fields to improve packingMax Kellermann
2020-09-04archive/bzip2: add `override`Max Kellermann
2020-09-04python/build/libs.py: update Boost to 1.74.0Max Kellermann