| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
| |
Add a "mode" argument to open_cloexec() instead.
|
|
|
|
|
|
|
|
|
|
|
| |
Added the "fd_util" library, which attempts to use the new thread-safe
Linux system calls pipe2(), accept4() and the options O_CLOEXEC,
SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is
not thread safe.
This is particularly important for the "pipe" output plugin (and
others, such as JACK/PulseAudio), because we were heavily leaking file
descriptors to child processes.
|
|
|
|
|
|
|
|
| |
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 check "open()!=0" is wrong, you have to write "open()>=0", because
-1 means error, and 0 is a valid file handle.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
When the MVP device has been closed in the cancel() method, and the
play() method attempts to reopen it, check for errors.
|
|
|
|
| |
Moved the table lookup code to a separate function.
|
|
|
|
| |
The array must never be modified, it's a constant lookup table.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
When the channel count is greater than 2, fall back to stereo sound.
|
|
|
|
|
| |
Return true/false instead of 0/-1. Also check its return value in
mvp_output_open().
|
|
|
|
|
| |
Pass a pointer to the audio_format struct instead of 3 separate
integers.
|
|
|
|
|
| |
Don't pass the big_endian flag to mvp_set_pcm_params(), do a simple
"G_BYTE_ORDER==G_LITTLE_ENDIAN" instead.
|
|
|
|
|
| |
Instead of manually calculating the number of elements in the
mvp_sample_rates array, use GLib's convenience macro G_N_ELEMENTS().
|
|
|
|
| |
Renamed types, functions and variables.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The function is only used by the MVP output plugin, and this one call
is wrong.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
All config_get_block_*() functions should accept constant config_param
pointers.
|
|
|
|
| |
Renamed functions, types, variables.
|
|
|
|
| |
"#ifdef G_BYTE_ORDER == G_BIG_ENDIAN" cannot work, of course.
|
| |
|
|
|
|
| |
Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
|
| |
|
|
|
|
|
| |
When an output plugin fails to play a chunk, close it. This replaces
various manual close() calls in nearly all plugins.
|
|
|
|
|
| |
Don't return 0/-1 on success/error, but true/false. Instead of int,
use bool for storing flags.
|
|
|
|
| |
Don't compile the sources of disabled output plugins at all.
|
|
Again, no CamelCase in the directory name.
|