- 13 Oct, 2021 1 commit
-
-
Max Kellermann authored
-
- 05 Aug, 2021 5 commits
-
-
Constantin Fuerst authored
Explanation This adds support for DOP using the PcmExport function if the macro ENABLE_DSD is defined. If enabled within the config-file using "dop", the boolean dop_setting will be true. If DSD input is encountered and the setting is on, it is checked whether the oss-device supports the required samplerate. If that is the case, dop_active is set to true and conversion of the input is prevented. If the sample rate is not supported, conversion to S32 is requested. When playing back, the PcmExport is used to pack the incoming stream into PCM. Reasoning This is required for OSs without the required driver support for native DSD playback that also have no ALSA. Mainly *BSD users are the target audience for this functionality, as ALSA here is only a proxy without full functionality. Requirements DAC that supports the DOP standard Building with OSS, DSD and S32-Format Supported Formats / Required PCM Formats DSF, DFF and WavPack-DSD will work. DSD64, 1 Channel -> S24:176.4kHz (untested, lack of time / missing samples) DSD64, 2 Channel -> S24:352.8kHz DSD64, 4 Channel -> S24:705.6kHz (untested, lmissing equipment) DSD128, 1 Channel -> S24:352.8kHz (untested, lack of time / missing samples) DSD128, 2 Channel -> S24:705.6kHz DSD256, 1 Channel -> S24:705.6kHz (untested, lack of time / missing samples) Changes inclusion of required files adding new domain for logging adding dop_satisfied private function adding required member variables for storing dop state and for dop-packing adding dop boolean parameter to many functions that are required to act a little differently when dop is active Testing This has been tested to work with a Sabaj Da2 on FreeBSD, where the red status indicator LED clearly shows that DSD playback is taking place, instead of purple for "hi-res" which is seen when converting. Issues I have not tested this with S24 and right now AFMT_S32_NE is required. If not defined, ENABLE_DSD will be undef'ed. This will be addressed in a bit, however no DAC which supports DOP but not 32Bit is known to me. Also, AFMT_S32_NE is not defined when building on FreeBSD which is why this is just blatantly defined in the file at the moment. Additionally, the new dop-option is not added into any documentation whatsoever.
-
Max Kellermann authored
This simplifies Reopen().
-
Max Kellermann authored
-
Max Kellermann authored
Eliminate some duplicate code.
-
Max Kellermann authored
We need this even when AFMT_S24_PACKED is not available, for the correct channel order in multi-channel files. Internally, MPD uses FLAC channel order, but OSS uses the same channel order as ALSA.
-
- 25 Jun, 2021 1 commit
-
-
Max Kellermann authored
-
- 31 May, 2021 1 commit
-
-
Rosen Penev authored
Found with cppcoreguidelines-interfaces-global-init Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
- 01 Jan, 2021 1 commit
-
-
Max Kellermann authored
-
- 01 Jul, 2020 1 commit
-
-
Max Kellermann authored
-
- 05 May, 2020 1 commit
-
-
Max Kellermann authored
-
- 12 Mar, 2020 2 commits
-
-
Rosen Penev authored
The former is deprecated by C++14. It's also functionally the same. From the standard: 19.4 The header<cerrno>is described in Table 43. Its contents are the same as the POSIX header<errno.h>,except that errno shall be defined as a macro. [Note: The intent is to remain in close alignment with the POSIX standard.] A separate errno value shall be provided for each thread. Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
Rosen Penev authored
The former was deprecated with C++14. According to the C++11 and C++17 standards, both files are identical. Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
- 18 Jan, 2020 1 commit
-
-
Max Kellermann authored
-
- 03 Aug, 2019 1 commit
-
-
Max Kellermann authored
-
- 04 Jul, 2019 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
It's not a tri-state anymore since we introduced C++ exceptions.
-
Max Kellermann authored
-
- 03 Jul, 2019 1 commit
-
-
Max Kellermann authored
-
- 26 Jun, 2019 1 commit
-
-
Max Kellermann authored
-
- 17 Jun, 2019 2 commits
-
-
Max Kellermann authored
This can happen if the DoP converter doesn't get enough source samples for one destination quad. This isn't a critical bug, because the OSS plugin doesn't support DoP yet, but it's good to be prepared.
-
Max Kellermann authored
-
- 16 Jun, 2019 1 commit
-
-
Max Kellermann authored
-
- 08 Mar, 2019 1 commit
-
-
Max Kellermann authored
-
- 19 Nov, 2018 1 commit
-
-
Max Kellermann authored
Since we switched from autotools to Meson in commit 94592c14, we don't need to include `config.h` early to properly enable large file support. Meson passes the required macros on the compiler command line instead of defining them in `config.h`. This means we can include `config.h` at any time, whenever we want to check its macros, and there are no ordering constraints.
-
- 31 Oct, 2018 1 commit
-
-
Max Kellermann authored
-
- 10 Aug, 2017 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Yet another C-style vtable replaced with C++.
-
- 08 Aug, 2017 1 commit
-
-
Max Kellermann authored
Hide struct FilteredAudioOutput from the plugins, preparing for hiding MPD's core internals.
-
- 07 Aug, 2017 1 commit
-
-
Max Kellermann authored
Prepare to add an abstract class AudioOutput, to be implemented by plugins, to get rid of the C-style vtable.
-
- 08 May, 2017 1 commit
-
-
Max Kellermann authored
This eliminates some overhead, because the compiler doesn't need to consider these functions throwing.
-
- 25 Jan, 2017 1 commit
-
-
Max Kellermann authored
Eliminate dependency on io_thread_get().
-
- 11 Jan, 2017 1 commit
-
-
Max Kellermann authored
We'll have some code for it soon.
-
- 03 Jan, 2017 1 commit
-
-
Max Kellermann authored
-
- 09 Nov, 2016 1 commit
-
-
Max Kellermann authored
-
- 05 Nov, 2016 1 commit
-
-
Max Kellermann authored
-
- 26 Feb, 2016 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 27 Oct, 2015 1 commit
-
-
Max Kellermann authored
This new library is integrated in the PcmExport class and (if enabled) converts MPD's channel order (= FLAC channel order) to ALSA channel order. This fixes: http://bugs.musicpd.org/view.php?id=3147 and http://bugs.musicpd.org/view.php?id=3255
-
- 21 Jan, 2015 1 commit
-
-
Max Kellermann authored
The old struct config_param remains only for top-level string options.
-