summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-08-06mixer/alsa: use cached values to work around rounding errorsMax Kellermann
This replaces 967af603270246f1c97e11b8bad6a0eb65c81318 with a more effective workaround. Closes https://github.com/MusicPlayerDaemon/MPD/issues/822
2021-08-06mixer/alsa: skip the snd_mixer_handle_events() call in ↵Max Kellermann
alsa_mixer_elem_callback() snd_mixer_handle_events() has already been called by DispatchSockets(). This way, we can also skip the exception handler.
2021-08-06mixer/alsa: move alsa_mixer_elem_callback() into the AlsaMixer classMax Kellermann
2021-08-06mixer/alsa: move code to GetPercentVolume()Max Kellermann
2021-08-06mixer/alsa: move code to NormalizedToPercent()Max Kellermann
2021-08-06mixer/alsa: move code to GetNormalizedVolume()Max Kellermann
2021-08-05db/simple: prune CUE entries from database for non-existent songsMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1019
2021-08-05db/update/Playlist: prepend "../" only for relative URIsMax Kellermann
Prepending "../" to absolute URIs would break them.
2021-08-05fs/Traits: add PathTraitsUTF8::IsAbsoluteOrHasScheme()Max Kellermann
2021-08-05db/simple/Directory: remove obsolete API docMax Kellermann
2021-08-05decoder/Bridge: call UpdateStreamTag() only if there is no pending seekMax Kellermann
If UpdateStreamTag() gets called while an initial seek is pending, the result will never be submitted to a MusicChunk. By avoiding the UpdateStreamTag() call in that case (by moving UpdateStreamTag() to after the PrepareInitialSeek() check), the song_tag is preserved until UpdateStreamTag() is called again from SubmitData(). This fixes missing tags in the "httpd" output. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1137
2021-08-05output/oss: always enable PcmExport for alsa_channel_orderMax Kellermann
We need this even when AFMT_S24_PACKED is not available, for the correct channel order in multi-channel files. Internally, MPD uses FLAC channel order, but OSS uses the same channel order as ALSA.
2021-08-05tag/Builder: do not acquire tag_pool_lock if TagItem list is emptyMax Kellermann
2021-08-05tag/Builder: use std::swap() in move operatorMax Kellermann
This way, we save the overhead for acquiring the tag_pool_lock.
2021-08-05tag/Builder: don't ignore the result of tag_pool_dup_itemCebtenzzre
Also, use RemoveAll() instead of directly clearing TagBuilder::items in most cases, as its elements represent references that must be released. Closes #1023
2021-08-05tag/Builder: another missing RemoveAll() callCebtenzzre
2021-08-05tag/Builder: use RemoveAll() to give up referencesCebtenzzre
2021-08-05tag/Pool: add [[nodiscard]]Cebtenzzre
2021-08-05input/tidal: remove defunct unmaintained pluginMax Kellermann
This plugin has been defunct for several years. Tidal has not ever replied to any of my emails, so they're apparently not interested in MPD support.
2021-08-02input/icy: adjust offset at end of stream in Read()Max Kellermann
ProxyInputStream::Read() assigns the `offset` field, which is the wrong offset because it does not consider Icy metadata removed from the stream. Therefore, after every ProxyInputStream::Read() call, IcyInputStream::Read() needs to override this offset. This was missing at the end of the stream, when Read()==0. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1216
2021-07-30db/simple/ExportedSong: check src.OwnsTag(), not this->OwnsTag()Max Kellermann
this->OwnsTag() accesses fields that are not yet initialized.
2021-07-16command/file: support "albumart" for virtual tracks in CUE sheetsMax Kellermann
Instead of checking for "cover.jpg" in the virtual directory representing the CUE sheet, check its enclosing directory. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1206
2021-07-16command/file: pass directory uri to read_stream_art()Max Kellermann
2021-07-16fs/Traits: add overload GetParent(string_view)Max Kellermann
2021-07-16output/winmm: fix struct/class mismatchMax Kellermann
2021-06-23TagAny: invoke ScanGenericTags() on remote filesMax Kellermann
This fixes reading ID3 tags on remote files with the commands "readcomments" and "readpicture". Closes https://github.com/MusicPlayerDaemon/MPD/issues/1180
2021-06-22Main: use AtScopeExit() to call ZeroconfDeinit()Max Kellermann
Make sure that ZeroconfDeinit() gets called even if startup fails with an exception. Fixes an assertion failure because an Avahi TimerEvent is still active. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1192
2021-05-31decoder/ffmpeg: fix build failure with FFmpeg 3.4Max Kellermann
av_demuxer_iterate() was added in libavformat 58.9.100. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1178
2021-05-31decoder/ffmpeg: suppress -Wunused with libavformat<58.6.100Max Kellermann
2021-05-31db/proxy: suppress -Wunused with libmpdclient<2.12Max Kellermann
2021-05-27input/last: call Close() in Open()Max Kellermann
Prevents a possible bug which occurs when the caller-provided open() function throws; then the "uri" field is never set.
2021-05-27input/last: clear "uri" field in Close()Max Kellermann
Prevent false negative after the stream was closed automatically after 20 seconds.
2021-05-26decoder/ffmpeg: support the tags "album-sort", "artist-sort"Max Kellermann
2021-05-26decoder/ffmpeg: support the "sort_album" tagMax Kellermann
From libavformat/mov.c. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1173
2021-05-26decoder/ffmpeg: add commentMax Kellermann
2021-05-26decoder/ffmpeg: remove "year" tagMax Kellermann
This mapping was added 11 years ago in commit 766b9fd453a, but FFmpeg doesn't appear to support it.
2021-05-26decoder/ffmpeg: fix ArtistSort and AlbumArtistSort mappingMax Kellermann
These were added 11 years ago in commit 766b9fd453a, but I cannot find any evidence in the FFmpeg repository that these names were ever supported. This commit adds the tags as they are currently present in libavformat/mov.c.
2021-05-25db/update/Walk: load all .mpdignore files of all parent directoriesMax Kellermann
When updating everything, this did work, but if updating only a subdirectory, the ".mpdignore" in the parents were not used. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1172
2021-05-25db/update/Walk: move code to LoadExcludeList()Max Kellermann
2021-05-25zeroconf/AvahiPoll: the struct timeval is an absolute time pointMax Kellermann
Fixes broken libavahi-client timeouts.
2021-05-25zeroconf/AvahiPoll: move code to Schedule()Max Kellermann
2021-05-25zeroconf/AvahiPoll: rename "timer" to "event"Max Kellermann
2021-05-25decoder/mad: move variable declaration into "case"Max Kellermann
2021-05-25zeroconf/avahi: move variable declaration into "case"Max Kellermann
2021-05-25subprojects/sqlite3.wrap: add SQLite wrapMax Kellermann
2021-05-25sticker/Database: pass NarrowPath to sqlite3_open()Max Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1171
2021-05-25lib/sqlite/meson.build: add missing external dependency on libsqliteMax Kellermann
2021-05-25util/RuntimeError: Disable format-security for gccNamkhai B
Fixes building under GCC 11
2021-05-22input/last: add nullptr check to Open(), fixes assertion failureMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1168
2021-05-19CommandLine: update copyright year in --version outputMax Kellermann