| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Added missing includes.
|
|
|
|
| |
Add G_GNUC_UNUSED attributes.
|
|
|
|
| |
Add a G_GNUC_UNUSED attribute.
|
|
|
|
|
|
|
|
| |
It is illegal to pass an empty audio buffer around. pcm_resample()
sometimes seems to result in 0 samples, maybe related to
libsamplerate. To work around that problem, add special checks after
both pcm_convert() invocations. Removed the pcm_resample()==0 checks
from pcm_convert().
|
|
|
|
|
|
|
|
|
|
|
| |
When a response is very long (e.g. a large playlist > 100k songs),
most of it will end up in the deferred buffers. Filling the deferred
queue is very expensive currently, because a new buffer is allocated
for every client_write() operation. This may lead to long delays, and
the client might give up and disconnect meanwhile. This patch makes
MPD attempt to flush the deferred queue as often as possible, to work
around this problem. Due to the MPD 0.14 code freeze, we should not
optimize the buffering code now.
|
| |
|
|\ |
|
| | |
|
|/
|
|
|
|
| |
Make "secure" a log level different from "default". "secure" should be
right between "default" and "verbose". Map "default" to Glib's
"MESSAGE" log level.
|
| |
|
|
|
|
|
|
| |
getPlayerErrorStr() assumes that pc.errored_song is set when an error
occured. Since the song may have been deleted meanwhile, add a NULL
check.
|
|
|
|
|
| |
When a (remote) song is deleted from the playlist, there may still be
a reference to it in pc.errored_song. Clear this reference.
|
|
|
|
| |
least MIN(od->bufferSize, size) free bytes in the buffer. Thus MIN(od->bufferSize - od->len, size) is always equal to MIN(od->bufferSize, size).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
When a client-specified URI has a scheme which is not supported, do
not try to open it as a local file, but provide a meaningful error
message.
|
|
|
|
|
| |
uri_has_scheme() checks if an URI contains the sub string "://", which
makes MPD assume that it is a remote URI.
|
|
|
|
|
| |
When a file had no file name extension, getSuffix() could return the
extension of the parent directory (if it had one).
|
|
|
|
|
| |
The old getSuffix() code was quite wasteful, and can be replaced
completely with strrchr().
|
|
|
|
| |
Use the C99 "bool" data type instead of "int".
|
|
|
|
|
| |
printRemoteUrlHandlers() cannot fail, and does not need a return
value.
|
|
|
|
|
| |
The function didn't do anything useful, it was just several lines
obfuscating that it was only forwarding isRemoteUrl()'s return value.
|
|
|
|
| |
ls.h does not need time.h, do not include it.
|
| |
|
| |
|
|
|
|
|
|
| |
The function strstrSearchTag() used g_utf8_casefold() to generate the
(pseudo-)lowercase version of the song's URL, but it never used the
variable.
|
|
|
|
|
|
|
|
| |
There have been bug reports on MPD regarding 24 bit output via
libao/esd. The "ao" plugin does not attempt fall back to 16 bit
currently, and thus fails to play 24 bit audio (i.e. all mp3 files).
Make it always use 16 bit samples for now, until more bits are
well-tested.
|
|
|
|
|
|
| |
The OS X output does not seem to support 24 bit audio in the way MPD
implements it currently. Fall back to 16 bit for now, and schedule
24 bit support on OS X for MPD 0.15.
|
|
|
|
|
| |
One my_usleep() invocation remains, until we find out if we can delete
it.
|
|
|
|
|
| |
Cast AudioBuffer.mData to a "unsigned char*" before adding "curpos".
This fixes a gcc warning.
|
|
|
|
|
| |
Variables which hold one of the DECODE_* values should be declared as
"enum mp3_action" instead of "int".
|
|
|
|
|
|
| |
MPD 0.13 and older followed all symbolic links. Although this can be
a security problem (as it has always been), 0.14 should offer the same
default behaviour as 0.13.
|
|
|
|
|
|
|
| |
libsamplerate produces cracks in the sound output when the destination
buffer is too small. This is the case when pcm_convert_size() rounds
down. Use ceil(x) instead of floor(0.5+x) there to prevent a buffer
overrun.
|
|
|
|
|
| |
On some systems, the time_t data type was not present, because
stored_playlist.h didn't include the time.h header directly.
|
|
|
|
|
| |
AI_ADDRCONFIG is not available on all operating systems. Check if it
is defined in the current build environment.
|
|
|
|
|
| |
The getaddrinfo() flag AI_PASSIVE should be used when resolving
addresses for the bind() system call.
|
|
|
|
|
| |
We want to remove gcc.h eventually. This takes care of all the G_GNUC_PRINTF
macros.
|
|
|
|
|
| |
We want to remove gcc.h eventually. This takes care of all the
G_GNUC_NORETURN macros.
|
|
|
|
|
| |
We want to remove gcc.h eventually. This takes care of all the
G_GNUC_MALLOC macros.
|
|
|
|
|
| |
We want to remove gcc.h eventually. This takes care of all the
G_LIKELY/G_UNLIKELY macros.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
"float (*lamebuf)[2] = g_malloc()" does NOT allocate two float*
buffers. The formula is even wrong: it should be applied to LAME's
output buffer, not its input buffer.
Converted "lamebuf" to the two variables "left" and "right", and
allocate them independently with the exact buffer size. Set
right=left if mono output is configured.
|
|
|
|
| |
It's easier to work with an int16_t* pointer here.
|
|
|
|
| |
Follow HTTP redirects, but no more than 5.
|
|
|
|
|
| |
Send "Music Player Daemon " + VERSION as the User-Agent request
header.
|
|
|
|
|
|
|
|
|
| |
The configuration options "follow_outside_symlinks" and
"follow_inside_symlinks" let the user control whether MPD should
follow symbolic links in the music directory.
[mk: converted variables to "bool"; moved configuration to
update_global_init()]
|
|
|
|
|
|
| |
Those two functions are called when MPD starts and exits. It allows
the update library to perform global initialization and
deinitialization. The implementations are currently empty.
|
|
|
|
|
|
| |
In contrast to, getBoolConfigParam(), config_get_bool() properly
returns a "bool" value. In case of "unset", it returns the default
value provided by the caller.
|