aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* db/simple: fix implicit nullptr/bool conversionMax Kellermann2014-12-261-1/+1
| | | | | Return false on error, not nullptr.
* pcm/SoxrResampler: round output buffer size upMax Kellermann2014-11-101-1/+2
| | | | | | | | The old formula calculates the output buffer size with "regular" rounding (to the nearest integer), however sometimes, that is insufficient and the last sample cannot be resampled. This causes audible distortions. By changing the formula to consider the worst case (always round up), this problem is eliminated.
* pcm/ChannelsConverter: fix variable used to generate error messageMax Kellermann2014-10-231-1/+1
| | | | | Use the "_format" parameter instead of the (uninitialized) "format" attribute.
* pcm/FormatConverter: move check to Open()Max Kellermann2014-10-231-10/+24
| | | | | Report unsupported format while opening the filter, not later when the first conversion takes place.
* pcm/PcmConvert: assign {src,dest}_format at the endMax Kellermann2014-10-231-12/+13
| | | | | Fixes assertion failure in destructor by not assigning {src,dest}_format when an error occurs.
* pcm/PcmConvert: make AudioFormat parameters "const"Max Kellermann2014-10-231-1/+1
|
* pcm: --disable-dsd also disables the dsd2pcm libraryMax Kellermann2014-09-262-1/+11
|
* PcmConvert: eliminate unused local variable "format"Max Kellermann2014-09-261-12/+2
|
* output/alsa, pcm: rename "DSD over USB" to "DoP"Max Kellermann2014-08-314-30/+29
| | | | | The standard has been renamed since the early draft that was implemented in MPD.
* *: add missing Compiler.h includesMax Kellermann2014-08-303-0/+3
| | | | Necessary for "final" on gcc 4.6.
* PcmExport: remove obsolete API documentationMax Kellermann2014-08-261-2/+1
|
* pcm/PcmDsd: remove "lsbfirst" supportMax Kellermann2014-08-233-6/+4
| | | | Unused. Bit reversing is done in the decoder.
* pcm/dsd2pcm: add license headersMax Kellermann2014-08-237-0/+210
| | | | | Obtained from the Mercurial repository at https://code.google.com/p/dsd2pcm/
* pcm/SoxrResampler: add missing string.h includeMax Kellermann2014-08-161-0/+1
|
* PcmExport: add missing <iterator> includeMax Kellermann2014-08-131-0/+2
| | | | For the range-based loop on a ConstBuffer object.
* PcmDsdUsb: use class ConstBufferMax Kellermann2014-08-123-18/+16
|
* PcmExport: use class ConstBufferMax Kellermann2014-08-122-36/+23
|
* PcmConvert: Convert() returns ConstBufferMax Kellermann2014-08-122-12/+4
|
* pcm: use nullptr instead of NULLMax Kellermann2014-07-302-3/+3
|
* pcm/Neon: explicit roundingMax Kellermann2014-03-191-3/+5
| | | | Convert to 31 bit first, then right-shift with rounding to 16 bit.
* pcm/Neon: make neon_x4_b() variadicMax Kellermann2014-03-161-6/+5
|
* pcm/Neon: apply bit shift during float->int conversionMax Kellermann2014-03-161-7/+2
| | | | Avoid multiplication. This is a speedup of 20%.
* pcm/PcmFormat: ARM NEON optimizations for float->s16Max Kellermann2014-03-152-1/+135
| | | | This is nearly 4 times faster than the "portable" algorithm.
* pcm/PcmFormat: don't use WritableBufferMax Kellermann2014-03-141-28/+20
| | | | The previous commit eliminated the need for that.
* pcm/PcmFormat: instantiate FloatToInteger<S32>Max Kellermann2014-03-141-6/+1
| | | | | .. instead of reusing FloatToInteger<S24> and converting from S24 to S32 in-place.
* pcm/PcmFormat: eliminate more duplicate code with templatesMax Kellermann2014-03-143-122/+233
| | | | | Refactor the conversion functions to classes and pass an instance to the new function AllocateConvert().
* pcm/PcmFormat: eliminate local variable "bits"Max Kellermann2014-03-141-3/+1
|
* pcm/PcmFormat: remove obsolete AllocateFromFloat() overloadMax Kellermann2014-03-141-15/+0
|
* util/{Const,Writable}Buffer: add operator[]Max Kellermann2014-03-011-3/+3
|
* pcm/FallbackResampler: add missing ConstBuffer<T>::ToVoid() callMax Kellermann2014-02-061-1/+1
|
* Config*: move to config/Max Kellermann2014-01-241-3/+3
|
* pcm/SoxrResampler: Add configurable quality levelsChase Geigle2014-01-213-3/+73
|
* pcm/Volume: make DSD a no-opMax Kellermann2014-01-171-2/+8
| | | | | Kludge to work around DSD playback failure because the ReplayGainFilterPlugin is always in the filter chain.
* copyright year 2014Max Kellermann2014-01-1342-42/+42
|
* pcm/Utils: remove unused function pcm_end_pointer()Max Kellermann2014-01-071-12/+0
|
* pcm/Volume: use number of samples instead of end pointerMax Kellermann2014-01-071-25/+19
|
* pcm/Format: change parameters/return values to ConstBufferMax Kellermann2014-01-063-259/+160
|
* pcm/Format: use number of samples instead of end pointerMax Kellermann2014-01-061-44/+34
|
* pcm/Volume: remove unused function pcm_volume_dither()Max Kellermann2013-12-281-16/+0
|
* pcm/PcmMix: improved ditheringMax Kellermann2013-12-282-18/+31
| | | | Use the existing PcmDither library.
* pcm/Volume: improved ditheringMax Kellermann2013-12-284-20/+54
| | | | | Instead of just adding a rectangular random value before shifting back to the normal scale, use the existing PcmDither library.
* pcm/PcmDither: inline Dither24To16() and Dither32To16()Max Kellermann2013-12-282-3/+4
|
* pcm/Volume: remove optimized i386 assemblyMax Kellermann2013-12-281-50/+0
| | | | | This code is unable to dither. Until we implement that, let's remove the code for now. i386 isn't relevant anymore anyway.
* pcm/Traits: use 32 bit integer for S8 long_typeMax Kellermann2013-12-251-1/+1
| | | | 16 bit is not enough for volume calculations.
* pcm/Dither: add API documentationMax Kellermann2013-12-241-0/+18
|
* pcm/Dither: move shift from DitherConvert() to Dither()Max Kellermann2013-12-241-2/+2
| | | | All callers need this shift, so let's move it to the basic method.
* pcm/Dither: rename DitherShift() to DitherConvert()Max Kellermann2013-12-242-11/+11
|
* pcm/Volume: convert to classMax Kellermann2013-12-232-40/+126
| | | | Prepare for adding state.
* pcm/Volume: apply volume into destination bufferMax Kellermann2013-12-231-21/+37
|
* pcm/Volume: convert i386 code to template specializationMax Kellermann2013-12-231-42/+42
|