- 09 Jul, 2012 1 commit
-
-
Max Kellermann authored
No, really! This fixes a regression of commit 74617389, which changed the order of filter plugins.
-
- 12 Jun, 2012 1 commit
-
-
Max Kellermann authored
Don't require the caller to provide them.
-
- 13 Dec, 2011 1 commit
-
-
Denis Krjuchkov authored
If output plugin fails to init it will try to call ao_base_finish() immediately, which segfaults because replay gain filters are not initialized yet and contain garbage values.
-
- 19 Sep, 2011 1 commit
-
-
Max Kellermann authored
Pass audio_output objects around instead of void pointers. This will give some more control to the plugin, and prepares for non-blocking audio outputs.
-
- 01 Sep, 2011 1 commit
-
-
Max Kellermann authored
The output thread could hang indefinitely after finishing CANCEL, because it could have missed the signal while the output was not unlocked in ao_command_finished(). This patch removes the wait() call after CANCEL, and adds the flag "allow_play" instead. While this flag is set, playback is skipped. With this flag, there will not be any excess wait() call after the pipe has been cleared. This patch fixes a bug that causes mpd to discontinue playback after seeking, due to the race condition described above.
-
- 29 Jan, 2011 1 commit
-
-
Max Kellermann authored
-
- 10 Jan, 2011 1 commit
-
-
Max Kellermann authored
Allocate a player_control object where needed, and pass it around. Each "client" object is associated with a "player_control" instance. This prepares multi-player support.
-
- 02 May, 2010 2 commits
-
-
Max Kellermann authored
Don't add it to the filter chain, because we need to apply replay gain before cross-fading with the next song. Add a second replay_gain filter which is used for the song being faded in (chunk->other).
-
Max Kellermann authored
Remove cross_fade_apply(), and call pcm_mix() in the output thread, mixing the chunk and chunk->other together.
-
- 10 Mar, 2010 1 commit
-
-
Max Kellermann authored
Did you ever accidently click "stop" while feeding a radio station? This option sets the output device to "pause" to disable the "close" method. It falls back to "pause" then, which is specific to the plugin. Some plugins implement it by feeding silence.
-
- 17 Feb, 2010 2 commits
-
-
Max Kellermann authored
Add an option for each audio output which enables the use of the hardware mixer, instead of the software volume code. This is hardware specific, and assumes linear volume control. This is not the case for hardware mixers which were tested, making this patch somewhat useless, but we will use it to experiment with the settings, to find a good solution.
-
Max Kellermann authored
Apply the replay gain in the output thread. This means a new setting will be active instantly, without going through the whole music pipe. And we might have different replay gain settings for each audio output device.
-
- 01 Jan, 2010 1 commit
-
-
Avuton Olrich authored
-
- 25 Dec, 2009 1 commit
-
-
Max Kellermann authored
Use the plugin instead of the glue code in normalize.c. This is used wrapped inside a "autoconv" filter, to enable normalization for all input file formats.
-
- 14 Dec, 2009 3 commits
-
-
Albin Eldstål-Damlin authored
-
Albin Eldstål-Damlin authored
-
Albin Eldstål-Damlin authored
-
- 12 Nov, 2009 1 commit
-
-
Max Kellermann authored
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.
-
- 29 Oct, 2009 1 commit
-
-
Max Kellermann authored
Always keep the audio_output object locked within the output thread, unless a plugin method is called. This fixes several race conditions.
-
- 23 Oct, 2009 1 commit
-
-
Max Kellermann authored
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.
-
- 21 Oct, 2009 3 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
This allows more sophisticated audio format selection.
-
Max Kellermann authored
This allows the mixer object to access its associated audio output object.
-
- 20 Oct, 2009 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
It's a double pointer.
-
- 18 Aug, 2009 1 commit
-
-
Max Kellermann authored
Fix stuttering due to uninitialized variable.
-
- 06 Jul, 2009 5 commits
-
-
Max Kellermann authored
Do all the software volume stuff inside each output thread, not in the player thread. This allows one software mixer per output device, and also allows the user to configure the mixer type (hardware or software) for each audio output. This moves the global "mixer_type" setting into the "audio_output" section, deprecating the "mixer_enabled" flag.
-
Max Kellermann authored
The "convert" filter must be the last filter in the chain. Ensure that by doing its initialization at the very end of audio_output_init().
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
This patch adds initial filter support for audio outputs. Each audio output gets a "filter" attribute, which is used by ao_play_chunk(). The PCM conversion is now performed by convert_filter_plugin. audio_output.convert_state has been removed.
-
- 05 Jul, 2009 1 commit
-
-
Max Kellermann authored
-
- 28 Apr, 2009 1 commit
-
-
Max Kellermann authored
Added the per-device option "mixer_enabled" which allows users to disable the hardware mixer of an audio output.
-
- 26 Mar, 2009 1 commit
-
-
Max Kellermann authored
The mixer core library is now responsible for creating and managing the mixer object. This removes duplicated code from the output plugins.
-
- 20 Mar, 2009 1 commit
-
-
Max Kellermann authored
The config_audio_format used to contain the configured audio format, which is copied to out_audio_format. Let's convert the former to a boolean, which indicates whether out_audio_format was already set. This simplifies some code and saves a few bytes.
-
- 13 Mar, 2009 1 commit
-
-
Avuton Olrich authored
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
-
- 09 Mar, 2009 1 commit
-
-
Max Kellermann authored
Instead of passing individual buffers to audio_output_all_play(), pass music_chunk objects. Append all those chunks asynchronously to a music_pipe instance. All output threads may then read chunks from this pipe. This reduces MPD's internal latency by an order of magnitude.
-
- 01 Mar, 2009 3 commits
-
-
Max Kellermann authored
Use config_get_block_string() and manual GError handling instead.
-
Max Kellermann authored
Do error handling with GError instead of aborting with g_error().
-
Max Kellermann authored
-