summaryrefslogtreecommitdiff
path: root/src/pcm
AgeCommit message (Collapse)Author
2018-11-19check.h: remove obsolete headerMax Kellermann
Since we switched from autotools to Meson in commit 94592c14062d5afc9482d11baa401648082022c0, we don't need to include `config.h` early to properly enable large file support. Meson passes the required macros on the compiler command line instead of defining them in `config.h`. This means we can include `config.h` at any time, whenever we want to check its macros, and there are no ordering constraints.
2018-10-31*: copyright year 2018Max Kellermann
2018-10-30pcm: build dsd2pcm only if -Dtest=trueMax Kellermann
2018-10-30pcm/Clamp: convert to `constexpr`Max Kellermann
2018-10-30pcm/PcmUtils: rename to Clamp.hxxMax Kellermann
2018-10-29pcm/FloatConvert: make IntegerToFloatSampleConvert::Convert() constexprMax Kellermann
2018-10-29Merge branch 'v0.20.x'Max Kellermann
2018-10-29pcm/FloatConvert: fix compile-time integer overflow for S32Max Kellermann
The compile-time calculation for `factor` overflows because `1<<31` cannot be represented by `int`. By casting to `uintmax_t` first, we can avoid this overflow. Closes #380
2018-10-29pcm/FloatConvert: use FloatToIntegerSampleConvert::factor for ↵Max Kellermann
IntegerToFloatSampleConvert::factor
2018-10-29pcm/FloatConvert: add `static_assert` on the factorMax Kellermann
This assertion currently fails for S32 due to integer overflow (#380).
2018-10-14build with Meson instead of autotoolsMax Kellermann
So long, autotools! This is my last MPD related project to migrate away from it. It has its strengths, but also very obvious weaknesses and weirdnesses. Today, many of its quirks are not needed anymore, and are cumbersome and slow. Now welcome our new Meson overlords!
2018-09-22player/CrossFade, ...: use lround()Max Kellermann
2018-08-20Compiler.h: move to util/Max Kellermann
2018-07-17pcm/ConfiguredResampler: use struct ConfigDataMax Kellermann
2018-07-17config/Global: remove ConfigBlock::SetUsed() call, let caller do thatMax Kellermann
This fixes an old bug which caused the "unused" warnings to be unreliable; only the first block in the list was marked as being "used", no matter if it was really used, and the rest was never marked as "used", suppressing all warnings for them.
2018-07-16config/Config*: rename files, drop "Config" prefixMax Kellermann
2018-07-16Main, pcm/SampleFormat, command/Error: remove obsolete GCC version checksMax Kellermann
2018-07-06Merge branch 'v0.20.x'Max Kellermann
2018-07-06AudioFormat: include cleanupMax Kellermann
2018-03-15Merge branch 'v0.20.x'Max Kellermann
2018-03-15pcm/PcmDop: round down to the nearest multiple of 4 DSD bytesMax Kellermann
There was a discrepancy between what was written to the buffer and the size returned by pcm_dsd_to_dop(): the "for" loop uses num_frames/2, rounding down, while the return value is num_samples which is num_frames*channels, without rounding. This could cause undefined data at the end of the destination buffer if the source buffer size was not aligned to multiples of 8 bytes (4 DSD bytes per channel). The latter however can occur in the 0.21 branch after commit a06bf388d96 Closes #233
2018-03-15pcm/PcmDop: use size_tMax Kellermann
2018-02-11Merge tag 'v0.20.17'Max Kellermann
release v0.20.17
2018-02-09pcm/Order: fix size calculation with 8 channelsMax Kellermann
This was a buffer overflow bug which could cause MPD crahes when playing back 8 channels with the ALSA output plugin. Closes #216
2018-01-05Merge branch 'v0.20.x'Max Kellermann
2018-01-02pcm/Resampler: add virtual method Flush()Max Kellermann
Wired to Filter::Flush(). Closes #153
2018-01-02pcm/SoxrResampler: implement method Reset()Max Kellermann
2018-01-01pcm/*: add "noexcept"Max Kellermann
2017-12-26Merge branch 'v0.20.x'Max Kellermann
2017-12-23pcm/SampleFormat: remove wrong "malloc" attributeMax Kellermann
2017-12-18Compiler.h: add gcc_returns_nonnull, gcc_returns_twiceMax Kellermann
2017-12-16Merge branch 'v0.20.x'Max Kellermann
2017-12-12*: check defined(_WIN32) instead of defined(WIN32)Max Kellermann
Only _WIN32 is defined by the compiler, and WIN32 is not standardized and may be missing. Closes #169
2017-11-10util/{Const,Writable}Buffer, ...: rename IsEmpty() to empty(), imitating STLMax Kellermann
2017-10-26pcm/Export: add "noexcept"Max Kellermann
2017-10-26pcm/Dop: add "noexcept"Max Kellermann
2017-10-26pcm/Pack: add "noexcept"Max Kellermann
2017-10-26pcm/Dsd*: add "noexcept"Max Kellermann
2017-10-26pcm/Order: add "noexcept"Max Kellermann
2017-06-04*: add lots of "noexcept" specificationsMax Kellermann
2017-06-04Merge tag 'v0.20.9'Max Kellermann
release v0.20.9
2017-06-03storage, db, mixer, command: remove more bogus "pure" attributesMax Kellermann
This commit is similar to 788e3b31e1ab8243386339eaf136ede18f015d55, and removes more "pure" attributes which were placed on functions that could throw exceptions, which is illegal according to clang's understanding of the attribute (but not according to GCC's). GitHub issue #58 was most likely about StorageDirectoryReader::GetInfo() and Storage::GetInfo(), which still had "pure" attributes. Closes #58
2017-05-15Merge tag 'v0.20.7'Max Kellermann
release v0.20.7
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-24pcm/PcmPack: add pcm_unpack_24be()Max Kellermann
2017-04-22pcm/PcmPack: remove obsolete code commentMax Kellermann
2017-04-22pcm/PcmPack: simplify unpack_sample()Max Kellermann
2017-01-27pcm/SampleFormat: workaround for GCC 4.9 "constexpr" bugMax Kellermann
GCC 4.9 has incomplete C++14 support. Specifically, it doesn't allow switch/case in "constexpr" functions.
2017-01-20pcm/Traits: add "SILENCE" attributeMax Kellermann
2017-01-20pcm/Traits: add specialization for SampleFormat::DSDMax Kellermann