aboutsummaryrefslogtreecommitdiffstats
path: root/src/output (unfollow)
Commit message (Collapse)AuthorFilesLines
2010-10-09mixer: winmm_mixer implementedDenis Krjuchkov2-0/+38
2010-10-08win32_output: renamed win32 output plugin to winmmDenis Krjuchkov1-50/+50
Win32 has many audio APIs. New name is slightly more correct.
2010-10-05output/httpd: use the new server_socket libraryMax Kellermann2-118/+32
2010-10-05output/httpd: don't close socket in open() failureMax Kellermann1-2/+0
This cleanup call is obsolete, since we moved the binding code to enable()/disable().
2010-10-03output/httpd: MIME type audio/ogg for Ogg VorbisMax Kellermann1-1/+1
RFC 5334 10.3 defines the MIME type "audio/ogg". We could use "application/ogg" as well, but we know for sure that we only emit audio data.
2010-09-25eliminate g_error() usageThomas Jansen1-2/+3
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header file 'mpd_error.h'. This macro uses g_critical() to print the error message and then exits gracefully in contrast to g_error() which would internally call abort() to produce a core dump. The macro name is distinctive and allows to find all places with dubious error handling. The long-term goal is to get rid of MPD_ERROR() altogether. To facilitate the eventual removal of this macro it was added in a new header file rather than to an existing header file. This fixes #2995 and #3007.
2010-09-25output/httpd: bind_to_address support (including IPv6)Thomas Jansen1-12/+52
Added support for a new optional configuration setting for the httpd output named "bind_to_address". Setting it to a specific IP address (v4 or v6) will cause the httpd output to bind to that address exclusively. Supporting multiple addresses in parallel is future work. This implements the feature requests #2998 and #2646.
2010-09-23output/httpd: access sockaddr_storage object directlyMax Kellermann1-3/+2
Work around aliasing warning.
2010-08-31output/httpd: implement "pause"Max Kellermann1-0/+19
Send silence to all connected clients while paused, to avoid connection interruption.
2010-08-31output/httpd: forced flush after 32 kB of input dataMax Kellermann2-0/+23
Avoid buffer underruns on the streaming client, if the encoder is "too efficient" (e.g. when encoding silence while paused).
2010-07-25database, ...: remove EINTR checks after stdio callsMax Kellermann1-1/+1
MPD doesn't have child processes anymore, and thus we're not expecting to receive SIGCHLD very often. Since hard disk access isn't interrupted by signals anyway, we don't need those excessive checks.
2010-06-06output/httpd: add libwrap supportTim Phipps1-0/+28
libwrap support is in MPD but only for the control port. This patch adds support for the http port. The code is copied from src/client_new.c
2010-05-20output/win32: new output plugin for Windows WaveMax Kellermann1-0/+296
2010-05-20input/file, output/{fifo,recorder}: add O_BINARY to open() flagsMax Kellermann2-5/+6
Windows compatibility.
2010-05-14output/oss: 24 bit support via OSS4Max Kellermann1-0/+34
Added #ifdefs on the macros AFMT_S24_NE and other OSS4 extensions.
2010-05-13output/oss: rewrite of the audio format detectionMax Kellermann1-301/+324
Removed the "supported" / "unsupported" arrays, and auto-detect on every open() call, just like the ALSA output plugin.
2010-05-13output/oss: use the *_NE macrosMax Kellermann1-8/+2
Removed the macro AFMT_S16_MPD.
2010-04-05output/httpd: added name/genre/website configurationJames Pike3-5/+25
2010-03-22Add support for building httpd_output plugin for win32Avuton Olrich2-0/+10
2010-03-10output/jack: drain the ring buffers during pauseMax Kellermann1-0/+7
If we're not doing this, and a new song is played after pause ends, then you will hear the rest of the previous song.
2010-03-10output/jack: synchronize all channelsMax Kellermann1-9/+26
Always use the same number of samples from each channel's ring buffer. This ensures that all channels are kept in sync.
2010-01-17output/pulse: clear the "mainloop" attribute on errorMax Kellermann1-2/+3
When enabling the pulse device fails, clear po->mainloop after pa_threaded_mainloop_free() has finished. This is important for the assertions. Two wrong g_free() calls were also removed.
2010-01-17output/alsa: support packed 24 bit samplesMax Kellermann1-0/+13
2010-01-16output/alsa: probe all sample formats in a loopMax Kellermann1-36/+34
More code simplification. Probe all formats, no matter which input format.
2010-01-16output/alsa: merged code into alsa_output_try_format()Max Kellermann1-51/+71
Remove the debug log messages, because they are duplicate (see ao_open() in output_thread.c).
2010-01-16output/alsa: pass sample_format to get_bitformat()Max Kellermann1-3/+3
2010-01-16output/alsa: moved code to alsa_output_setup_format()Max Kellermann1-72/+80
2009-12-31Update copyright notices.Avuton Olrich19-19/+19
2009-12-03httpd: use get_mime_type to determine encoder contentViliam Mateicka1-7/+6
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann9-65/+108
This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
2009-11-15output/openal: use audio_format_to_string()Max Kellermann1-3/+3
2009-11-12include config.h in all sourcesMax Kellermann16-8/+22
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
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).