| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
| |
.. and destruct the output object properly in test/run_output.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Declaring the global variable _CRT_fmode is a documented hack. What
an ugly platform!
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Unified function for converting an audio_format object to a string,
for log messages and for the "status" command.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Always keep the audio_output object locked within the output thread,
unless a plugin method is called. This fixes several race conditions.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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".
|
|
|
|
|
|
|
| |
Don't call g_error(), which will abort the process and dump core.
This patch does not affect all the config_get_X() functions. These
need some more refactoring.
|
|
|
|
|
| |
Don't abort the whole MPD process when the conversion fails. This has
been a denial-of-service attack vector for years.
|
|
|
|
|
| |
It makes no difference right now, but we're about to add an endianness
flag and will want to make sure it's correctly initialised every time.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
The "run_output" program can be used to test an audio output plugin in
an isolated environment.
|