summaryrefslogtreecommitdiff
path: root/src/decoder
AgeCommit message (Collapse)Author
2017-02-08tag/Tag*: rename several source filesMax Kellermann
2017-02-05decoder/Control: improve locking in Start() and Seek()Max Kellermann
Previously, both methods accessed a lot of attributes which require mutex protection.
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.
2016-12-03decoder/Control: make ReplayGainConfig constMax Kellermann
2016-11-25decoder/Thread: skip the ReplayGain loader if the feature is disabledMax Kellermann
https://bugs.musicpd.org/view.php?id=4595
2016-11-25{decoder,player}/Control: add ReplayGain{Config,Mode} attributesMax Kellermann
Don't use the global variables in class DecoderBridge; instead, forward these values to the decoder thread via PlayerControl and DecoderControl.
2016-11-25ReplayGainConfig: add struct ReplayGainConfig, move globals to ↵Max Kellermann
ReplayGainGlobal.cxx
2016-11-24ReplayGainMode: convert to strictly-typed enumMax Kellermann
2016-11-24ReplayGainInfo: don't use array in struct ReplayGainInfoMax Kellermann
Declare two named elements. An enum should not be used as an array index, as this is error prone.
2016-11-24ReplayGainInfo: add method Get()Max Kellermann
2016-11-24decoder/Control: use C++11 initializersMax Kellermann
2016-11-24decoder/{mikmod,modplug}: throw exception instead of calling FatalError()Max Kellermann
2016-11-22decoder/DecoderPlugin: container_scan() returns forward_list<DetachedSong>Max Kellermann
Speed up container_scan() again, by eliminating the need to call scan_file() for each item.
2016-11-22decoder/gme: move gme_container_scan() downMax Kellermann
2016-11-22decoder/sidplay: use template to eliminate duplicate codeMax Kellermann
2016-11-22decoder/sidplay: move code to ScanSidTuneInfo()Max Kellermann