Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | output/recorder: move functions into the struct | Max Kellermann | 2014-12-26 | 1 | -25/+40 |
| | |||||
* | output/jack: fix implicit nullptr/bool conversion | Max Kellermann | 2014-12-26 | 1 | -2/+2 |
| | | | | Return false on error, not nullptr. | ||||
* | Merge branch 'v0.19.x' | Max Kellermann | 2014-12-26 | 1 | -1/+1 |
|\ | |||||
| * | Merge branch 'v0.18.x' into v0.19.x | Max Kellermann | 2014-12-26 | 1 | -1/+1 |
| |\ | |||||
| | * | db/proxy, output/shout: fix implicit nullptr/bool conversion | Max Kellermann | 2014-12-26 | 1 | -1/+1 |
| | | | | | | | | | | | | Return false on error, not nullptr. | ||||
| | * | output/roar: remove unnecessary "volatile" keyword | Max Kellermann | 2014-11-02 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | A mutex acts as a memory barrier, and thus "volatile" is not necessary. | ||||
* | | | output/jack: move code to separate functions | Max Kellermann | 2014-12-25 | 1 | -40/+73 |
| | | | |||||
* | | | output/jack: cache AudioFormat::channels | Max Kellermann | 2014-12-24 | 1 | -4/+6 |
| | | | |||||
* | | | output/jack: fix typo | Max Kellermann | 2014-12-24 | 1 | -1/+1 |
| | | | |||||
* | | | output/jack: use jack_ringbuffer_get_write_vector() | Max Kellermann | 2014-12-24 | 1 | -10/+20 |
| | | | | | | | | | | | | Reduce number of libjack calls. | ||||
* | | | output/jack: move jack_ringbuffer_write_space() call to WriteSamples() | Max Kellermann | 2014-12-24 | 1 | -19/+21 |
| | | | |||||
* | | | output/jack: cache AudioFormat::channels | Max Kellermann | 2014-12-24 | 1 | -4/+3 |
| | | | |||||
* | | | output/jack: pass float* to WriteSamples() | Max Kellermann | 2014-12-24 | 1 | -5/+3 |
| | | | |||||
* | | | output/jack: WriteSamples() returns size_t | Max Kellermann | 2014-12-24 | 1 | -4/+11 |
| | | | |||||
* | | | output/jack: pass size_t to WriteSamples() | Max Kellermann | 2014-12-24 | 1 | -3/+3 |
| | | | |||||
* | | | output/jack: use SampleFormat::FLOAT | Max Kellermann | 2014-12-24 | 1 | -55/+9 |
| | | | | | | | | | | | | | | | | | | What JACK expects is already implemented in MPD, just not used. The sample format conversion code in the JACK plugin was redundant and could reduce sound quality. | ||||
* | | | output/Internal: move enum AudioOutputCommand into the struct | Max Kellermann | 2014-12-24 | 4 | -58/+58 |
| | | | |||||
* | | | output/Internal: convert audio_output_command to strictly-typed enum | Max Kellermann | 2014-12-24 | 4 | -47/+49 |
| | | | |||||
* | | | output/jack: use std::fill() | Max Kellermann | 2014-12-24 | 1 | -9/+6 |
| | | | |||||
* | | | output/jack: move functions into the struct | Max Kellermann | 2014-12-24 | 1 | -208/+246 |
| | | | |||||
* | | | output/jack: merge two mpd_jack_available() calls | Max Kellermann | 2014-12-24 | 1 | -2/+2 |
| | | | |||||
* | | | output/jack: make variables more local | Max Kellermann | 2014-12-24 | 1 | -21/+15 |
| | | | |||||
* | | | output/jack: convert const to constexpr | Max Kellermann | 2014-12-24 | 1 | -1/+1 |
| | | | |||||
* | | | output/jack: convert enum to constexpr | Max Kellermann | 2014-12-24 | 1 | -3/+1 |
| | | | |||||
* | | | output/winmm: show detailed error messages | Max Kellermann | 2014-12-17 | 1 | -7/+18 |
| | | | |||||
* | | | output/oss: make the static arrays "constexpr" | Max Kellermann | 2014-12-09 | 1 | -3/+3 |
| | | | |||||
* | | | Merge tag 'v0.19.6' | Max Kellermann | 2014-12-08 | 1 | -0/+1 |
|\| | | |||||
| * | | Output: start with a null mixer. | Nix | 2014-12-01 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are code paths (mostly error cases) in which it is possible to initialize an AudioOutput and then kill it without ever calling audio_output_new(). In such a case, its destructor will attempt to free a mixer that was never initialized, leading to an attempt to take out a lock on a mutex that was similarly never initialized, which hangs forever. Fix by always initializing the mixer appropriately. | ||||
* | | | util/DivideString: add option "strip" | Max Kellermann | 2014-12-04 | 1 | -1/+1 |
| | | | |||||
* | | | util/SplitString: new utility class | Max Kellermann | 2014-12-04 | 2 | -28/+14 |
| | | | | | | | | | | | | Replaces GLib's g_strsplit(). | ||||
* | | | output/jack: use usleep() instead of g_usleep() | Max Kellermann | 2014-12-04 | 1 | -1/+2 |
| | | | |||||
* | | | util/SplitString: rename to DivideString | Max Kellermann | 2014-12-03 | 1 | -2/+2 |
| | | | |||||
* | | | output/ao: use class SplitString instead of g_strsplit() | Max Kellermann | 2014-12-02 | 1 | -6/+4 |
| | | | |||||
* | | | mixer/null: new mixer plugin | Max Kellermann | 2014-12-02 | 1 | -0/+4 |
| | | | |||||
* | | | MixerType: convert to strictly-typed enum | Max Kellermann | 2014-12-02 | 1 | -5/+5 |
| | | | |||||
* | | | MixerType: rename to CamelCase | Max Kellermann | 2014-12-02 | 1 | -1/+1 |
| | | | |||||
* | | | output/httpd/IcyMetaDataServer: use CopyString() instead of g_strlcpy() | Max Kellermann | 2014-12-01 | 1 | -18/+7 |
| | | | |||||
* | | | output/httpd/IcyMetaDataServer: don't use GLib types | Max Kellermann | 2014-12-01 | 1 | -13/+13 |
| | | | |||||
* | | | output/httpd/IcyMetaDataServer: make variables more local | Max Kellermann | 2014-12-01 | 1 | -19/+14 |
| | | | |||||
* | | | Compiler.h: add macro CLANG_OR_GCC_VERSION() | Max Kellermann | 2014-11-28 | 1 | -1/+1 |
| | | | |||||
* | | | configure.ac: add macro MPD_ENABLE_AUTO_PKG | Max Kellermann | 2014-11-21 | 1 | -5/+5 |
| | | | | | | | | | | | | Simplify the definition of many build options. | ||||
* | | | Merge tag 'v0.19.2' | Max Kellermann | 2014-11-02 | 1 | -0/+30 |
|\| | | |||||
| * | | OutputThread: fall back to PCM if given DSD sample rate is not supported | Max Kellermann | 2014-10-25 | 1 | -0/+30 |
| | | | | | | | | | | | | | | | Works around the "PCM conversion from f to dsd is not implemented" error message that prevents DSD playback. | ||||
* | | | Set pulseaudio channel map to WAVE-EX | Steven Newbury | 2014-10-25 | 1 | -1/+5 |
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pulseaudio expects clients to specify their channel-map if the default (ALSA) map does not route the audio to the expected speakers. Many Google results suggest dealing with this by re-routing the audio channels with the appropriate ALSA plugin, but this will then simply break any clients which expect the default ALSA mapping. Virtually all media files and codecs, certainly flac, dca, a52, and of course anything based on Microsoft's WAVEFORMAT_EXTENSIBLE specification, assume the layout in the table here: http://en.wikipedia.org/wiki/Surround_sound#Standard_speaker_channels Fortunately, pulseaudio directly addresses this with a built-in channel map for WAVE-EX which can be set automatically in the stream sample-spec. | ||||
* | | OutputThread: close the output plugin after filter failure | Max Kellermann | 2014-10-24 | 1 | -0/+1 |
| | | | | | | | | Fixes memory leak because ao_plugin_close() never gets called. | ||||
* | | OutputThread: unlock mutex for CloseFilter() | Max Kellermann | 2014-10-24 | 2 | -0/+14 |
| | | | | | | | | Be consistent. | ||||
* | | output/roar: remove unnecessary "volatile" keyword | Max Kellermann | 2014-10-23 | 1 | -1/+1 |
| | | | | | | | | | | A mutex acts as a memory barrier, and thus "volatile" is not necessary. | ||||
* | | Add MusicBrainz' Release Track Id tag | Wieland Hoffmann | 2014-09-27 | 1 | -0/+3 |
| | | | | | | | | | | | | | | | | | | | | The Release Track Id uniquely identifies a recording on a release - that is, even if a recording appears twice on a release (meaning that the combination of recording and release id are not enough to figure out which one it is), the release track id will allow differentiating the two. The tag names are taken from https://musicbrainz.org/doc/MusicBrainz_Picard/Tags/Mapping | ||||
* | | output/alsa: change a few "dsd" to "dop" | Max Kellermann | 2014-09-26 | 1 | -4/+4 |
| | | |||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-09-24 | 1 | -1/+10 |
|\| |