summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-17command/file: return directory_uri if real_uri is unsetv0.22.xSamir Benmendil
Prevent a segfault when accessing album art. Fix #1224 #1225
2021-08-17increment version number to 0.22.11Max Kellermann
2021-08-06release v0.22.10v0.22.10Max Kellermann
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-06build/openssl: pass --cross-compile-prefix to ./ConfigureMax Kellermann
2021-08-06build/openssl: pass RANLIB=... to "make install"Max Kellermann
The "install_dev" target runs ranlib during installation, and this can break the Android build.
2021-08-06python/build/libs.py: update OpenSSL to 3.0.0-beta2Max Kellermann
2021-08-06python/build/libs.py: update CURL to 7.78.0Max Kellermann
2021-08-06doc/plugins.rst: move filter graph URL to ffmpeg.orgMax 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-07-16increment version number to 0.22.10Max Kellermann
2021-06-24doc/user.rst: rectify admin permissionNaglis Jonaitis
Updating the database no longer requires the `admin` permission, only `control` is needed (changed in 2abad0f479). See also: #1124
2021-06-23release v0.22.9v0.22.9Max Kellermann
2021-06-23Fix android build error when confronted with package versions ending in ↵Yetangitu
+revision_information The script seems to assume package version numbers always end in numeric versions with an optional alpha-suffix. Alas, were it only so simple... Sometimes the package is called fizzbang-1.2.3+release_info in which case the build fails. No more! Closes https://github.com/MusicPlayerDaemon/MPD/issues/1177
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-23doc/plugins.rst: mention default libsamplerate typeNaglis Jonaitis
2021-06-23doc/user.rst: document restore_pausedNaglis Jonaitis
2021-06-23doc, README.md: update IRC server name/URLNaglis Jonaitis
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-31Android: use startForegroundService() in Android 8+Max Kellermann
Fixes the error: IllegalStateException: Not allowed to start service Intent { cmp=org.musicpd/.Main (has extras) }: app is in background
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-26NEWS: mention new FFmpeg/ID3v2 tagsMax Kellermann
2021-05-26decoder/ffmpeg: support the tags "album-sort", "artist-sort"Max Kellermann