Max Kellermann
4ee0a06e18
Merge branch 'v0.22.x'
2021-05-26 13:15:29 +02:00
Max Kellermann
38e24208f6
decoder/ffmpeg: support the tags "album-sort", "artist-sort"
2021-05-26 13:04:47 +02:00
Max Kellermann
fbaedf2262
decoder/ffmpeg: support the "sort_album" tag
...
From libavformat/mov.c.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1173
2021-05-26 13:03:47 +02:00
Max Kellermann
8f3341cefb
decoder/ffmpeg: add comment
2021-05-26 13:03:41 +02:00
Max Kellermann
4ec4bab3a9
decoder/ffmpeg: remove "year" tag
...
This mapping was added 11 years ago in commit 766b9fd453
, but FFmpeg
doesn't appear to support it.
2021-05-26 13:03:27 +02:00
Max Kellermann
6d567bcd35
decoder/ffmpeg: fix ArtistSort and AlbumArtistSort mapping
...
These were added 11 years ago in commit 766b9fd453
, 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-26 13:03:26 +02:00
Max Kellermann
4f75eb9bfe
output/pipewire: remove unreachable "return" statement
2021-05-26 11:57:57 +02:00
Max Kellermann
d2bd12822f
Merge branch 'v0.22.x'
2021-05-26 11:57:41 +02:00
Max Kellermann
363d9f0180
db/update/Walk: load all .mpdignore files of all parent directories
...
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-25 22:42:44 +02:00
Max Kellermann
db0682a469
db/update/Walk: move code to LoadExcludeList()
2021-05-25 22:38:01 +02:00
Max Kellermann
7a6823dcdf
zeroconf/AvahiPoll: the struct timeval is an absolute time point
...
Fixes broken libavahi-client timeouts.
2021-05-25 22:25:45 +02:00
Max Kellermann
bce144a232
zeroconf/AvahiPoll: move code to Schedule()
2021-05-25 22:23:55 +02:00
Max Kellermann
0cef84cac6
zeroconf/AvahiPoll: rename "timer" to "event"
2021-05-25 22:23:55 +02:00
Max Kellermann
8c690fb737
decoder/mad: move variable declaration into "case"
2021-05-25 21:34:09 +02:00
Max Kellermann
dad1c21b59
zeroconf/avahi: move variable declaration into "case"
2021-05-25 21:34:09 +02:00
Max Kellermann
3488a47c41
subprojects/sqlite3.wrap: add SQLite wrap
2021-05-25 20:51:03 +02:00
Max Kellermann
fd82d67678
sticker/Database: pass NarrowPath to sqlite3_open()
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1171
2021-05-25 18:45:45 +02:00
Max Kellermann
e66c12105b
lib/sqlite/meson.build: add missing external dependency on libsqlite
2021-05-25 18:41:43 +02:00
Max Kellermann
8a9d678bac
Merge branch 'v0.22.x'
2021-05-25 18:21:42 +02:00
Namkhai B
dbe12a6b90
util/RuntimeError: Disable format-security for gcc
...
Fixes building under GCC 11
2021-05-25 18:19:19 +02:00
Max Kellermann
0440c41cba
client/Response: add method Fmt() based on libfmt
2021-05-25 16:01:56 +02:00
Max Kellermann
0e49de867d
input/last: add nullptr check to Open(), fixes assertion failure
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1168
2021-05-22 17:33:25 +02:00
Max Kellermann
d3576a1b71
input/last: add nullptr check to Open(), fixes assertion failure
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1165
2021-05-21 19:30:36 +02:00
Max Kellermann
96707c0426
release v0.22.7
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmClOSYQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEkODD/49e950HLmZE8x3rmyeEEsgdvHkOVpPlKHo
+wsmSsi+N0sQKgEOffSYyL0MRWaQqzRMnl1EcEVErCfQl5f1mOw9+TL4f5ZEjVNw
CQFMy1awHtCfktgF5zq6NzXD3nor9mkjiP733x/kGcsxwfk/Y4radqUBKJ5Y4a2B
YSg35a/YTOfLCmb9WBquwAi22x7AkyBzyrY3ToCzynVuaNcT3gvLsAAMFzRUKpqD
QEoCtUxJ4CQayjWjtG/bBCs2TVSmJvovhM2xB4Jnm+MeZz+bKI0y+ALW2Wk0Agnd
qxDqyCEnvHi5pf8i9usl4/A63VDC7HHj9kDSLtPLGTijv+7Wvvr4kNpwm2DuJ4q1
1pOEgT480ryK1FPyO6XnYCk616NqjgMbplr6SQ1DuVpIddWdiGARoge/WiNvsbT9
pnEp0q9V3cQmuJ30LlskMJHAPyrE3KSrO1s+4P2zUeirwnMnOCPdq+gT+lRw4GNG
OqLFEDHaELgSaZxInCN8RCXdLMrpuvKm+FQQApU1KwbYPXIassR14yt6BPpjxqea
vkvFLtpwFWthNPLkujak5rDqAPvbHzAeOfaOiZelzd21nl/1omiMXSXRcJkEjONi
JC5VWJpi1PHMXocq6AcOQT/9XhIH4uDA+Xghn7CURBTB6WoB954TSmuVIjXTfgAv
XQYqRR+7Yw==
=Gtzo
-----END PGP SIGNATURE-----
Merge tag 'v0.22.7'
release v0.22.7
2021-05-19 18:43:19 +02:00
Max Kellermann
466a05bc52
CommandLine: update copyright year in --version output
2021-05-19 18:09:38 +02:00
Max Kellermann
6de4064cca
client/Response, command/file: use %lu instead of %zu on Windows
...
Fixes -Wformat warnings.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1150
2021-05-19 18:06:40 +02:00
Max Kellermann
bcf0fdd3a8
meson.build: define NOUSER on Windows for lighter windows.h
...
A few exceptions are needed for sources which include COM header
(directly or indirectly).
This fixes lots of shadow warnings, see
https://github.com/MusicPlayerDaemon/MPD/issues/1150
2021-05-19 18:02:49 +02:00
Max Kellermann
a8f05a7efc
win32/HResult: un-inline HRESULTToString() to reduce header dependencies
2021-05-19 17:48:42 +02:00
Max Kellermann
c64a3b5dbb
fs/Glob: un-inline the Windows version to reduce header dependencies
2021-05-19 17:41:23 +02:00
Max Kellermann
16c38c438f
fs/Glob: use defaulted move constructor
2021-05-19 17:40:23 +02:00
Max Kellermann
48cc4a6ced
fs/Glob: remove redundant #ifdefs
2021-05-19 17:40:03 +02:00
Max Kellermann
a169a05e41
win32, ...: avoid including windows.h
...
Include the most specific header documented by MSDN instead.
2021-05-19 17:25:32 +02:00
Max Kellermann
8efa5c7641
output/wasapi: use "%lu" in log calls
...
"%lu" is portable - it works with both POSIX and Microsoft flavors.
Fixes a part of https://github.com/MusicPlayerDaemon/MPD/issues/1150
2021-05-19 17:10:49 +02:00
Max Kellermann
28e7be248f
util/RuntimeError: disable -Wformat-security as a kludge
2021-05-19 14:57:20 +02:00
Max Kellermann
e016cc8940
lib/upnp/meson.build: auto-disable UPnP without CURL/expat
2021-05-19 14:37:13 +02:00
GrimReaperFloof
34f636ffc3
Change WritableBuffer<uint8_t> to AllocatedArray<std::byte>
2021-05-19 09:54:06 +02:00
GrimReaperFloof
a134f692bf
Code deduplication: move mod_loadfile() into ModCommon.cxx
2021-05-19 09:53:39 +02:00
Max Kellermann
d747576793
Merge branch 'npu' of git://github.com/neheb/MPD
2021-05-19 09:48:12 +02:00
Max Kellermann
d9578f6427
Merge branch 'flac-ogg' of git://github.com/jprjr/VGMPD
2021-05-19 09:33:42 +02:00
Max Kellermann
b2cec7a0a3
Merge branch 'v0.22.x'
2021-05-19 08:09:05 +02:00
Max Kellermann
85db2d6704
db/proxy: split search into chunks to avoid exceeding the output buffer
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1130
2021-05-19 08:04:50 +02:00
Max Kellermann
22ebb2bdd5
db/proxy: send "window" as separate parameter to SendConstraints()
2021-05-19 07:51:48 +02:00
Max Kellermann
e108568082
db/proxy: require libmpdclient 2.11 or later
...
Remove lots of #ifdefs.
2021-05-19 07:46:42 +02:00
Max Kellermann
4fc08e39b4
db/proxy: require MPD 0.20 or later
...
Allows using ranges, always. This is required to fix
https://github.com/MusicPlayerDaemon/MPD/issues/1130 without adding
more runtime conditionals.
2021-05-19 07:41:04 +02:00
Max Kellermann
c3f9b38c97
command/PlaylistCommands: pass real_uri to LookupRemoteTag()
...
For querying tags, the real song URI should be used, because if the
(display) URI is different, requesting it will not produce a usable
response. This is a theoretical problem because none of the existing
playlist plugins sets the real_uri.
This requires changing the URI comparison in playlist::TagModified().
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1154
2021-05-18 21:35:09 +02:00
Max Kellermann
dbb18a401b
command/file: cache the last "albumart" file
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1156
2021-05-18 17:04:09 +02:00
Max Kellermann
e1e41708af
input/LastInputStream: new class
2021-05-18 17:04:09 +02:00
Max Kellermann
a2bdac571a
Merge branch 'v0.22.x'
2021-05-17 19:33:15 +02:00
Max Kellermann
638dfc3981
{input,storage}/curl: set CURLOPT_HTTPAUTH=CURLAUTH_BASIC
...
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-05-17 19:26:05 +02:00
Max Kellermann
6f51d910ee
python/build/libs.py: update CURL to 7.76.1
2021-05-17 18:42:05 +02:00
John Regan
87fa6bca54
flac encoder: enable Ogg FLAC and Ogg chaining
...
refactors GenerateOggSerial into a generic GenerateSerial
utility, under the util lib.
libFLAC may be encoded without Ogg support. If Ogg support is disabled,
libFLAC will still export Ogg-related methods (like setting a serial
number), and throw a runtime error when initializing an Ogg stream.
GenerateOggSerial does not depend on libogg. Refactoring it into
a generic GenerateSerial prevents having to add build-time checks
for libogg within the FLAC encoder plugin.
2021-05-15 11:31:01 -04:00
GrimReaperFloof
a0334d1d94
Add resampling mode setting to modplug decoder
2021-05-07 19:48:52 +02:00
Max Kellermann
0f02bbc2fe
output/jack: enable on Windows
...
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-26 21:47:20 +02:00
Max Kellermann
b885f358a5
output/control: add missing nullptr checks
...
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-26 21:34:58 +02:00
Max Kellermann
423f2df5e0
pcm/Volume: drop support for GCC older than 8
2021-04-20 20:01:43 +02:00
Max Kellermann
0122dc8452
util/BindMethod: drop support for GCC older than 7
2021-04-20 20:01:08 +02:00
Max Kellermann
650a30d794
Revert "tag/Pool: use strncmp() without strlen() to compare strings"
...
This reverts commit 1532983fb5
. 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-04-15 16:15:44 +02:00
Max Kellermann
95ad1b0cc6
use [[gnu::pure]] instead of gcc_pure
...
This is semi-standard and doesn't require the util/Compiler.h header.
2021-04-06 14:09:21 +02:00
Max Kellermann
52f46b94e9
util/AllocatedString: add concatenating constructor
2021-04-06 14:06:16 +02:00
Max Kellermann
e07e0bc9c1
util/AllocatedArray: include cleanup
2021-04-06 14:05:29 +02:00
Max Kellermann
4a1c231734
net/SocketError: use constexpr
2021-04-06 13:59:58 +02:00
Max Kellermann
fd0e958e95
net/SocketError: use auto
2021-04-06 13:58:46 +02:00
Max Kellermann
3d814115c8
net/SocketError: change "const" to "pure"
2021-04-06 13:58:32 +02:00
Max Kellermann
ca726a0110
util/StringBuffer: make capacity() static
...
This allows using it in constant expressions.
2021-04-06 13:46:07 +02:00
Max Kellermann
e01710cbd1
util/DereferenceIterator: simplify operator->()
...
This makes it compatible with containers storing std::unique_ptr.
2021-04-06 13:45:32 +02:00
Max Kellermann
c87a4a7d08
util/DereferenceIterator: fix static_cast in operator->()
2021-04-06 13:45:10 +02:00
Max Kellermann
b59170b702
Java/Exception: simplify RethrowException()
2021-04-06 13:35:59 +02:00
Max Kellermann
a237db556a
java/File: add non-static GetAbsolutePath() overload
2021-04-06 13:35:59 +02:00
Max Kellermann
285ba54fe5
java/String: remove unnecessary env
parameter
2021-04-06 13:35:59 +02:00
Max Kellermann
ee86434a89
java/String: add const
2021-04-06 13:35:59 +02:00
Max Kellermann
95d5efbfe6
java/Ref: add nullptr comparison
2021-04-06 13:35:59 +02:00
Max Kellermann
c33f206ce8
java/Ref: add nullptr constructor
2021-04-06 13:29:35 +02:00
Max Kellermann
2d95ac2e94
Java/String: inherit the super class constructor
2021-04-06 13:29:24 +02:00
Max Kellermann
f58c14a74a
Java: no namespace indent
2021-04-06 13:29:13 +02:00
Max Kellermann
a52ce7bb7b
java/Ref: add move operator
2021-04-06 13:27:11 +02:00
Max Kellermann
16d187b7ed
java/Ref: remove const
, add default initialiser
2021-04-06 13:26:54 +02:00
Max Kellermann
296ec4d07c
java/Ref: add nullptr check to destructor
...
May allow the compiler to optimize calls away.
2021-04-06 13:26:29 +02:00
Max Kellermann
6e58fd1583
lib/curl/Multi: reword API documentation
2021-03-29 20:19:21 +02:00
Max Kellermann
c5fec4ac2a
lib/curl/Multi: move operator bool() down
2021-03-29 20:19:21 +02:00
Max Kellermann
fe2ca1ddef
lib/curl/Multi: rename parameters
2021-03-29 20:19:19 +02:00
Jean-Francois Dockes
e960626804
Add npupnp support
...
libnpupnp is a C++ modification of libupnp.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-26 14:14:58 -07:00
Simon Persson
7dd2dce6ad
Support new tags in proxy plugin
...
Add support for the following tags when using the proxy database plugin:
WORK
CONDUCTOR
LABEL
GROUPING
MUSICBRAINZ_WORKID
COMPOSERSORT
ENSEMBLE
MOVEMENT
MOVEMENTNUMBER
LOCATION
2021-03-24 20:59:54 +01:00
Max Kellermann
a7ba10423d
Merge branch 'v0.22.x'
2021-03-13 08:41:10 +01:00
John Regan
6dfebf7df9
gme: add support for rsn files
...
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-13 08:40:25 +01:00
Shen-Ta Hsieh
4bcdcca7f5
output/wasapi: use calculated new buffer instead old one
2021-03-13 08:39:56 +01:00
bitkeeper
c08a8581ee
Added cross-origin header to http headers of the http output.
...
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-10 21:27:19 +01:00
Simon Persson
8f1e7385b7
Add tags relevant to classical music.
...
This commit adds some tags that are (mostly) interesting for listeners
of classical music.
Ensemble
--------
This is an ensemble that is playing the music, such as Wiener
Philharmoniker. The tag can be used to distinguish the ensemble from the
conductor, composer, soloist, and ensemble, that are generally all in
the "ARTIST" tag.
Movement
-------
The movement number and movement (name) of this track, i.e. "II" and
"Allegro".
ComposerSort
------------
Allows us to look for Beethoven's 9th under B, for Beethoven, not L for
Ludwig.
Location
--------
This is the location of the recording, e.g. "Wiener Musikverein".
2021-03-10 21:24:25 +01:00
Max Kellermann
25354b9d8c
Merge branch 'v0.22.x'
2021-03-10 21:06:12 +01:00
Max Kellermann
25b0194036
output/wasapi: implement Drain()
2021-03-10 21:05:48 +01:00
Max Kellermann
77fe727e69
output/wasapi: move the "is_started" flag to class WasapiOutputThread
2021-03-10 20:43:28 +01:00
Max Kellermann
73f9824ddf
output/wasapi: eliminate friend
declaration
2021-03-10 20:38:41 +01:00
Max Kellermann
1fe0c673bc
output/wasapi: implement Cancel() properly
...
Calling consume_all() is illegal in the producer thread.
2021-03-10 20:38:27 +01:00
Max Kellermann
8a045207a7
output/wasapi: add field paused
...
Fixes bogus Delay() results at the start of playback, because Delay()
thinks the output is paused.
2021-03-10 20:09:37 +01:00
Max Kellermann
fe7c5a4208
output/wasapi: initialize is_started in Open()
2021-03-10 20:07:22 +01:00
Max Kellermann
8024f7e84d
output/wasapi: move the thread->Play() call right before the consumed_size check
...
Fixes a bogus assertion failure (which can now be removed).
2021-03-10 20:07:19 +01:00
Max Kellermann
14f0134097
output/wasapi: make device_config const
2021-03-10 20:05:14 +01:00
Max Kellermann
1da27be84d
output/wasapi: move runtime fields below configuration fields
2021-03-10 20:00:08 +01:00
Max Kellermann
08135f2cb7
output/wasapi: make configuration fields const
2021-03-10 19:58:33 +01:00
Max Kellermann
5907656bbb
output/wasapi: stop the IAudioClient while paused
...
Instead of generating silence, do nothing, don't waste CPU time.
2021-03-10 17:48:49 +01:00
Max Kellermann
2ac2bd26f8
output/wasapi: combine two if
statements to one switch
2021-03-10 17:45:54 +01:00