- 21 Apr, 2009 1 commit
-
-
Max Kellermann authored
Call snd_config_update_free_global() manually in our finish() method, don't use atexit().
-
- 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.
-
- 14 Mar, 2009 2 commits
-
-
Max Kellermann authored
This patch allows the output plugins to import only mixer_list.h, instead of the full mixer_api.h (which would expose internal structures).
-
Max Kellermann authored
mixer_control.h should provide the functions needed to manipulate a mixer, without exposing the internal mixer API (which is provided by mixer_api.h).
-
- 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.
-
- 10 Mar, 2009 2 commits
-
-
Max Kellermann authored
snd_pcm_writei() returns the type snd_pcm_sframes_t, not int. Use the correct variable type.
-
Max Kellermann authored
If the PCM handle gets disconnected, don't close and clear it in alsa_recover(). The MPD core will call alsa_close() anyway. This way, we can always assume that alsa_data.pcm is always valid.
-
- 08 Mar, 2009 2 commits
-
-
Max Kellermann authored
This patch fixes a theoretical (but practically impossible) flaw: the variable "buffer_time" may be uninitialized when it is used. Initialize the variable with snd_pcm_hw_params_get_buffer_time().
-
Max Kellermann authored
The default values for buffer_time and period_time were both capped by the hardware limits on practically all chips. The result was a period_time which was half as big as the buffer_time. On some chips, this led to lots of underruns when using a high sample rate (192 kHz), because MPD had very little time to send new samples to ALSA. A period time which is one fourth of the buffer time turned out to be much better. If no period_time is configured, see how much buffer_time the hardware accepts, and try to configure one fourth of it as period_time, instead of hard-coding the default period_time value. This is yet another attempt to provide a solution which is valid for all sound chips. Using the SND_PCM_NONBLOCK flag also seemed to solve the underruns, but put a lot more CPU load to MPD.
-
- 03 Mar, 2009 2 commits
-
-
Max Kellermann authored
Log the real period and buffer size. This might be useful when debugging xruns. Note that the same information is available in /proc/asound/card*/pcm*p/sub*/hw_params
-
Max Kellermann authored
There are a few high-end devices (e.g. ICE1724) which cannot even play 16 bit audio. Try the 32 bit fallback, which we already implemented for 24 bit.
-
- 02 Mar, 2009 1 commit
-
-
Max Kellermann authored
Some sound chips/drivers (e.g. Intel HDA) don't support 24 bit samples, they want to get 32 bit instead. Now that MPD's PCM library supports 32 bit, add a 32 bit fallback when 24 bit is not supported.
-
- 01 Mar, 2009 1 commit
-
-
Max Kellermann authored
The MPD core logs the audio format of all audio outputs. Remove the duplicate message from the plugins.
-
- 26 Feb, 2009 1 commit
-
-
Max Kellermann authored
Use GLib's GError library for reporting output device failures. Note that some init() methods don't clean up properly after a failure, but that's ok for now, because the MPD core will abort anyway.
-
- 25 Feb, 2009 3 commits
-
-
Max Kellermann authored
When the sample format is unknown, fall back to 16 bit samples.
-
Max Kellermann authored
Simplify error handling a bit by moving some code into a separate function. This eliminates a good bunch of gotos, but that's not finished yet.
-
Max Kellermann authored
audio_output_get_name() has been removed, which was the only function left in output_api.h. The output plugin doesn't need the audio_output object at all, remove the parameter from the init() method.
-
- 23 Feb, 2009 2 commits
-
-
Max Kellermann authored
The meaning of the chunk depends on the audio format; don't suggest a specific format by declaring the pointer as "char*", pass "void*" instead.
-
Max Kellermann authored
The old API required an output plugin to not return until all data passed to the play() method is consumed. Some output plugins have to loop to fulfill that requirement, and may block during that. Simplify these, by letting them consume only part of the buffer: make play() return the length of the consumed data.
-
- 16 Feb, 2009 1 commit
-
-
Max Kellermann authored
The output plugin shouldn't know any specifics of the mixer API. Make it return the mixer object, and let the caller deal with it.
-
- 25 Jan, 2009 9 commits
-
-
Max Kellermann authored
On some platforms, g_free() must be used for memory allocated by GLib. This patch intends to correct a lot of occurrences, but is probably not complete.
-
Max Kellermann authored
Allocate the mixer object when it is configured. Merged mixer_configure() into mixer_new(). mixer_new() was quite useless anyway.
-
Max Kellermann authored
Don't use statically allocated mixer objects.
-
Max Kellermann authored
Return the default value in the conf_get_block_*() functions when param==NULL was passed. This simplifies a lot of code, because all initialization can be done in one code path, regardless whether configuration is present.
-
Max Kellermann authored
All config_get_block_*() functions should accept constant config_param pointers.
-
Max Kellermann authored
Document alsa_data members.
-
Max Kellermann authored
frame_size is a memory size and should be a size_t, not a signed integer.
-
Max Kellermann authored
Renamed types, functions, variables.
-
Dan McGee authored
Two bugs here led to a large number of interrupts being generated on the sound card when ALSA output is being used. Because we specify no default period_time, the sound card gives us 3000 interrupts/sec rather than a more sane 20 or 30. This completes the revert of dd7711 already started by 4ca24f. The larger bug was in the change to config_get_block_unsigned() and using 0 as the default value for both 'buffer_time' and 'period_time'. This means any pre-setting of these options in newAlsaData() gets wiped out. Add a new default for period_time, and ensure default values for buffer_time and period_time are used if none are provided by the user. Signed-off-by:
Dan McGee <dan@archlinux.org> [mk: set defaults in newAlsaData() to fix auto-configuration; renamed "_MS" back to "_US" because ALSA expects microseconds, not milliseconds] Signed-off-by:
Max Kellermann <max@duempel.org>
-
- 18 Jan, 2009 2 commits
-
-
Max Kellermann authored
Eliminate some more getBlockParam() invocations.
-
Max Kellermann authored
This replaces lots of getBlockParam() invocations.
-
- 17 Jan, 2009 2 commits
-
-
Max Kellermann authored
No "force" parameter, pass a default value instead.
-
Max Kellermann authored
Renamed functions, types, variables.
-
- 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
-