aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-10-29output: consistently lock audio output objectsMax Kellermann5-46/+102
Always keep the audio_output object locked within the output thread, unless a plugin method is called. This fixes several race conditions.
2009-10-29output_plugin: added method "drain"Max Kellermann3-14/+34
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_thread: removed redundant filter_close() callMax Kellermann1-4/+0
Don't call filter_close() right after ao_close().
2009-10-29output/pulse: initialize pulse_output.mixerMax Kellermann1-0/+1
This variable was uninitialized and led to crashes.
2009-10-28decoder/ffmpeg: removed the "author" vs "artist" workaroundMax Kellermann1-2/+1
libavformat gives us the song artist in the "author" field. Since we use av_metadata_conv(), we don't need to check for "artist".
2009-10-27include pulse/version.h for PA_CHECK_VERSIONAlam Arias1-0/+2
2009-10-26encoder: renaming none_encoder to null_encoderViliam Mateicka2-27/+27
2009-10-26mpd.conf: new bool config value for enabling/disabling inotify updateViliam Mateicka3-2/+8
2009-10-24encoder: new encoder plugin which just pass data throughViliam Mateicka2-0/+126
2009-10-24add --disable-inotify for configure to disable inotify when autodetectedViliam Mateicka1-0/+7
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 Kellermann15-1/+213
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 Kellermann4-129/+196
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-23mixer_control: don't close the mixer if set_volume() failsMax Kellermann1-2/+0
A mixer is useful enough if it can be read. Setting it may be found unavailable at runtime.
2009-10-23mixer_plugin: get_volume() may return -1 if unavailableMax Kellermann2-4/+8
If the method get_volume() returns -1 and no error object is set, then the volume is currently unavailable, but the mixer should not be closed immediately.
2009-10-23mixer_control: allow methods "open" and "close" to be NULLMax Kellermann2-20/+5
It's possible to have a mixer implementation which does not explicitly need the methods open() and close().
2009-10-22mixer/pulse: don't get volume if stream is not yet readyMax Kellermann1-3/+3
Moved the check from pulse_mixer_open() to pulse_mixer_update().
2009-10-22output/fifo: renamed source to fifo_output_plugin.cMax Kellermann1-3/+3
2009-10-22audio: removed function finishAudioConfig()Max Kellermann3-8/+0
There's no point in clearing the audio format before exiting.
2009-10-22main: put #ifdef inside winsock_init()Max Kellermann1-5/+2
This way, the function call in the main() function does not need another pair of #ifdef/#endif.
2009-10-22permission: improve const-correctnessSF Markus Elfring2-2/+2
2009-10-21playlist: new ASX playlist pluginMax Kellermann3-0/+340
Based on the XSPF playlist plugin.
2009-10-21playlist/xspf: ignore text in root, playlist, tracklistMax Kellermann1-0/+2
Added a missing "break".
2009-10-21audio_format: wildcards allowed in audio_format configurationMax Kellermann7-22/+92
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-21audio_parser: moved code to separate functionsMax Kellermann1-29/+78
2009-10-21output: convert config_audio_format to an audio_format structMax Kellermann3-14/+16
This allows more sophisticated audio format selection.
2009-10-21audio_parser: renamed parameter "error" to "error_r"Max Kellermann2-10/+12
It's a double pointer.
2009-10-21audio: removed config_param.value NULL checkMax Kellermann1-1/+1
The value is always non-NULL.
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 Kellermann2-4/+4
2009-10-21pulse: code rewrite using the asynchronous libpulse APIMax Kellermann3-282/+765
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-21mixer_plugin: pass audio_output pointer to mixer_plugin.init()Max Kellermann8-12/+20
This allows the mixer object to access its associated audio output object.
2009-10-21volume: added PIPE_EVENT_MIXERMax Kellermann2-0/+19
Flush the hardware volume cache, and send the MIXER idle event. This allows mixer plugins to detect volume changes.
2009-10-20mixer_plugin: use GError for error handlingMax Kellermann10-79/+189
2009-10-20output_init: renamed parameter "error" to "error_r"Max Kellermann2-8/+8
It's a double pointer.
2009-10-20mixer/{oss,alsa}: renamed the mixer source filesMax Kellermann5-12/+14
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 Kellermann4-8/+10
2009-10-20pulse: announce "media.role=music"Max Kellermann1-0/+2
This allows PulseAudio to do some advanced tweaks.
2009-10-20main: call g_set_application_name()Max Kellermann1-0/+2
I'm not sure about the advantages of calling g_set_application_name(), because I don't use a task manager (except for ps and kill), but it sure doesn't hurt.
2009-10-20mapper, update, ...: use g_build_filename(), G_DIR_SEPARATOR, ...Max Kellermann7-11/+10
Try to be as portable as possible, use GLib path name functions and macros.
2009-10-18decoder/vorbis: avoid unused symbol warnings from vorbisfile.hSerge Ziryukin1-0/+1
svn r13289 of libvorbis introduced static callbacks (like OV_CALLBACKS_DEFAULT) defined in "vorbisfile.h" header. First released version with this change is libvorbis-1.2.2. In libversion-1.2.3 OV_EXCLUDE_STATIC_CALLBACKS define was added to avoid warnings about unused static callbacks. Information on the OV_EXCLUDE_STATIC_CALLBACKS can be found in http://svn.xiph.org/trunk/vorbis/CHANGES.
2009-10-18command: omitting the range end is possibleMax Kellermann1-1/+4
When the range end is missing, then the maximum possible value is assumed.
2009-10-18command: use GLib limit macros in check_range()Max Kellermann1-10/+10
These are portable and don't require limits.h.