From bd840d4638c56c57744895c2155080225987083e Mon Sep 17 00:00:00 2001 From: BurroCargado Date: Thu, 5 May 2022 16:34:31 +0900 Subject: [PATCH 1/7] decoder/plugins/FFmpegDecoder: fix IsSeekable() AVFMTCTX_UNSEEKABLE signals the stream is not seekable according to FFmpeg source code description: https://github.com/FFmpeg/FFmpeg/blob/8e98dfc57fd05c49095dd964456a7acbb6da634c/libavformat/avformat.h#L1181 --- src/decoder/plugins/FfmpegDecoderPlugin.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index f9915554a..773cf071a 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -471,7 +471,7 @@ static bool IsSeekable(const AVFormatContext &format_context) noexcept { #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(58, 6, 100) - return (format_context.ctx_flags & AVFMTCTX_UNSEEKABLE) != 0; + return (format_context.ctx_flags & AVFMTCTX_UNSEEKABLE) == 0; #else (void)format_context; return false; From 11d1f56062cc6985228ef76fa9a046e2292217e3 Mon Sep 17 00:00:00 2001 From: BurroCargado Date: Sat, 7 May 2022 09:50:41 +0900 Subject: [PATCH 2/7] 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". --- src/decoder/plugins/FfmpegDecoderPlugin.cxx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index 773cf071a..d575a6eb1 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -533,9 +533,8 @@ FfmpegDecode(DecoderClient &client, InputStream *input, : FromFfmpegTimeChecked(format_context.duration, AV_TIME_BASE_Q); client.Ready(audio_format, - input - ? input->IsSeekable() - : IsSeekable(format_context), + (input ? input->IsSeekable() : false) + || IsSeekable(format_context), total_time); FfmpegParseMetaData(client, format_context, audio_stream); From 97b07798b0158080b2e335df841fcdfc49ef09f0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 9 May 2022 22:50:56 +0200 Subject: [PATCH 3/7] doc/protocol.rst: clarify repeat/single/random side effects --- doc/protocol.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/protocol.rst b/doc/protocol.rst index aa62e3afb..f8eec58e8 100644 --- a/doc/protocol.rst +++ b/doc/protocol.rst @@ -545,6 +545,13 @@ Playback options Sets repeat state to ``STATE``, ``STATE`` should be 0 or 1. + If enabled, MPD keeps repeating the whole queue (:ref:`single mode + ` disabled) or the current song (:ref:`single mode + ` enabled). + + If :ref:`random mode ` is also enabled, the + playback order will be shuffled each time the queue gets repeated. + .. _command_setvol: :command:`setvol {VOL}` From b175e4128d3e01b563088424795703e1c8b0c5ce Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 9 May 2022 22:52:37 +0200 Subject: [PATCH 4/7] encoder/meson.build: always generate encoder/Features.h Fixes regression from commit 85f9863e0abcc96d55ea661e74a1be9ab3d18343 --- src/encoder/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/encoder/meson.build b/src/encoder/meson.build index 0274dc128..9b21eeca4 100644 --- a/src/encoder/meson.build +++ b/src/encoder/meson.build @@ -16,6 +16,7 @@ if not need_encoder link_with: encoder_glue, ) + configure_file(output: 'Features.h', configuration: encoder_features) subdir_done() endif From fc9cee38d8f104790695a2b9ab70c3a81659d4ef Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 9 May 2022 23:03:11 +0200 Subject: [PATCH 5/7] python/build/libs.py: update OpenSSL to 3.0.3 --- python/build/libs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/build/libs.py b/python/build/libs.py index b4ab29c21..d31b0d1ab 100644 --- a/python/build/libs.py +++ b/python/build/libs.py @@ -380,8 +380,8 @@ ffmpeg = FfmpegProject( ) openssl = OpenSSLProject( - 'https://www.openssl.org/source/openssl-3.0.2.tar.gz', - '98e91ccead4d4756ae3c9cde5e09191a8e586d9f4d50838e7ec09d6411dfdb63', + 'https://www.openssl.org/source/openssl-3.0.3.tar.gz', + '9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f', 'include/openssl/ossl_typ.h', ) From 7581ea55db93eef06feb7f83594906b23870c326 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 9 May 2022 23:02:39 +0200 Subject: [PATCH 6/7] python/build/libs.py: update CURL to 7.83.0 --- python/build/libs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/build/libs.py b/python/build/libs.py index d31b0d1ab..7d21dc105 100644 --- a/python/build/libs.py +++ b/python/build/libs.py @@ -386,8 +386,8 @@ openssl = OpenSSLProject( ) curl = CmakeProject( - 'https://curl.se/download/curl-7.82.0.tar.xz', - '0aaa12d7bd04b0966254f2703ce80dd5c38dbbd76af0297d3d690cdce58a583c', + 'https://curl.se/download/curl-7.83.0.tar.xz', + 'bbff0e6b5047e773f3c3b084d80546cc1be4e354c09e419c2d0ef6116253511a', 'lib/libcurl.a', [ '-DBUILD_CURL_EXE=OFF', From 0341ca1b6a134315869cf25f15d4bd5caabeba61 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 9 May 2022 23:04:30 +0200 Subject: [PATCH 7/7] release v0.23.7 --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 93db797d6..5d5b08731 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -ver 0.23.7 (not yet released) +ver 0.23.7 (2022/05/09) * database - upnp: support pupnp 1.14 * decoder