aboutsummaryrefslogtreecommitdiffstats
path: root/src/output (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Set pulseaudio channel map to WAVE-EXSteven Newbury2014-10-251-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 failureMax Kellermann2014-10-241-0/+1
| | | | | | | | Fixes memory leak because ao_plugin_close() never gets called.
* | OutputThread: unlock mutex for CloseFilter()Max Kellermann2014-10-242-0/+14
| | | | | | | | Be consistent.
* | output/roar: remove unnecessary "volatile" keywordMax Kellermann2014-10-231-1/+1
| | | | | | | | | | A mutex acts as a memory barrier, and thus "volatile" is not necessary.
* | Add MusicBrainz' Release Track Id tagWieland Hoffmann2014-09-271-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 Kellermann2014-09-261-4/+4
| |
* | Merge branch 'v0.18.x'Max Kellermann2014-09-241-1/+10
|\|
* | output/pulse: simplify _wait_for_operation()Max Kellermann2014-09-051-6/+3
| | | | | | | | Eliminate the duplicate pa_operation_get_state() call.
* | output/alsa, pcm: rename "DSD over USB" to "DoP"Max Kellermann2014-08-311-20/+21
| | | | | | | | | | The standard has been renamed since the early draft that was implemented in MPD.
* | Merge tag 'v0.18.13'Max Kellermann2014-08-312-0/+15
|\|
| * output/alsa: fix endless loop at end of file in dsd_usb modeMax Kellermann2014-08-311-0/+9
| |
| * output/{alsa,oss}: add assertionsMax Kellermann2014-08-312-0/+6
| |
| * output/HttpdClient: fix build failure due to missing stdio.h includeGustavo Zacarias2014-07-091-0/+1
| | | | | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
* | *: add missing Compiler.h includesMax Kellermann2014-08-301-0/+1
| | | | | | | | Necessary for "final" on gcc 4.6.
* | output/alsa: fix signed/unsigned comparison warningMax Kellermann2014-08-301-1/+1
| |
* | MusicChunk: use SignedSongTime for the time stampMax Kellermann2014-08-291-2/+2
| |
* | MultipleOutputs: use SignedSongTime for elapsed_timeMax Kellermann2014-08-292-8/+9
| |
* | Tag: use SignedSongTime for the song durationMax Kellermann2014-08-291-6/+10
| |
* | output/alsa: fix coding styleMax Kellermann2014-08-261-5/+5
| |
* | output/alsa: merge Init() into Configure()Max Kellermann2014-08-261-6/+5
| |
* | output/alsa: add API documentationMax Kellermann2014-08-261-0/+17
| |
* | output/alsa: support native DSD playbackMax Kellermann2014-08-261-0/+12
| | | | | | | | | | Translate SampleFormat::DSD to SND_PCM_FORMAT_DSD_U8, which was added to alsa-lib 1.0.27.1.
* | output/alsa: move alsa_configure() into the classMax Kellermann2014-08-261-13/+15
| |
* | output/alsa: remove obsolete macrosMax Kellermann2014-08-261-3/+0
| |
* | PcmExport: use class ConstBufferMax Kellermann2014-08-122-2/+8
| |
* | Filter: FilterPCM() returns ConstBufferMax Kellermann2014-08-121-58/+35
| | | | | | | | | | API simplification. We can now avoid abusing a "size_t*" as additional return value.
* | MusicChunk: rename struct to MusicChunkMax Kellermann2014-08-124-24/+24
| |
* | fs/output, fs/TextFile: move to fs/io/Max Kellermann2014-08-071-1/+1
| |
* | *Save, *State: use the OutputStream API instead of FILE*Max Kellermann2014-07-302-6/+7
| |
* | util/Cast: reimplement as template without macroMax Kellermann2014-07-141-10/+4
| |
* | Tag: add class const_iterator and methods begin(), end()Max Kellermann2014-07-122-9/+11
| | | | | | | | Enables using range-based "for".
* | output/plugins/httpd/HttpdClient: fix build failure due to missing stdio.h ↵Gustavo Zacarias2014-07-091-0/+1
| | | | | | | | | | | | include Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
* | MultipleOutputs: ensure input_audio_format is zero-initialisedPete Beardmore2014-03-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -fixes SIGABRT when mpd is started from a previously paused state -regression introduced by commit: f5a923b9d16e4c63942a033d1bdb2ab150aae342: 'OutputAll: convert to class, move instance to class Partition' -input_audio_format was previously declared using the static modifier ensuring it was zero-initialised by default -the current default-initialised input_audio_format contains garbage at runtime which allows the AudioFormat.IsDefined() 'fail fast' test in MultipleOutputs::Update to pass and the SIGABRT follows in AudioOutput::Open when passed the invalid input_audio_format struct -switching AudioFormat.IsDefined() for AudioFormat.IsValid() is an alternative workaround
* | PulseOutputPlugin: set icon namePete Beardmore2014-03-041-0/+1
| |
* | Merge tag 'release-0.18.9'Max Kellermann2014-03-021-33/+22
|\|
| * output/alsa: remove the obsolete Raspberry Pi workaroundMax Kellermann2014-03-021-36/+0
| | | | | | | | Has been superseded by the previous commit.
| * output/alsa: call snd_pcm_prepare() after snd_pcm_drop()Max Kellermann2014-03-021-0/+25
| | | | | | | | | | | | | | Don't wait for an optimistic write to fail. This is an improved workaround for the infamous Raspberry Pi bug (see commit af991765). It works much better and comes without the negative side effects. The old workaround is now obsolete.
| * output/pulse: remove bogus g_free() callMax Kellermann2014-02-241-2/+0
| |
* | output/sles: support stereoMax Kellermann2014-03-011-5/+7
| |
* | output/httpd/client: eliminate GLibMax Kellermann2014-02-241-13/+11
| |
* | output/{shout,win32}: include cleanupMax Kellermann2014-02-242-3/+0
| |
* | output/openal: use usleep() instead of g_usleep()Max Kellermann2014-02-241-2/+2
| |
* | output/pulse: use setenv() instead of g_setenv()Max Kellermann2014-02-241-3/+2
| | | | | | | | There is no advantage in using g_setenv().
* | output/pulse: remove bogus g_free() callMax Kellermann2014-02-241-2/+0
| |
* | output/sles: new output plugin for AndroidMax Kellermann2014-02-227-0/+817
| |
* | ConfigGlobal: eliminate function config_get_next_param()Max Kellermann2014-02-201-3/+2
| |
* | Mixer: add class MixerListenerMax Kellermann2014-02-194-11/+31
| | | | | | | | Use a listener interface instead of GlobalEvents.
* | output/Init: pass AudioOutput referencesMax Kellermann2014-02-191-29/+29
| |
* | output/httpd: move to dedicated directoryMax Kellermann2014-02-1910-4/+349
| |
* | Timer: move to output/Max Kellermann2014-02-195-3/+117
| |