There is a patch for libfmt 11.0.2-1.
https://github.com/MusicPlayerDaemon/MPD/commit/1402869715e3efca87942d79c3173a6b21a6925d.patch
Git Clone URL: | https://aur.archlinux.org/mpd-sacd.git (read-only, click to copy) |
---|---|
Package Base: | mpd-sacd |
Description: | MPD with patches for SACD and DVDA ISO playback. (DVDA ISO playback temporary disabled) |
Upstream URL: | https://sourceforge.net/p/sacddecoder/mpd/MPD.git/ci/master/tree/ |
Keywords: | dsd dvda mpd sacd |
Licenses: | GPL-2.0-or-later |
Conflicts: | mpd |
Provides: | mpd |
Submitter: | melvinvermeeren |
Maintainer: | Archttila |
Last Packager: | Archttila |
Votes: | 8 |
Popularity: | 0.90 |
First Submitted: | 2016-02-08 18:52 (UTC) |
Last Updated: | 2024-04-28 17:29 (UTC) |
There is a patch for libfmt 11.0.2-1.
https://github.com/MusicPlayerDaemon/MPD/commit/1402869715e3efca87942d79c3173a6b21a6925d.patch
Please do not mark the package as out of date, because mpd-sacd is a fork of regular MPD
@brucehsieh Thanks!
Hi All! I made a dirty patch for libfmt 9.1.0-1.
diff '--exclude=.git' '--exclude=.github' --unified --recursive --text mpd.orig/src/client/Response.hxx mpd.new/src/client/Response.hxx
--- mpd.orig/src/client/Response.hxx 2022-09-03 21:56:06.655442911 +0800
+++ mpd.new/src/client/Response.hxx 2022-09-03 21:45:22.931746855 +0800
@@ -82,7 +82,10 @@
template<typename S, typename... Args>
bool Fmt(const S &format_str, Args&&... args) noexcept {
-#if FMT_VERSION >= 70000
+#if FMT_VERSION >= 90000
+ return VFmt(format_str,
+ fmt::make_format_args(args...));
+#elif FMT_VERSION >= 70000
return VFmt(fmt::to_string_view(format_str),
fmt::make_args_checked<Args...>(format_str,
args...));
@@ -109,7 +112,10 @@
template<typename S, typename... Args>
void FmtError(enum ack code,
const S &format_str, Args&&... args) noexcept {
-#if FMT_VERSION >= 70000
+#if FMT_VERSION >= 90000
+ return VFmtError(code, format_str,
+ fmt::make_format_args(args...));
+#elif FMT_VERSION >= 70000
return VFmtError(code, fmt::to_string_view(format_str),
fmt::make_args_checked<Args...>(format_str,
args...));
diff '--exclude=.git' '--exclude=.github' --unified --recursive --text mpd.orig/src/decoder/plugins/FfmpegDecoderPlugin.cxx mpd.new/src/decoder/plugins/FfmpegDecoderPlugin.cxx
--- mpd.orig/src/decoder/plugins/FfmpegDecoderPlugin.cxx 2022-09-03 21:56:06.665442916 +0800
+++ mpd.new/src/decoder/plugins/FfmpegDecoderPlugin.cxx 2022-09-03 21:44:59.871730693 +0800
@@ -637,6 +637,13 @@
AV_TIME_BASE_Q));
const auto &codec_params = *stream.codecpar;
+
+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 25, 100)
+ const unsigned channels = codec_params.ch_layout.nb_channels;
+#else
+ const unsigned channels = codec_params.channels;
+#endif
+
try {
handler.OnAudioFormat(CheckAudioFormat(codec_params.sample_rate,
ffmpeg_sample_format(AVSampleFormat(codec_params.format)),
diff '--exclude=.git' '--exclude=.github' --unified --recursive --text mpd.orig/src/decoder/plugins/FfmpegIo.cxx mpd.new/src/decoder/plugins/FfmpegIo.cxx
--- mpd.orig/src/decoder/plugins/FfmpegIo.cxx 2022-09-03 21:56:06.665442916 +0800
+++ mpd.new/src/decoder/plugins/FfmpegIo.cxx 2022-09-03 21:44:26.151706459 +0800
@@ -21,10 +21,14 @@
#define __STDC_CONSTANT_MACROS
#include "FfmpegIo.hxx"
-#include "libavutil/mem.h"
+/* #include "libavutil/mem.h" */
#include "../DecoderAPI.hxx"
#include "input/InputStream.hxx"
+extern "C" {
+#include <libavutil/mem.h>
+}
+
AvioStream::~AvioStream()
{
if (io != nullptr) {
diff '--exclude=.git' '--exclude=.github' --unified --recursive --text mpd.orig/src/Log.hxx mpd.new/src/Log.hxx
--- mpd.orig/src/Log.hxx 2022-09-03 21:56:06.648776241 +0800
+++ mpd.new/src/Log.hxx 2022-09-03 21:43:52.231681297 +0800
@@ -45,7 +45,10 @@
LogFmt(LogLevel level, const Domain &domain,
const S &format_str, Args&&... args) noexcept
{
-#if FMT_VERSION >= 70000
+#if FMT_VERSION >= 90000
+ return LogVFmt(level, domain, format_str,
+ fmt::make_format_args(args...));
+#elif FMT_VERSION >= 70000
return LogVFmt(level, domain, fmt::to_string_view(format_str),
fmt::make_args_checked<Args...>(format_str,
args...));
New version, commit c831f983e834abf24e85dfec57e85f13ab7edccb, seems to work fine.
FYI: I built this package in a clean docker Arch container (greyltc/archlinux-aur) and found the following runtime dependencies to be missing at build time: liburing openal libmpcdec mpg123 twolame rsync
New version guys!
commit 787223cb1b1009693431d8ca1f797121e28ede69
@mo3r though art a genius my friend, it works !!! out of curiosity what does this line do: use_stdio "true"
i copied my config from here: https://thepenguin.eu/2017-12-22-mpd-and-dsd-files/
and have this line (true where you have false): edited_master "true"
It works fine with this, just not sure what that line does either ...
@emilot thanks for the answer, i already had those lines with no luck
@zikizik
Try to add to your mpd.conf these lines. It looks like it helped in my case. I think this parameter helped: use_stdio true
decoder {
plugin "sacdiso"
dstdec_threads "4"
edited_master "false"
lsbitfirst "false"
playable_area "stereo"
tags_with_iso "true"
use_stdio "true"
}
Hello @emilot These lines in the config did not help me. Still stutters when playing sacd iso.
Pinned Comments
Archttila commented on 2024-04-28 17:34 (UTC) (edited on 2024-05-01 14:10 (UTC) by Archttila)
Please do not mark the package as out of date, because mpd-sacd is a fork of regular MPD