summaryrefslogtreecommitdiff
path: root/src/decoder
AgeCommit message (Collapse)Author
2017-11-12decoder/ffmpeg, test/test_protocol: catch exceptions by referenceMax Kellermann
Work around -Werror=catch-value.
2017-11-03decoder/vorbis: scale and clip tremor-decoded samples to 15 bitsMarcin 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-27decoder/Thread: clear the command after catching an exceptionMax 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-27GME Plugin: fix track numberingJohn 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-18ffmpeg plugin: when decoded stream duration is unavailable, attempt fallback ↵Charlie Waters
to container duration (fix MusicPlayerDaemon/MPD#110)
2017-07-20Check 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" specificationsMax Kellermann
2017-06-03decoder/ffmpeg: add support for adxJörg Raftopoulos
Add ffmpeg decoder support for *.adx files (Sega game console) Closes #60
2017-05-08*: add "noexcept" to many, many function prototypesMax Kellermann
This eliminates some overhead, because the compiler doesn't need to consider these functions throwing.
2017-04-24decoder/pcm: add missing nullptr checkMax 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-24decoder/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-10decoder/sidplay: make compatible with libsidplayfp < 1.8Max Kellermann
https://bugs.musicpd.org/view.php?id=4665
2017-03-07Add missing include for cstdlib, otherwise free() is undefinedThomas Zander
2017-03-01decoder/Thread: check ENABLE_FFMPEG, not HAVE_FFMPEGMax Kellermann
This repairs the damage to commit 74dbaade6fa done by commit b3f5b4932c3
2017-03-01decoder/mpcdec: ignore empty framesMax 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-17AudioFormat: replace struct audio_format_string with class StringBuffer, ↵Max Kellermann
return it
2017-01-11decoder/Bridge: call PcmConvert::Reset() after seekingMax Kellermann
2017-01-10decoder/flac: add options "probesize" and "analyzeduration"Max Kellermann
https://bugs.musicpd.org/view.php?id=3876
2017-01-08decoder/wavpack: fix crash bugMax Kellermann
2017-01-03update copyright yearMax Kellermann
2017-01-03thread/Mutex: remove ScopeLock, use std::lock_guard directlyMax Kellermann
2016-12-13AudioFormat: add method WithMask(), shortcut for ApplyMask()Max Kellermann
2016-12-13Merge tag 'v0.19.21'Max Kellermann
release v0.19.21
2016-12-13decoder/ffmpeg: fix double free bugMax 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-10decoder/wavpack: implement WavpackStreamReader64 if availableMax Kellermann
2016-12-10decoder/wavpack: move code to WavpackInput methodsMax Kellermann
2016-12-10decoder/wavpack: use WavpackSeekSample64() if availableMax Kellermann
2016-12-10decoder/wavpack: seek errors are fatalMax 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-09decoder/wavpack: implement scan_stream()Max Kellermann
2016-12-09decoder/wavpack: convert WavpackInput::client to pointerMax Kellermann
2016-12-09decoder/wavpack: add WavpackOpen() wrappers which throw exceptionMax Kellermann
2016-12-09decoder/wavpack: move wavpack_scan_file() downMax Kellermann
2016-12-09decoder/wavpack: support native DSDMax Kellermann
2016-12-09decoder/wavpack: use template for format_sample_X()Max Kellermann
2016-12-09decoder/wavpack: move 8 and 16 bit conversion to separate functionsMax Kellermann
2016-12-09decoder/wavpack: rename format_samples_float() to format_samples_nop()Max Kellermann
2016-12-09decoder/wavpack: use std::copy_n()Max Kellermann
2016-12-09decoder/wavpack: use int16_t instead of uint16_tMax Kellermann
Technically, these samples are signed. There was no practical difference, only the declaration was formally wrong.
2016-12-09decoder/wavpack: use WavpackGetNumSamples64() if availableMax Kellermann
2016-12-09decoder/wavpack: check WavpackGetNumSamples()==-1Max Kellermann
2016-12-09decoder/wavpack: move code to GetDuration()Max Kellermann
2016-12-09decoder/wavpack: make is_float constMax Kellermann
2016-12-09decoder/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-09decoder/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-09decoder/wavpack: disable OPEN_TAGSMax 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-09decoder/wavpack: change norm_offset to 0Max 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-09decoder/wavpack: use AtScopeExit()Max Kellermann
2016-12-04system/Error: use std::generic_category() for errno on WindowsMax 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-03decoder/Bridge: move code to DecoderControl::SetReady()Max Kellermann
2016-12-03decoder/Control: add attribute configured_audio_formatMax Kellermann
Obsoletes the same variable from AudioConfig.cxx.