music player daemon (fork)
Go to file
Constantin Fuerst 955502f881 output/oss: enable DoP
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.
2021-08-05 16:21:43 +02:00
.github Create FUNDING.yml 2020-01-20 14:30:52 +01:00
android Merge branch 'v0.22.x' 2021-08-05 15:17:07 +02:00
build build/pkg-config.sh: add comment 2019-02-22 12:39:59 +01:00
doc output/oss: enable DoP 2021-08-05 16:21:43 +02:00
python/build release v0.22.9 2021-06-23 21:02:06 +02:00
src output/oss: enable DoP 2021-08-05 16:21:43 +02:00
subprojects Merge branch 'v0.22.x' 2021-05-26 11:57:41 +02:00
systemd systemnd: configure LimitMEMLOCK for io_uring 2020-06-09 21:09:00 +02:00
test Merge branch 'v0.22.x' 2021-05-17 19:33:15 +02:00
win32 output/jack: enable on Windows 2021-04-26 21:47:20 +02:00
.clang-format Add .clang-format 2020-05-27 18:58:55 +08:00
.gitignore .gitignore: add emacs lsp-mode files 2020-05-26 21:07:56 +02:00
.travis.yml meson.build: libfmt integration 2021-05-25 15:48:49 +02:00
AUTHORS copyright year 2021 2021-01-01 19:54:28 +01:00
COPYING Update the text of the GPLv2, this fixes the address and a few other oddities. 2008-12-20 19:02:09 -08:00
meson_options.txt Merge branch 'v0.22.x' 2021-08-05 15:17:07 +02:00
meson.build meson.build: add "fallback" option to fmt dependency (for older Meson versions) 2021-08-05 11:28:23 +02:00
mpd.svg import MPD SVG icon 2014-07-14 19:04:46 +02:00
NEWS output/oss: enable DoP 2021-08-05 16:21:43 +02:00
README.md doc, README.md: update IRC server name/URL 2021-06-23 15:48:42 +02:00
valgrind.suppressions valgrind.suppressions: add GObject/libgcrypt/libsmbclient suppressions 2019-02-05 22:53:02 +01:00

Music Player Daemon

http://www.musicpd.org

A daemon for playing music of various formats. Music is played through the server's audio device. The daemon stores info about all available music, and this info can be easily searched and retrieved. Player control, info retrieval, and playlist management can all be managed remotely.

For basic installation instructions read the manual.

Users

Developers

Legal

MPD is released under the GNU General Public License version 2, which is distributed in the COPYING file.