- 10 Jan, 2009 1 commit
-
-
Viliam Mateicka authored
This patch tryes to introduce pluggable mixer (struct mixer_plugin) along with some basic infrastructure (mixer_* functions). Instance of mixer (struct mixer) is used in alsa and oss output plugin
-
- 07 Jan, 2009 1 commit
-
-
Max Kellermann authored
All what's left in pcm_utils.h is the pcm_range() utility function, which is only used internally by pcm_volume and pcm_mix.
-
- 04 Jan, 2009 1 commit
-
-
Viliam Mateicka authored
-
- 02 Jan, 2009 1 commit
-
-
Max Kellermann authored
-
- 01 Jan, 2009 1 commit
-
-
Max Kellermann authored
Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
-
- 31 Dec, 2008 1 commit
-
-
Viliam Mateicka authored
-
- 29 Dec, 2008 1 commit
-
-
Max Kellermann authored
-
- 01 Dec, 2008 1 commit
-
-
Max Kellermann authored
Commit dd7711d8 removed MPD's default ALSA buffer_time. The result was a buffer size which was way too small for playing streams on some sound hardware, and caused skips and distorted sound. Revert the default to 500 ms.
-
- 03 Nov, 2008 1 commit
-
-
Max Kellermann authored
When using autodetection, AlsaData.device wasn't properly initialized with NULL. This broke autodetection randomly.
-
- 01 Nov, 2008 1 commit
-
-
Max Kellermann authored
Make the pointers "device" and "name" non-const, so we don't need the xfree() hack. The default value is expressed as NULL.
-
- 29 Oct, 2008 2 commits
-
-
Max Kellermann authored
When an output plugin fails to play a chunk, close it. This replaces various manual close() calls in nearly all plugins.
-
Max Kellermann authored
Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
-
- 26 Oct, 2008 2 commits
-
-
Max Kellermann authored
Don't compile the sources of disabled output plugins at all.
-
Max Kellermann authored
Again, no CamelCase in the directory name.
-
- 14 Oct, 2008 2 commits
-
-
Max Kellermann authored
These macros are not available in older libasound versions (1.0.13 fails, 1.0.16 is ok). Ignore the configuration if the constants are not defined.
-
Max Kellermann authored
Added mpd.conf options for disabling automatic resamling, sample format and channel conversion. This way, users may choose to override ALSA's automatic resampling, and use libsamplerate instead.
-
- 12 Oct, 2008 2 commits
-
-
Max Kellermann authored
If the sample format isn't supported by the device (i.e. 24 bit on low-end sound chips), fall back to 16 bit output. There is code in pcm_utils.c which converts PCM data to 16 bit.
-
Max Kellermann authored
Move code which loads configuration to alsa_configure(). This removes one indent level.
-
- 11 Oct, 2008 2 commits
-
-
Max Kellermann authored
ALSA does a good job measuring its buffer_time and period_time. Don't override its defaults, unless the user demands it.
-
Max Kellermann authored
Revert e4f5d6bd "re-enable-nonblocking, but sleep if busy". Non-blocking mode with manual sleeping doesn't help at all (by the way, the patch should have used snd_pcm_wait() instead of my_usleep()). ALSA knows much more about the hardware quirks, so we just let it do the job.
-
- 10 Oct, 2008 3 commits
-
-
Max Kellermann authored
A frame contains one sample per channel, thus it is sample_size * channels. This patch includes some cleanup for various locations where the sample size for 24 bit audio was still 3 bytes (instead of 4).
-
Max Kellermann authored
The last bit of CamelCase in audio_format.h. Additionally, rename a bunch of local variables.
-
Max Kellermann authored
"bits" and "channels" cannot be negative.
-
- 29 Sep, 2008 2 commits
-
-
Max Kellermann authored
The old struct initializers are error prone and don't allow moving elements around. Since we are going to overhaul some of the APIs soon, it's easier to have all implementations use C99 initializers.
-
Eric Wong authored
Seeing the "mpd_" prefix _everywhere_ is mind-numbing as the mind needs to retrain itself to skip over the first 4 tokens of a type to get to its meaning. So avoid having extra characters on my terminal to make it easier to follow code at 2:30 am in the morning. Please report any new issues you may come across on Free toolchains. I realize how difficult it can be to build/maintain cross-compiling toolchains and I have no intention of forcing people to upgrade their toolchains to build mpd. Tested with gcc 2.95.4 and and gcc 4.3.1 on x86-32.
-
- 24 Sep, 2008 3 commits
-
-
Max Kellermann authored
We have eliminated direct accesses to the audio_output struct from the all output plugins. Make it opaque for them, and move its real declaration to output_internal.h, similar to decoder_internal.h. Pass the opaque structure to plugin.init() only, which will return the plugin's data pointer on success, and NULL on failure. This data pointer will be passed to all other methods instead of the audio_output struct.
-
Max Kellermann authored
Since the output plugin returns a value indicating success or error, we can have the output core code assign the "open" flag.
-
Max Kellermann authored
Pass the globally configured audio_format as a const pointer to plugin.init(). plugin.open() gets a writable pointer which contains the audio_format requested by the plugin. Its initial value is either the configured audio_format or the input file's audio_format.
-
- 23 Sep, 2008 2 commits
-
-
Max Kellermann authored
The inline function audio_format_sample_size() calculates how many bytes each sample consumes. This function already takes into account that 24 bit samples are 4 bytes long, not 3.
-
Eric Wong authored
Instead of letting ALSA block for us (and potentially allowing something stupid on certain hardware or drivers), we do the sleeping ourselves. We calculate the sleep to be a fraction of period_time to avoid oversleeping (and thus audible skipping).
-
- 09 Sep, 2008 1 commit
-
-
Eric Wong authored
The way we used non-blocking mode was HORRIBLE. It was non-blocking to ALSA, but we end up blocking in a busy loop that does absolutely NOTHING but retry. We don't check for playback cancellation (like we do in decoders) or anything. This is seriously broken and I can imagine it affects people on fast CPUs more because we do asynchronous output buffering and our ALSA device will always have data ready.
-
- 08 Sep, 2008 8 commits
-
-
Eric Wong authored
Lets not use deprecated functions. It's apparently possible to not care about the sw_params stuff at all!
-
Eric Wong authored
This is safer than the patch in http://www.musicpd.org/mantis/view.php?id=1542 with multiple audio outputs enabled. Sadly, I only noticed that patch/problem when I googled for "snd_config_update_free_global"
-
Eric Wong authored
-
Eric Wong authored
-
Eric Wong authored
We never use it for anything anyways as we release the device entirely on pause.
-
Eric Wong authored
That's the name of this project.
-
Eric Wong authored
Apparently snd_pcm_hw_params_can_resume() can return false even though my hardware does in fact support resuming. So stop carrying that value in the canResume flag and just try to resume when we're in the suspended state; falling back to snd_pcm_prepare only if resuming fails. libao does something similar on resume, too. While we're at it, use the E() macro which will enable us to have better error reporting. [mk: remove the E() macro stuff]
-
Max Kellermann authored
Since the plugin struct is never modified, we should store it in constant locations.
-
- 07 Sep, 2008 1 commit
-
-
Max Kellermann authored
Also rename AudioOutputPlugin to struct audio_output_plugin, and use forward declarations to reduce include dependencies.
-