- 15 Mar, 2009 1 commit
-
-
Max Kellermann authored
Let's get rid of the "shout" plugin, and the awfully complicated icecast daemon setup! MPD can do better if it's doing the HTTP server stuff on its own. This new plugin has several advantages: - easier to set up - only one daemon, no password settings, no mount settings - MPD controls the encoder and thus already knows the packet boundaries - icecast has to parse them - MPD doesn't bother to encode data while nobody is listening This implementation is very experimental (no header parsing, ignores request URI, no icy-metadata, ...). It should be able to suport several encoders in parallel in the future (with different bit rates, different codec, ...), to make MPD the perfect streaming server. Once MPD gets multi-player support, we can even mount several different radio stations on one server.
-
- 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.
-
- 07 Mar, 2009 1 commit
-
-
David Guibert authored
This patch introduces the mixer for the pulse output. Technically speaking, the pulse index is needed to get or set the volume. You must define callback fonctions to get this index since the pulse output in mpd is done using the simpe api. The pulse simple api does not provide the index of the newly defined output. So callback fonctions are associated to the pulse context. The list of all the sink input is then retreived. Then we select the name of the mpd pulse output and control its volume by its associated index number. Signed-off-by:
Patrice Linel <patnathanael@gmail.com> Signed-off-by:
David Guibert <david.guibert@gmail.com> [mk: fixed whitespace errors and broke long lines; removed daemonization changes from main.c]
-
- 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.
-
- 28 Feb, 2009 1 commit
-
-
Michal Nazarewicz authored
[mk: adapted to new output plugin API]
-
- 27 Feb, 2009 1 commit
-
-
Max Kellermann authored
Renamed numOfItems to num_items.
-
- 26 Feb, 2009 13 commits
-
-
Max Kellermann authored
The check "open()!=0" is wrong, you have to write "open()>=0", because -1 means error, and 0 is a valid file handle.
-
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.
-
Max Kellermann authored
The return type of most OS X functions is OSStatus, not int. We can get a nice error message from GetMacOSStatusCommentString(), log it.
-
Max Kellermann authored
Don't call AudioOutputUnitStart() in the play() method, do it after the device has been opened. We can eliminate the "started" property now, because the device is always started when it's open.
-
Max Kellermann authored
We don't need to keep commented code forever. If we want that test_default_device() implementation back one day, we'll pick it from the git history.
-
Max Kellermann authored
Renamed types, functions, variables.
-
Max Kellermann authored
Eliminated manual integer parsing.
-
Max Kellermann authored
The MPD core guarantees that the audio_output object is always consistent, and our pa_simple!=NULL checks are superfluous. Also don't manually close the device on error in pulse_play(), since the MPD core does this automatically when the play() method returns 0.
-
Max Kellermann authored
Eliminate one label and a bunch of gotos.
-
Max Kellermann authored
Use C instead of CPP.
-
Max Kellermann authored
Return type of oss_find_supported_param(), oss_can_convert() and oss_find_unsupported_param() should be bool instead of int.
-
Max Kellermann authored
Convert the num_supported and num_unsupported variables from signed to unsigned.
-
Max Kellermann authored
Renamed types, functions and variables.
-
- 25 Feb, 2009 12 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
When the MVP device has been closed in the cancel() method, and the play() method attempts to reopen it, check for errors.
-
Max Kellermann authored
Moved the table lookup code to a separate function.
-
Max Kellermann authored
The array must never be modified, it's a constant lookup table.
-
Max Kellermann authored
Looks like the MVP audio output only supports 16 and 24 bit audio samples. If MPD generates any other sample formats, force it to use 16 bit.
-
Max Kellermann authored
When the channel count is greater than 2, fall back to stereo sound.
-
Max Kellermann authored
Return true/false instead of 0/-1. Also check its return value in mvp_output_open().
-
Max Kellermann authored
Pass a pointer to the audio_format struct instead of 3 separate integers.
-
Max Kellermann authored
Don't pass the big_endian flag to mvp_set_pcm_params(), do a simple "G_BYTE_ORDER==G_LITTLE_ENDIAN" instead.
-
Max Kellermann authored
Instead of manually calculating the number of elements in the mvp_sample_rates array, use GLib's convenience macro G_N_ELEMENTS().
-
Max Kellermann authored
Renamed types, functions and variables.
-