Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-02-08 | tag/Tag*: rename several source files | Max Kellermann | |
2017-02-05 | decoder/Control: improve locking in Start() and Seek() | Max Kellermann | |
Previously, both methods accessed a lot of attributes which require mutex protection. | |||
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. | |||
2016-12-03 | decoder/Control: make ReplayGainConfig const | Max Kellermann | |
2016-11-25 | decoder/Thread: skip the ReplayGain loader if the feature is disabled | Max Kellermann | |
https://bugs.musicpd.org/view.php?id=4595 | |||
2016-11-25 | {decoder,player}/Control: add ReplayGain{Config,Mode} attributes | Max Kellermann | |
Don't use the global variables in class DecoderBridge; instead, forward these values to the decoder thread via PlayerControl and DecoderControl. | |||
2016-11-25 | ReplayGainConfig: add struct ReplayGainConfig, move globals to ↵ | Max Kellermann | |
ReplayGainGlobal.cxx | |||
2016-11-24 | ReplayGainMode: convert to strictly-typed enum | Max Kellermann | |
2016-11-24 | ReplayGainInfo: don't use array in struct ReplayGainInfo | Max Kellermann | |
Declare two named elements. An enum should not be used as an array index, as this is error prone. | |||
2016-11-24 | ReplayGainInfo: add method Get() | Max Kellermann | |
2016-11-24 | decoder/Control: use C++11 initializers | Max Kellermann | |
2016-11-24 | decoder/{mikmod,modplug}: throw exception instead of calling FatalError() | Max Kellermann | |
2016-11-22 | decoder/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-22 | decoder/gme: move gme_container_scan() down | Max Kellermann | |
2016-11-22 | decoder/sidplay: use template to eliminate duplicate code | Max Kellermann | |
2016-11-22 | decoder/sidplay: move code to ScanSidTuneInfo() | Max Kellermann | |