Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | SongUpdate: read tags from songs in an archive | Max Kellermann | 2013-12-29 | 5 | -5/+131 |
| | | | | | Add the TagStream.cxx library, similar to TagFile.cxx, and use it to load tags from song files inside archives. | ||||
* | InputStream: add static method OpenReady() | Max Kellermann | 2013-12-29 | 11 | -62/+47 |
| | | | | Merge some duplicate code. | ||||
* | TagFile: rewind the stream before trying the next plugin | Max Kellermann | 2013-12-29 | 1 | -1/+2 |
| | | | | Got lost in commit c97685fe | ||||
* | DecoderList: add "pure" attribute | Max Kellermann | 2013-12-29 | 1 | -0/+1 |
| | |||||
* | DecoderList: add function decoder_plugins_supports_suffix() | Max Kellermann | 2013-12-29 | 4 | -54/+20 |
| | | | | Replaces decoder_plugin_from_suffix(). | ||||
* | DecoderThread: use decoder_plugins_try() | Max Kellermann | 2013-12-29 | 1 | -32/+44 |
| | | | | | .. instead of decoder_plugin_from_suffix(). This reduces overhead by walking the array only once. | ||||
* | UpdateContainer: pass suffix instead of DecoderPlugin | Max Kellermann | 2013-12-29 | 3 | -6/+18 |
| | | | | | Instead of using the first DecoderPlugin that supports the suffix, use the first one that actually implements the "container_scan" method. | ||||
* | TagFile: pass reference instead of pointer | Max Kellermann | 2013-12-29 | 5 | -9/+6 |
| | |||||
* | TagFile: use decoder_plugins_try() | Max Kellermann | 2013-12-29 | 1 | -41/+54 |
| | | | | | | .. instead of decoder_plugin_from_suffix(). This reduces overhead by walking the array only once. | ||||
* | DecoderList: remove unused function decoder_plugin_from_mime_type() | Max Kellermann | 2013-12-29 | 2 | -25/+0 |
| | |||||
* | Merge branch 'v0.18.x' | Max Kellermann | 2013-12-29 | 3 | -9/+18 |
|\ | |||||
| * | configure.ac: improved check for libyajl 1.0 | Max Kellermann | 2013-12-29 | 2 | -1/+3 |
| | | | | | | | | | | | | | | | | If we have libyajl 2.0.1 (without a pkg-config file), our configure.ac would assume this is the libyajl 1.0 API, because the function yajl_alloc() exists in both. This commit changes the library check to the function yajl_parse_complete() which was removed in the 2.0 API. This fixes build failure with libyajl 2.0.1. | ||||
| * | daemon: no initgroups() when already running as the configured user | Max Kellermann | 2013-12-29 | 2 | -1/+7 |
| | | | | | | | | | | We can assume that initgroups() would be a no-op in that case, however initgroups() is not allowed for unprivileged users anyway. | ||||
| * | Daemon: fix typo in comment | Max Kellermann | 2013-12-29 | 1 | -1/+1 |
| | | |||||
| * | Daemon: simplify nested "if" | Max Kellermann | 2013-12-29 | 1 | -5/+4 |
| | | |||||
| * | Daemon: fix typo in cast | Max Kellermann | 2013-12-29 | 1 | -1/+1 |
| | | |||||
| * | configure.ac: prepare for 0.18.7 | Max Kellermann | 2013-12-29 | 2 | -1/+3 |
| | | |||||
* | | input/smbclient: new input plugin | Max Kellermann | 2013-12-29 | 8 | -0/+274 |
| | | |||||
* | | ls: add "pure" attribute | Max Kellermann | 2013-12-29 | 1 | -0/+3 |
| | | |||||
* | | pcm/Volume: remove unused function pcm_volume_dither() | Max Kellermann | 2013-12-28 | 1 | -16/+0 |
| | | |||||
* | | pcm/PcmMix: improved dithering | Max Kellermann | 2013-12-28 | 5 | -25/+48 |
| | | | | | | | | Use the existing PcmDither library. | ||||
* | | pcm/Volume: improved dithering | Max Kellermann | 2013-12-28 | 6 | -22/+59 |
| | | | | | | | | | | 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 | 3 | -4/+5 |
| | | |||||
* | | 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 |
| | | |||||
* | | test/*: use fprintf(stderr,...) and Log() instead of g_printerr() | Max Kellermann | 2013-12-24 | 12 | -110/+102 |
| | | | | | | Avoid GLib. | ||||
* | | test/*: remove GLib logging setup | Max Kellermann | 2013-12-24 | 5 | -60/+0 |
| | | | | | | | | Obsolete, our logging library doesn't ues GLib anymore. | ||||
* | | Merge tag 'release-0.18.6' | Max Kellermann | 2013-12-24 | 6 | -8/+21 |
|\| | |||||
| * | release v0.18.6 | Max Kellermann | 2013-12-24 | 2 | -2/+2 |
| | | |||||
| * | 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 | 2 | -0/+3 |
| | | | | | | | | | | 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 | 2 | -4/+8 |
| | | |||||
| * | 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 | 2 | -1/+4 |
| | | | | | | | | 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 | 8 | -273/+233 |
| | | | | | | | | 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 | 12 | -11/+11 |
| | | |||||
* | | pcm/PcmConvert: move the Domain instance to Domain.cxx | Max Kellermann | 2013-12-23 | 7 | -9/+57 |
| | | | | | | | | | | 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(). |