aboutsummaryrefslogtreecommitdiffstats
path: root/src/output (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-12-28output/fifo: make variables more localMax Kellermann1-2/+1
2014-12-27output/pipe: convert to classMax Kellermann1-1/+2
2014-12-27output/pipe: add static method Create()Max Kellermann1-6/+14
2014-12-27output/pipe: merge Initialize() and Configure()Max Kellermann1-9/+4
2014-12-27output/pipe: move functions into the structMax Kellermann1-18/+35
2014-12-26EncoderPlugin: pass Tag reference to method tag()Max Kellermann3-3/+3
2014-12-26OutputPlugin: pass Tag reference to _send_tag()Max Kellermann8-19/+17
2014-12-26output/recorder: implement send_tag()Max Kellermann1-1/+22
2014-12-26output/recorder: move functions into the structMax Kellermann1-25/+40
2014-12-26output/jack: fix implicit nullptr/bool conversionMax Kellermann1-2/+2
Return false on error, not nullptr.
2014-12-26db/proxy, output/shout: fix implicit nullptr/bool conversionMax Kellermann1-1/+1
Return false on error, not nullptr.
2014-12-25output/jack: move code to separate functionsMax Kellermann1-40/+73
2014-12-24output/jack: cache AudioFormat::channelsMax Kellermann1-4/+6
2014-12-24output/jack: fix typoMax Kellermann1-1/+1
2014-12-24output/jack: use jack_ringbuffer_get_write_vector()Max Kellermann1-10/+20
Reduce number of libjack calls.
2014-12-24output/jack: move jack_ringbuffer_write_space() call to WriteSamples()Max Kellermann1-19/+21
2014-12-24output/jack: cache AudioFormat::channelsMax Kellermann1-4/+3
2014-12-24output/jack: pass float* to WriteSamples()Max Kellermann1-5/+3
2014-12-24output/jack: WriteSamples() returns size_tMax Kellermann1-4/+11
2014-12-24output/jack: pass size_t to WriteSamples()Max Kellermann1-3/+3
2014-12-24output/jack: use SampleFormat::FLOATMax Kellermann1-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.
2014-12-24output/Internal: move enum AudioOutputCommand into the structMax Kellermann4-58/+58
2014-12-24output/Internal: convert audio_output_command to strictly-typed enumMax Kellermann4-47/+49
2014-12-24output/jack: use std::fill()Max Kellermann1-9/+6
2014-12-24output/jack: move functions into the structMax Kellermann1-208/+246
2014-12-24output/jack: merge two mpd_jack_available() callsMax Kellermann1-2/+2
2014-12-24output/jack: make variables more localMax Kellermann1-21/+15
2014-12-24output/jack: convert const to constexprMax Kellermann1-1/+1
2014-12-24output/jack: convert enum to constexprMax Kellermann1-3/+1
2014-12-17output/winmm: show detailed error messagesMax Kellermann1-7/+18
2014-12-09output/oss: make the static arrays "constexpr"Max Kellermann1-3/+3
2014-12-04util/DivideString: add option "strip"Max Kellermann1-1/+1
2014-12-04util/SplitString: new utility classMax Kellermann2-28/+14
Replaces GLib's g_strsplit().
2014-12-04output/jack: use usleep() instead of g_usleep()Max Kellermann1-1/+2
2014-12-03util/SplitString: rename to DivideStringMax Kellermann1-2/+2
2014-12-02output/ao: use class SplitString instead of g_strsplit()Max Kellermann1-6/+4
2014-12-02mixer/null: new mixer pluginMax Kellermann1-0/+4
2014-12-02MixerType: convert to strictly-typed enumMax Kellermann1-5/+5
2014-12-02MixerType: rename to CamelCaseMax Kellermann1-1/+1
2014-12-01output/httpd/IcyMetaDataServer: use CopyString() instead of g_strlcpy()Max Kellermann1-18/+7
2014-12-01output/httpd/IcyMetaDataServer: don't use GLib typesMax Kellermann1-13/+13
2014-12-01output/httpd/IcyMetaDataServer: make variables more localMax Kellermann1-19/+14
2014-12-01Output: start with a null mixer.Nix1-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.
2014-11-28Compiler.h: add macro CLANG_OR_GCC_VERSION()Max Kellermann1-1/+1
2014-11-21configure.ac: add macro MPD_ENABLE_AUTO_PKGMax Kellermann1-5/+5
Simplify the definition of many build options.
2014-11-02output/roar: remove unnecessary "volatile" keywordMax Kellermann1-1/+1
A mutex acts as a memory barrier, and thus "volatile" is not necessary.
2014-10-25OutputThread: fall back to PCM if given DSD sample rate is not supportedMax Kellermann1-0/+30
Works around the "PCM conversion from f to dsd is not implemented" error message that prevents DSD playback.
2014-10-25Set pulseaudio channel map to WAVE-EXSteven Newbury1-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.
2014-10-24OutputThread: close the output plugin after filter failureMax Kellermann1-0/+1
Fixes memory leak because ao_plugin_close() never gets called.
2014-10-24OutputThread: unlock mutex for CloseFilter()Max Kellermann2-0/+14
Be consistent.