aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcm/PcmDither.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-12-28pcm/Volume: improved ditheringMax Kellermann1-0/+13
Instead of just adding a rectangular random value before shifting back to the normal scale, use the existing PcmDither library.
2013-12-28pcm/PcmDither: inline Dither24To16() and Dither32To16()Max Kellermann1-2/+2
2013-12-24pcm/Dither: move shift from DitherConvert() to Dither()Max Kellermann1-2/+2
All callers need this shift, so let's move it to the basic method.
2013-12-24pcm/Dither: rename DitherShift() to DitherConvert()Max Kellermann1-7/+7
2013-12-22pcm/Dither: convert remaining methods to templatesMax Kellermann1-21/+27
Use the SampleTraits template and let the compiler generate a special case for S32 instead of reusing S24_P32.
2013-12-22pcm/Dither: generic sample dithering using templateMax Kellermann1-13/+22
2013-04-09pcm_*: move to src/pcm/Max Kellermann1-0/+0
2013-01-31PcmDither: use constexprMax Kellermann1-10/+8
2013-01-31PcmDither: convert struct to a classMax Kellermann1-21/+19
2013-01-31pcm_*: convert to C++Max Kellermann1-3/+3
2011-10-10pcm_dither: pass an "end" pointer instead of a sample countMax Kellermann1-6/+4
This is easier and more efficient to loop on, because only two variables get modified (src and dest).
2011-01-29copyright year 2011Max Kellermann1-1/+1
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-03-13all: Update copyright header.Avuton Olrich1-6/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-03-02pcm_dither: added pcm_dither_32_to_16()Max Kellermann1-0/+15
For 32 bit dithering, reuse the 24 bit dithering code, but apply a 8 bit right shift first.
2009-03-02pcm_dither: renamed struct pcm_dither_24 to struct pcm_ditherMax Kellermann1-2/+2
There is nothing 24 bit specific in the pcm_dither_24 struct. Since we want to reuse the struct for 32 bit dithering, let's drop the "_24" suffix from the struct name.
2009-01-07pcm_prng: renamed prng() to pcm_prng()Max Kellermann1-1/+1
2009-01-03pcm_utils: use the custom PRNG for volume ditheringMax Kellermann1-5/+1
Don't use libc's rand() function, because it is slow. Our own trivial linear congruential generator is good enough for dithering.
2008-10-23pcm_dither: added generic 24 to 16 bit ditheringMax Kellermann1-0/+82
Copied and adapted code from the mp3 decoder plugin. This library now replaces the old and low-quality function pcm_convert_24_to_16().