aboutsummaryrefslogtreecommitdiffstats
path: root/src/output (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-11-10configure.ac: require GLib 2.12Max Kellermann1-0/+1
Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h.
2009-11-10fd_util: removed creat_cloexec()Max Kellermann4-7/+8
Add a "mode" argument to open_cloexec() instead.
2009-11-09output/alsa: fill period buffer with silence before drainingMax Kellermann1-3/+47
ALSA passes full period buffers to the hardware. If an application doesn't finish writing a period, libasound will nonetheless send the partial buffer (with undefined trailing data). This causes noise at the end of playback. This patch attempts to track the current position within the period buffer, and generates silence at the end, before calling snd_pcm_drain().
2009-11-08fd_util: added O_NONBLOCK functionsMax Kellermann1-1/+2
Changed the wrappers for pipe(), socket(), accept(). On WIN32, this does not work for pipe().
2009-11-07set the close-on-exec flag on all file descriptorsMax Kellermann6-12/+22
Added the "fd_util" library, which attempts to use the new thread-safe Linux system calls pipe2(), accept4() and the options O_CLOEXEC, SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is not thread safe. This is particularly important for the "pipe" output plugin (and others, such as JACK/PulseAudio), because we were heavily leaking file descriptors to child processes.
2009-11-07output/jack: added option "server_name"Max Kellermann1-1/+8
2009-11-07output/httpd: moved code to httpd_output_bind()Max Kellermann1-28/+48
2009-11-07output/jack: free source port names on exitMax Kellermann1-0/+3
Make valgrind happy.
2009-11-06output/jack: dynamic source port listMax Kellermann1-37/+74
Same as the previous patch: create up to 16 configured source ports. The plugin tries to do its best at guessing the right combination for the given input file, the number of source and destination ports.
2009-11-06output/jack: dynamic destination port listMax Kellermann1-25/+71
Support up to 16 configured destination ports, that should really be enough for everybody.
2009-11-06output/jack: renamed option "ports" to "destination_ports"Max Kellermann1-1/+9
Be more clear which kind of port should be configured here.
2009-11-06output/jack: renamed "output ports" to "destination ports"Max Kellermann1-18/+20
Use the same name as in the libjack API documentation.
2009-11-05output/httpd: bind port when output is enabledMax Kellermann2-13/+49
Implement the methods enable() and disable(). Bind the HTTP port in the enable() method, but reject all incoming connections until the output is opened.
2009-11-05output/jack: support mono inputMax Kellermann1-13/+41
When MPD plays a mono song (audio_format.channel==1), connect only one source port to both destination ports.
2009-11-05output/jack: clear ring buffers before activatingMax Kellermann1-1/+6
After playback has stopped, the ring buffers may still contain samples. These will be played when playback is started the next time. We should clear the buffers each time.
2009-11-05output/jack: use jack_client_open() instead of jack_client_new()Max Kellermann1-4/+23
jack_client_new() is deprecated. This requires libjack 0.100 (released nearly 5 years ago). We havn't been testing older libjack versions anyway. As a side effect, there is the new option "autostart".
2009-11-05output/jack: added option "client_name"Max Kellermann1-3/+2
Instead of using MPD's audio output name (setting "name"), use a separate configuration option. Change the default to "Music Player Daemon".
2009-11-02alsa_plugin.c: workaround snd_pcm_drain bugJeffrey Middleton1-1/+2
Reintroduce a fix from commit 52a0653 (Warren Dukes): "don't call snd_pcm_drain unless we're already in the RUNNING state". This prevents ALSA with dmix from sometimes hanging when snd_pcm_drain is called, e.g. when moving from one song to the next (as in mantis issue 2634).
2009-10-29httpd: add config option to limit number of clientsViliam Mateicka2-3/+20
2009-10-29output_plugin: added method "drain"Max Kellermann1-3/+9
drain() is the opposite of cancel(): it waits until all data in the buffer has finished playing. Instead of implicitly draining in the close() method like the ALSA plugin has been doing it forever, let the output thread decide whether to drain or to cancel.
2009-10-29output/alsa: don't recover on CANCELMax Kellermann1-1/+1
The recovery is for nothing if we get CLOSE afterwards. Let's not recover in the cancel() method, and let the next play() call sort it out.
2009-10-29output/pulse: initialize pulse_output.mixerMax Kellermann1-0/+1
This variable was uninitialized and led to crashes.
2009-10-27include pulse/version.h for PA_CHECK_VERSIONAlam Arias1-0/+2
2009-10-23output/jack: implement methods enable()/disable()Max Kellermann1-16/+24
Don't connect to JACK before MPD has daemonized.
2009-10-23output/pulse: implement methods enable()/disable()Max Kellermann1-9/+35
Don't connect to PulseAudio before MPD has daemonized.
2009-10-23output_plugin: added methods enable() and disable()Max Kellermann1-0/+2
With these methods, an output plugin can allocate some global resources only if it is actually enabled. The method enable() is called after daemonization, which allows for more sophisticated resource allocation during that method.
2009-10-23output/pulse: call mixer on state changesMax Kellermann2-2/+117
Don't let the mixer plugin "override" the libpulse callbacks. Instead, add a "mixer" attribute to the pulse_output struct, and call the mixer on all interesting events.
2009-10-22output/fifo: renamed source to fifo_output_plugin.cMax Kellermann1-3/+3
2009-10-21audio_format: wildcards allowed in audio_format configurationMax Kellermann1-2/+7
An asterisk means that this attribute should not be enforced, and stays whatever it used to be. This way, some configuration values work like masks.
2009-10-21output/jack: make ringbuffer_size a size_tMax Kellermann1-1/+1
2009-10-21output/jack: connect to server on MPD startupMax Kellermann1-69/+119
.. and keep up the JACK connection while MPD runs. Allocate the ring buffers on the first open, and free them at MPD exit.
2009-10-21output/jack: removed the empty "cancel" methodMax Kellermann1-6/+0
JACK doesn't need cancel() because it won't do much anyway. Buffers are small.
2009-10-21output/jack: renamed parameter "error" to "error_r"Max Kellermann1-12/+12
It's a double pointer.
2009-10-21output/jack: implement the "pause" methodMax Kellermann1-0/+41
Don't disconnect from JACK during pause.
2009-10-21output/jack: renamed source to jack_output_plugin.cMax Kellermann1-2/+2
2009-10-21pulse: code rewrite using the asynchronous libpulse APIMax Kellermann2-73/+639
This is a complete rewrite of the PulseAudio output plugin. It uses the asynchronous API, which gives us more control over everything. Additionally, it connects to the PulseAudio server on startup, and keeps this connection up while MPD runs. During pause, instead of closing the stream, it enables "cork".
2009-10-20mixer/{oss,alsa}: renamed the mixer source filesMax Kellermann2-2/+4
2009-10-20output/pulse: renamed context to "Music Player Daemon"Max Kellermann1-1/+1
This looks nicer in the PulseAudio manager than just "mpd".
2009-10-20pulse: renamed source filesMax Kellermann1-3/+5
2009-10-20pulse: announce "media.role=music"Max Kellermann1-0/+2
This allows PulseAudio to do some advanced tweaks.
2009-10-13tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann2-5/+4
2009-10-13configure.ac: require GLib 2.16Max Kellermann1-5/+0
Accidently, MPD has been using several GLib 2.16 functions for a while, and nobody noticed yet. To simplify the code base, let's bump the minimum GLib version for MPD to 2.16. That version is old enough, and it's reasonable to expect users to have it.
2009-09-20output/osx: fix the OS X 10.6 buildPatrik Weiskircher1-0/+1
Include CoreServices/CoreServices.h.
2009-09-20output/osx: fix the OS X 10.6 buildPatrik Weiskircher1-0/+1
Include CoreServices/CoreServices.h.
2009-09-07output/openal: support OpenAL plugin on Mac OS XSerge Ziryukin1-0/+6
2009-09-06output/openal: fix default device nameSerge Ziryukin1-3/+3
2009-09-06openal output pluginSerge Ziryukin1-0/+267
2009-08-24output/recorder: new output plugin for recording radio streamsMax Kellermann1-0/+214
The recorder plugin writes audio played by MPD to a file. This may be useful for recording radio streams. This implementation is incomplete, because support for tags is missing, and MPD should be able to record each track to a different file.
2009-08-14output/shout: minimize the unpause latencyMax Kellermann1-0/+7
During the pause loop, manually sleep for 500ms if shout_delay() returns a value greater than that. Don't exhaust libshout's buffer.
2009-07-19Support wrong-endian ALSA outputDavid Woodhouse1-2/+50