Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | pcm/Volume: improved dithering | Max Kellermann | 2013-12-28 | 4 | -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 Kellermann | 2013-12-28 | 2 | -3/+4 |
| | |||||
* | pcm/Volume: remove optimized i386 assembly | Max Kellermann | 2013-12-28 | 1 | -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_type | Max Kellermann | 2013-12-25 | 1 | -1/+1 |
| | | | | 16 bit is not enough for volume calculations. | ||||
* | pcm/Dither: add API documentation | Max Kellermann | 2013-12-24 | 1 | -0/+18 |
| | |||||
* | pcm/Dither: move shift from DitherConvert() to Dither() | Max Kellermann | 2013-12-24 | 1 | -2/+2 |
| | | | | All callers need this shift, so let's move it to the basic method. | ||||
* | pcm/Dither: rename DitherShift() to DitherConvert() | Max Kellermann | 2013-12-24 | 2 | -11/+11 |
| | |||||
* | Merge tag 'release-0.18.6' | Max Kellermann | 2013-12-24 | 5 | -7/+15 |
|\ | |||||
| * | PlayerThread: log the last song that was played | Max Kellermann | 2013-12-24 | 1 | -1/+4 |
| | | |||||
| * | OutputControl: update both ReplayGainFilters | Max Kellermann | 2013-12-24 | 1 | -0/+2 |
| | | | | | | | | | | The "mode" of the second ReplayGainFilter was never set, and thus replay gain was never applied to the new song during cross-fade. | ||||
| * | fix FfmpegDecoderPlugin to use relative timestamps | Steven O'Brien | 2013-12-20 | 1 | -4/+6 |
| | | |||||
| * | util/Error: add missing <algorithm> include | Max Kellermann | 2013-12-19 | 1 | -0/+1 |
| | | | | | | | | For std::move(). | ||||
| * | riff: recognize upper-case "ID3" chunk name | Michal Smucr | 2013-12-19 | 1 | -1/+2 |
| | | | | | | | | Some tagging libraries (eg. TagLib) produce that variant. | ||||
| * | input/cdio: fix typo in #include path | Max Kellermann | 2013-12-17 | 1 | -1/+1 |
| | | | | | | | | Broken by commit 3b0fea5f | ||||
* | | OutputThread: handle failing ReplayGainFilter::Open() | Max Kellermann | 2013-12-24 | 1 | -4/+10 |
| | | | | | | | | | | Since opening the PcmVolume object can now fail, this case must be handled. | ||||
* | | pcm/Volume: convert to class | Max Kellermann | 2013-12-23 | 4 | -132/+156 |
| | | | | | | | | Prepare for adding state. | ||||
* | | pcm/Volume: apply volume into destination buffer | Max Kellermann | 2013-12-23 | 1 | -21/+37 |
| | | |||||
* | | pcm/Volume: convert i386 code to template specialization | Max Kellermann | 2013-12-23 | 1 | -42/+42 |
| | | |||||
* | | pcm/Volume: move code to template pcm_volume_sample() | Max Kellermann | 2013-12-23 | 1 | -7/+16 |
| | | |||||
* | | pcm/PcmVolume: rename to Volume.cxx | Max Kellermann | 2013-12-23 | 7 | -6/+6 |
| | | |||||
* | | pcm/PcmConvert: move the Domain instance to Domain.cxx | Max Kellermann | 2013-12-23 | 6 | -9/+56 |
| | | | | | | | | | | Rename pcm_convert_domain to pcm_domain. Move it out so we can use it without depending on the whole PcmConvert library. | ||||
* | | ConfigData: initialise "used" in second constructor | Max Kellermann | 2013-12-23 | 1 | -1/+1 |
| | | |||||
* | | pcm/Dither: convert remaining methods to templates | Max Kellermann | 2013-12-22 | 2 | -26/+39 |
| | | | | | | | | | | Use the SampleTraits template and let the compiler generate a special case for S32 instead of reusing S24_P32. | ||||
* | | pcm/Dither: generic sample dithering using template | Max Kellermann | 2013-12-22 | 2 | -13/+25 |
| | | |||||
* | | pcm/Traits: include stddef.h for size_t | Max Kellermann | 2013-12-22 | 1 | -0/+1 |
| | | |||||
* | | pcm/Traits: add MIN and MAX | Max Kellermann | 2013-12-22 | 2 | -9/+28 |
| | | | | | | | | Move from PcmClamp(). | ||||
* | | pcm/Volume: add constant PCM_VOLUME_BITS | Max Kellermann | 2013-12-22 | 2 | -1/+6 |
| | | |||||
* | | pcm/Volume: make PCM_VOLUME_1 a "constexpr" | Max Kellermann | 2013-12-22 | 3 | -13/+13 |
| | | |||||
* | | pcm/Prng: make pcm_prng() inline | Max Kellermann | 2013-12-22 | 1 | -1/+1 |
| | | |||||
* | | util/Clamp: generic Clamp() function | Max Kellermann | 2013-12-22 | 3 | -3/+53 |
| | | |||||
* | | event/PollGroupPoll: include stddef.h instead of string.h | Max Kellermann | 2013-12-21 | 1 | -1/+2 |
| | | |||||
* | | input/alsa: fix build with gcc 4.6 | Max Kellermann | 2013-12-21 | 1 | -12/+12 |
| | | |||||
* | | add draft ALSA input plugin | Steven O'Brien | 2013-12-19 | 4 | -0/+244 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've created an elementary input plugin that plays sound from the soundcard, so you can use MPD to listen to anything connected to the line-in jack, or to Video4Linux FM radio cards that send audio through the soundcard. There has been a small number of posts here in the past requesting line-in input, so here is a first, simplistic stab at it. The patch adds a new sheme, alsa://, which causes mpd to play data read directly from a souncdard. It defaults to hw:0,0, but you can pass any ALSA device name in the URI. So, using mpc for example: mpc add alsa:// mpc play will play from device hw:0,0. To use a diffferent device: mpc add alsa://hw:1,0 | ||||
* | | output/osx: fix typo | Max Kellermann | 2013-12-19 | 1 | -1/+1 |
| | | |||||
* | | util/fifo_buffer: remove obsolete library | Max Kellermann | 2013-12-19 | 3 | -383/+0 |
| | | |||||
* | | output/osx: use DynamicFifoBuffer instead of struct fifo_buffer | Max Kellermann | 2013-12-19 | 1 | -26/+21 |
| | | |||||
* | | util/PeakBuffer: use IsEmpty() instead of IsNull() | Max Kellermann | 2013-12-19 | 2 | -4/+4 |
| | | | | | | | | | | | | The DynamicFifoBuffer methods never return nullptr when the buffer is empty or full; instead, they return an empty buffer. This bug caused an endless loop. | ||||
* | | util/{Domain,Error}: relicense to BSD 2-clause | Max Kellermann | 2013-12-16 | 3 | -43/+73 |
| | | |||||
* | | util/PeakBuffer: use DynamicFifoBuffer instead of struct fifo_buffer | Max Kellermann | 2013-12-15 | 3 | -48/+36 |
| | | | | | | | | Switch to the C++ version. | ||||
* | | util/PeakBuffer: return ConstBuffer<void> | Max Kellermann | 2013-12-15 | 3 | -11/+16 |
| | | |||||
* | | util/WritableBuffer: add cast methods | Max Kellermann | 2013-12-15 | 1 | -1/+30 |
| | | |||||
* | | util/WritableBuffer: fix indent | Max Kellermann | 2013-12-15 | 1 | -31/+31 |
| | | |||||
* | | util/DynamicFifoBuffer: make constructor "explicit" | Max Kellermann | 2013-12-15 | 1 | -1/+1 |
| | | |||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2013-12-15 | 1 | -1/+13 |
|\| | |||||
| * | mixer/alsa: fix deadlock | Max Kellermann | 2013-12-15 | 1 | -1/+13 |
| | | | | | | | | | | | | This deadlock was a regression by commit 8e38b4f8. Since we currently can't resolve this, let's revert the commit, and add a GLib specific workaround for the build failure. | ||||
* | | configure.ac: add option "--disable-glib" | Max Kellermann | 2013-12-15 | 6 | -3/+35 |
| | | | | | | | | | | Allows building without GLib. This fails to compile currently, because GLib is still used in the MPD core. | ||||
* | | Daemon: use strdup() instead of g_strdup() | Max Kellermann | 2013-12-15 | 1 | -5/+3 |
| | | |||||
* | | util/Tokenizer, ...: include cleanup | Max Kellermann | 2013-12-15 | 6 | -12/+0 |
| | | |||||
* | | system/SocketError, ...: use strerror() instead of g_strerror() | Max Kellermann | 2013-12-15 | 4 | -9/+14 |
| | | | | | | | | Avoid GLib. | ||||
* | | LogInit: move backend code to LogBackend.cxx | Max Kellermann | 2013-12-15 | 3 | -175/+206 |
| | |