Commit Graph

17005 Commits

Author SHA1 Message Date
Max Kellermann 8bd1b5228c lib/upnp/Compat: suppress -Wunused-but-set-parameter 2022-05-19 20:10:41 +02:00
Max Kellermann 23dd613ff9 system/VmaName: suppress -Wunused-parameter 2022-05-19 14:01:57 +02:00
Max Kellermann bb7be9a4cd util/*FifoBuffer: migrate from WritableBuffer to std::span 2022-05-19 14:01:57 +02:00
Max Kellermann 570755f05a io/BufferedReader: migrate from WritableBuffer to std::span 2022-05-19 13:25:19 +02:00
Max Kellermann 957d3e51e0 util/{Const,Writable}Buffer: add std::span cast operators 2022-05-19 13:25:02 +02:00
Max Kellermann fc6c274c97 pcm/{Dop,Dsd*}: explicitly capture "this"
Implicit capturing is deprecated in C++20.
2022-05-19 13:25:02 +02:00
Max Kellermann 313b092ba8 system/meson.build: depend on libfmt, not our log.a
Fixes linker error.
2022-05-19 13:25:02 +02:00
Max Kellermann 0e9e213324 meson.build: switch to C++20 2022-05-19 09:46:59 +02:00
Max Kellermann 86e6f4fcc0 Merge branch 'v0.23.x' 2022-05-19 09:27:06 +02:00
Max Kellermann a009e95afd .github/ISSUE_TEMPLATE/bug_report.md: add "Configuration" section 2022-05-19 09:26:21 +02:00
Max Kellermann 32aafb3572 .github/ISSUE_TEMPLATE/question.md: remove, we have GitHub discussions now 2022-05-19 09:25:00 +02:00
Max Kellermann b577783cf0 .github/FUNDING.yml: remove, no funding
This was an experiment, but I decided I don't need that.
2022-05-19 09:24:22 +02:00
Max Kellermann aa7b872a14 .github/workflows/build.yml: run "apt-get update"
The build has been failing for a week or two because the package lists
in the image are outdated.
2022-05-19 09:23:08 +02:00
Caleb Xu c6f7f57776 apple/Throw: add missing <cstring> header
strlen() and strcpy() are provided by the <string.h> and <cstring>
headers (as functions in global and std namespaces, respectively).

Compilers MAY provide an implementation for either of the functions
without including the extra header but the existence of a declaration
without the header is not assured.
2022-05-19 09:08:44 +02:00
Max Kellermann 122db76781 release v0.23.7
-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmJ5gd4QHG1heEBtdXNp
 Y3BkLm9yZwAKCRAjbopYxttFEi1vD/9mcxGKnkx4yTDJZhtSWfsSE/5v+oFu09Qy
 Uk5ggk6PN18hMFZ2mcVYXdh7Yc1QiiAycgVFnchiVMYaF+K3LXefXvtkn81xuUNN
 QnJLX/o2hbnmr5Or/Ps+hgiQ0PEn0ui1+t70jJ8a3Ad9sJy3YFQc/HjLUeOZqT0p
 4qVyp614TtjtPlw/q0GHgiD1BxpH/pbcdMvioGj80MwBlwyrvA5IlV4HxxAAervw
 4KKT9XbtnHzR+fyUPv633CDU/bWNkTgbpMVyEhRXxE3heNaXMC4wSfsD/5XKDYLb
 zt/q1pAj6totKJwgdm76MoOKuVeNvw54jBE7st46+lPoH97h5uN9rpEAk00dXtSA
 2FuOw8bc79uN5ZRsWXJ6ZBWzwUvssAtx9ee2seR9BUpdeSGurdOfkKq0h/c/aUzN
 Qn6oWX75e7fMAB9MZhdCpM8lC0Nm5l9il+pA9811qaeZLO6yveW6by2Hmbo6BU0Q
 3MQKyhXJkLFAOwPR9qMAtr3rQ/Wyl4WsJ/kXIYBu7I7HjOxSHjNnZOMsvcLfCMC9
 dcRmtHOPjuVbafiypZ88SekIS0U+deXg33mKaWhH7FrCFEFbXf6GTBzXh/hHKtBm
 icGTwGoOHX53fTgQ9GwC0XBpVBFbY5/gGr2KuzABecU2TeL3QqLl8tolsnBGVYun
 JJ9n+RP0dQ==
 =iQJC
 -----END PGP SIGNATURE-----

Merge tag 'v0.23.7'

release v0.23.7
2022-05-09 23:14:07 +02:00
Max Kellermann 106ad08cd2 increment version number to 0.23.8 2022-05-09 23:12:17 +02:00
Max Kellermann 0341ca1b6a release v0.23.7 2022-05-09 23:04:30 +02:00
Max Kellermann 7581ea55db python/build/libs.py: update CURL to 7.83.0 2022-05-09 23:03:14 +02:00
Max Kellermann fc9cee38d8 python/build/libs.py: update OpenSSL to 3.0.3 2022-05-09 23:03:14 +02:00
Max Kellermann b175e4128d encoder/meson.build: always generate encoder/Features.h
Fixes regression from commit 85f9863e0a
2022-05-09 22:52:59 +02:00
Max Kellermann 97b07798b0 doc/protocol.rst: clarify repeat/single/random side effects 2022-05-09 22:50:57 +02:00
Max Kellermann 112fcd206d Merge branch 'fix-hls-seeking' of https://github.com/burrocargado/MPD into v0.23.x 2022-05-09 22:44:53 +02:00
BurroCargado 11d1f56062 Fix seeking HLS on-demand streaming not working
This issue occurs when playing HLS streaming delivered
from a server that does not support partial requests.
The issue is reproduced as follows(using Ubuntu 20.04 PC):

1. Prepare HLS example content.

$ mkdir test
$ ffmpeg -i example.flac -vn -c:a aac -b:a 128000 -f hls -hls_list_size 0 test/output.m3u8
(ffmpeg 4.2.4 is used)

2. Prepare web server without partial requests support.
(Docker version 20.10.12 and NGINX official Docker image is used)

$ docker run --name tmp-nginx-container -d nginx
$ docker cp tmp-nginx-container:/etc/nginx/conf.d/default.conf .
$ docker rm -f tmp-nginx-container

Edit default.conf and add "max_ranges 0;" to "location / {...}".
This disables partial requests support,
removes 'Accept-Ranges: bytes' header from the server response.
Then, run the server:

$ docker run --name test-nginx -v $PWD/test:/usr/share/nginx/html:ro -v $PWD/default.conf:/etc/nginx/conf.d/default.conf -d -p 8080:80 nginx

3. Setup MPD to Play the next URL.

http://address-of-the-server:8080/output.m3u8

Seeking this stream results in "exception: Not seekable".
2022-05-07 12:18:56 +09:00
BurroCargado bd840d4638 decoder/plugins/FFmpegDecoder: fix IsSeekable()
AVFMTCTX_UNSEEKABLE signals the stream is not seekable
according to FFmpeg source code description:
8e98dfc57f/libavformat/avformat.h (L1181)
2022-05-07 09:48:04 +09:00
Max Kellermann 601e5e6abc net/AddressInfo: add `noexcept` 2022-04-26 21:17:01 +02:00
Max Kellermann 6bacb23002 decoder/ffmpeg: add "noexcept" 2022-04-26 21:07:25 +02:00
Max Kellermann 5c300a9f1a tag/ReplayGainParser: add "noexcept" 2022-04-26 21:06:26 +02:00
Max Kellermann 6e1500c251 Merge branch 'v0.23.x' 2022-04-26 21:05:39 +02:00
Max Kellermann c3d393f214 tag/Id3Picture: fix unaligned access 2022-04-26 21:03:48 +02:00
Max Kellermann f88fc0ca1a util/ByteOrder: add class PackedBE32 2022-04-26 21:03:05 +02:00
Max Kellermann fb8d8242ab tag/ApeLoader: fix unaligned access
Fixes part 4 of https://github.com/MusicPlayerDaemon/MPD/issues/1490
2022-04-26 21:00:41 +02:00
Max Kellermann f2a3dfd700 decoder/ffmpeg: add missing nullptr checks
Fixes part 1 of https://github.com/MusicPlayerDaemon/MPD/issues/1490
2022-04-26 20:51:57 +02:00
Max Kellermann 9e1b24f3a1 input/{Async,Buffering,Thread}InputStream: set VMA name 2022-04-26 20:45:49 +02:00
Max Kellermann 58a345d346 MusicBuffer: set VMA name
Shows the name in /proc/PID/maps, e.g.:

 7fa57b000000-7fa57c000000 rw-p 00000000 00:00 0                          [anon:MusicBuffer]
2022-04-26 20:44:36 +02:00
Max Kellermann 7ed67d216b util/HugeAllocator: add SetName() 2022-04-26 20:44:36 +02:00
Max Kellermann 3ae660ca90 system/VmaName: new library 2022-04-26 20:31:56 +02:00
Max Kellermann a742e1fc71 util/PeakBuffer, ...: use [[gnu::]] attributes 2022-04-26 20:31:56 +02:00
Max Kellermann 85f9863e0a meson.build: always enable Wave encoder for Snapcast
Even if the "wave_encoder" option is disabled (and no other encoder
plugins are enabled), forcefully enable the Wave encoder (if Snapcast
is enabled).

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1500
2022-04-26 20:13:43 +02:00
Max Kellermann ce88dee14d Merge branch 'v0.23.x' 2022-04-26 18:30:34 +02:00
Max Kellermann 83572701f4 python/build/libs.py: update Boost to 1.79.0 2022-04-26 18:27:51 +02:00
Max Kellermann fa7d7e9187 python/build/libs.py: update OpenSSL to 3.0.2 2022-04-26 18:27:51 +02:00
Max Kellermann f818cde32c python/build/libs.py: update FFmpeg to 5.0.1 2022-04-26 18:27:51 +02:00
Max Kellermann 9da93cd887 python/build/libs.py: update zlib to 1.2.12 2022-04-26 18:27:51 +02:00
Rosen Penev 026e7ea32a update all subprojecs
Done with meson wrap update

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-04-26 18:01:53 +02:00
Max Kellermann 9659d19718 lib/upnp/Init: use if with initalizer 2022-04-26 17:58:33 +02:00
Rosen Penev 50d35c9677 upnp: use UpnpInit2 always
libupnp 1.14 removes the non 2 function. Fixes compilation there.

Signed-off-by: Rosen Penev <rosenp@gmail.com>

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1499
2022-04-26 17:57:48 +02:00
Thomas Guillem 4260e78861 android: add gdb.sh
This script setup a dummy android native app folder and call ndk-gdb from it.

It needs a modification in ANDROID_NDK since ndk-gdb may attach to the wrong
pid, cf. comments in the script.
2022-04-26 17:47:54 +02:00
Thomas Guillem 7342ae2e33 android: set application debuggable
This debuggable flag should not be set with release builds. Generally, graddle
is taking care of that.
2022-04-26 17:46:51 +02:00
Arsen Arsenović 35dbc1a90c mixer,output: prevent setting volume before outputs are really enabled
Previous versions of MPD would call SetVolume on enabled outputs before
they are ready, causing all of MPD to crash. Checking the really_enabled
flag prevents this, though it also prevents setting volume before the
player starts.

Before (with the PipeWire output):
  [i] ~$ mpc clear
  volume: 81%   repeat: off   random: off   single: off   consume: off
  [i] ~$ systemctl --user restart mpd.service
  [i] ~$ mpc volume 100
  MPD error: Connection closed by the server
  [i] ~ 1 $

After:
  [i] ~$ # mpd is freshly started w/o anything in the queue
  [i] ~$ mpc
  volume:100%   repeat: off   random: off   single: off   consume: off
  [i] ~$ mpc volume 80
  MPD error: problems setting volume
  [i] ~ 1 $ mpc
  volume:100%   repeat: off   random: off   single: off   consume: off
  [i] ~$
2022-04-26 17:45:29 +02:00
Arsen Arsenović c7a4355153 outputs/pipewire: fix ParamChanged incorrectly setting volume
Previous versions of MPD would, on parameter change, set the PipeWire
volume before clearing the restore_volume flag, causing the call to
short circuit and do nothing. Instead, clear the flag before the call.
2022-04-26 17:44:19 +02:00