Age | Commit message (Collapse) | Author |
|
|
|
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with cppcoreguidelines-avoid-non-const-global-variables
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with modernize-use-default
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
|
|
Don't truncate the FILETIME to second resolution to pass it to
std::chrono::system_clock::from_time_t(); instead, calculate the
offset between the FILETIME epoch and the
std::system_clock::time_point epoch, and use that to initialize the
time_point directly.
|
|
|
|
|
|
|
|
|
|
|
|
Allows running the unit tests on Linux.
|
|
|
|
|
|
Got lost in commit 0f56ddb80554e014714b9d0385a0bf175521a61d
|
|
|
|
|
|
|
|
|
|
|
|
This avoids underruns at the start of playback.
|
|
|
|
|
|
|
|
This was missing in commit 8a243e6e28bd94
|
|
If draining was not requested, generate silence instead if there is no
data in the ring buffer.
The problem is that pw_stream_flush() appears to disable the stream
permanently, even though there is no state_changed callback - the
stream state remains at PW_STREAM_STATE_STREAMING, but the stream is
defunct. I have no idea why and I havn't found any documentation
about it.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1219
|
|
This was missing in commit 4d1ce7023b8a7
|
|
release v0.22.10
|
|
|
|
This replaces 967af603270246f1c97e11b8bad6a0eb65c81318 with a more
effective workaround.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/822
|
|
alsa_mixer_elem_callback()
snd_mixer_handle_events() has already been called by
DispatchSockets(). This way, we can also skip the exception handler.
|
|
|
|
|
|
|
|
|
|
|
|
The "install_dev" target runs ranlib during installation, and this
can break the Android build.
|
|
|
|
|
|
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1019
|
|
Prepending "../" to absolute URIs would break them.
|
|
|
|
|
|
If UpdateStreamTag() gets called while an initial seek is pending, the
result will never be submitted to a MusicChunk. By avoiding the
UpdateStreamTag() call in that case (by moving UpdateStreamTag() to
after the PrepareInitialSeek() check), the song_tag is preserved until
UpdateStreamTag() is called again from SubmitData().
This fixes missing tags in the "httpd" output.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1137
|
|
|
|
|
|
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.
|
|
This simplifies Reopen().
|