Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-11-12 | decoder/ffmpeg, test/test_protocol: catch exceptions by reference | Max Kellermann | |
Work around -Werror=catch-value. | |||
2017-11-03 | decoder/vorbis: scale and clip tremor-decoded samples to 15 bits | Marcin Jurkowski | |
Tremor decoder is unusable since commit 2ee43c4. Sound is distorted to the point where it's nothing but noise. The data from vorbis_synthesis_pcmout() needs to be scaled and clipped for 16 bit sample size. For reference see http://lists.xiph.org/pipermail/tremor/2010-April/001642.html and http://lists.xiph.org/pipermail/vorbis/2006-October/026513.html. Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com> | |||
2017-09-27 | decoder/Thread: clear the command after catching an exception | Max Kellermann | |
If an early exception gets caught (e.g. from AllocatedPath::FromUTF8Throw()) before DecoderControl::CommandFinishedLocked() is called, the decoder thread would go in an endless loop, because DecoderCommand::START is still set. Closes #118 | |||
2017-09-27 | GME Plugin: fix track numbering | John Regan | |
GME starts all track indexes at zero, but subtune prefixes start at one. This fixes an off-by-one error during track enumeration. | |||
2017-09-18 | ffmpeg plugin: when decoded stream duration is unavailable, attempt fallback ↵ | Charlie Waters | |
to container duration (fix MusicPlayerDaemon/MPD#110) | |||
2017-07-20 | Check for MusicBrainz id3v2 tags in ffmpeg. | Matthew Leon | |
Addresses #82. Previously, the ffmpeg decoder only checked for the "generic" MusicBrainz metadata keys used in other metadata container formats. | |||
2017-06-04 | *: add lost of "noexcept" specifications | Max Kellermann | |
2017-06-03 | decoder/ffmpeg: add support for adx | Jörg Raftopoulos | |
Add ffmpeg decoder support for *.adx files (Sega game console) Closes #60 | |||
2017-05-08 | *: add "noexcept" to many, many function prototypes | Max Kellermann | |
This eliminates some overhead, because the compiler doesn't need to consider these functions throwing. | |||
2017-04-24 | decoder/pcm: add missing nullptr check | Max Kellermann | |
Fixes a potential crash bug which is actually unreachable, because the "pcm" plugin is never invoked when there is no (matching) MIME type. | |||
2017-04-24 | decoder/pcm: fix potential assertion failure in FillBuffer() | Max Kellermann | |
After a seek failure, the buffer may still be full, and then FillBuffer() aborts with assertion failure. | |||
2017-03-10 | decoder/sidplay: make compatible with libsidplayfp < 1.8 | Max Kellermann | |
https://bugs.musicpd.org/view.php?id=4665 | |||
2017-03-07 | Add missing include for cstdlib, otherwise free() is undefined | Thomas Zander | |
2017-03-01 | decoder/Thread: check ENABLE_FFMPEG, not HAVE_FFMPEG | Max Kellermann | |
This repairs the damage to commit 74dbaade6fa done by commit b3f5b4932c3 | |||
2017-03-01 | decoder/mpcdec: ignore empty frames | Max Kellermann | |
https://bugs.musicpd.org/view.php?id=4656 describes a crash due to division by zero because frame.samples==0. This should never happen, but apparently can happen after seeking. The best we can do is to just ignore this frame. | |||
2017-01-17 | AudioFormat: replace struct audio_format_string with class StringBuffer, ↵ | Max Kellermann | |
return it | |||
2017-01-11 | decoder/Bridge: call PcmConvert::Reset() after seeking | Max Kellermann | |
2017-01-10 | decoder/flac: add options "probesize" and "analyzeduration" | Max Kellermann | |
https://bugs.musicpd.org/view.php?id=3876 | |||
2017-01-08 | decoder/wavpack: fix crash bug | Max Kellermann | |
2017-01-03 | update copyright year | Max Kellermann | |
2017-01-03 | thread/Mutex: remove ScopeLock, use std::lock_guard directly | Max Kellermann | |
2016-12-13 | AudioFormat: add method WithMask(), shortcut for ApplyMask() | Max Kellermann | |
2016-12-13 | Merge tag 'v0.19.21' | Max Kellermann | |
release v0.19.21 | |||
2016-12-13 | decoder/ffmpeg: fix double free bug | Max Kellermann | |
From the avformat_open_input() API documentation: "Note that a user-supplied AVFormatContext will be freed on failure." https://bugs.musicpd.org/view.php?id=4607 | |||
2016-12-10 | decoder/wavpack: implement WavpackStreamReader64 if available | Max Kellermann | |
2016-12-10 | decoder/wavpack: move code to WavpackInput methods | Max Kellermann | |
2016-12-10 | decoder/wavpack: use WavpackSeekSample64() if available | Max Kellermann | |
2016-12-10 | decoder/wavpack: seek errors are fatal | Max Kellermann | |
The libWavPack documentation says: "After a FALSE return the file should not be accessed again (other than to close it); this is a fatal error." | |||
2016-12-09 | decoder/wavpack: implement scan_stream() | Max Kellermann | |
2016-12-09 | decoder/wavpack: convert WavpackInput::client to pointer | Max Kellermann | |
2016-12-09 | decoder/wavpack: add WavpackOpen() wrappers which throw exception | Max Kellermann | |
2016-12-09 | decoder/wavpack: move wavpack_scan_file() down | Max Kellermann | |
2016-12-09 | decoder/wavpack: support native DSD | Max Kellermann | |
2016-12-09 | decoder/wavpack: use template for format_sample_X() | Max Kellermann | |
2016-12-09 | decoder/wavpack: move 8 and 16 bit conversion to separate functions | Max Kellermann | |
2016-12-09 | decoder/wavpack: rename format_samples_float() to format_samples_nop() | Max Kellermann | |
2016-12-09 | decoder/wavpack: use std::copy_n() | Max Kellermann | |
2016-12-09 | decoder/wavpack: use int16_t instead of uint16_t | Max Kellermann | |
Technically, these samples are signed. There was no practical difference, only the declaration was formally wrong. | |||
2016-12-09 | decoder/wavpack: use WavpackGetNumSamples64() if available | Max Kellermann | |
2016-12-09 | decoder/wavpack: check WavpackGetNumSamples()==-1 | Max Kellermann | |
2016-12-09 | decoder/wavpack: move code to GetDuration() | Max Kellermann | |
2016-12-09 | decoder/wavpack: make is_float const | Max Kellermann | |
2016-12-09 | decoder/wavpack: use WavpackGetReducedChannels() | Max Kellermann | |
Since we don't use OPEN_2CH_MAX, this should be equal to WavpackGetNumChannels() - but who knows, maybe a future libWavPack version breaks this assumption. | |||
2016-12-09 | decoder/wavpack: basic DSD support (WavPack 5) | Max Kellermann | |
Enable OPEN_DSD_AS_PCM if available. No OPEN_DSD_NATIVE yet. https://bugs.musicpd.org/view.php?id=4606 | |||
2016-12-09 | decoder/wavpack: disable OPEN_TAGS | Max Kellermann | |
Use MPD's internal APE tag code, which works just as well. This removes some duplicate code for reading tags and ReplayGain. | |||
2016-12-09 | decoder/wavpack: change norm_offset to 0 | Max Kellermann | |
MPD uses a floating point range from -1 to +1 internally - why ask libwavpack to use -32768..+32768 only to reduce it back to -1..+1 afterwards? | |||
2016-12-09 | decoder/wavpack: use AtScopeExit() | Max Kellermann | |
2016-12-04 | system/Error: use std::generic_category() for errno on Windows | Max Kellermann | |
It's wrong to use std::system_category() for both GetLastError() and errno on Windows. Apparently, everybody uses std::generic_category() for errno values, which appears to be a safe choice. Some discussion on this confusing topic can be found here: https://stackoverflow.com/questions/28746372/system-error-categories-and-standard-system-error-codes | |||
2016-12-03 | decoder/Bridge: move code to DecoderControl::SetReady() | Max Kellermann | |
2016-12-03 | decoder/Control: add attribute configured_audio_format | Max Kellermann | |
Obsoletes the same variable from AudioConfig.cxx. |