diff --git a/NEWS b/NEWS index fbeedd2ce..f6991dd9a 100644 --- a/NEWS +++ b/NEWS @@ -11,10 +11,11 @@ ver 0.24 (not yet released) * tags - new tag "Mood" -ver 0.23.7 (not yet released) +ver 0.23.7 (2022/05/09) * database - upnp: support pupnp 1.14 * decoder + - ffmpeg: fix HLS seeking - opus: fix missing song length on high-latency files * output - shout: require at least libshout 2.4.0 diff --git a/doc/protocol.rst b/doc/protocol.rst index a5bb885eb..16268852a 100644 --- a/doc/protocol.rst +++ b/doc/protocol.rst @@ -549,6 +549,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}` diff --git a/python/build/libs.py b/python/build/libs.py index b4ab29c21..7d21dc105 100644 --- a/python/build/libs.py +++ b/python/build/libs.py @@ -380,14 +380,14 @@ 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', ) 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', diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index d487eb76d..5496cd4ac 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -473,7 +473,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; @@ -535,9 +535,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); 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