g_file_test is redefined to be g_file_test_utf8 and thus can't handle
non-ASCII characters. This fix adds simple wrapper (taken from glib)
that fixes encoding and calls g_file_test_utf8. All required inclusions
of glib_compat.h are added as well.
The existing buffer implementation has a major flaw: it is unable to
re-fill the buffer until it has been consumed completely, leading to
many occasions where the render callback needs to generate silence,
just because the play() implementation was unable to append more
data. The fifo_buffer library handles that well.
This was disabled when compiled with a new ffmpeg version. Older
ffmpeg versions used it explicitly, while newer ones may pass it
through from the codec.
This fixes a bug when libsamplerate returns an empty buffer for a very
small input buffer. The caller thinks this is an error, bug there is
no GError object.
Moving songs using either 'move' or 'moveid' to position -1 (after the
current song) would fail for a song which is just before the current
song.
This patch corrects the check to see if the current song is in the range
to be moved. Since the range is from `start` up to `end` (exclusive) the
check was incorrect, but is now fixed.
The local variable was already divided by 1000, and the return value
was being divided by 1000 again - doh! This caused delays in the
httpd output plugin that were too small by three orders of magnitude,
and the buffer was filled too quickly.
WinAPI explicitly declares filesystem encoding.
It can be determined by GetACP().
Use that instead of Glib routine that always "detects" UTF-8 on Win32,
which is incorrect for MPD case.
Ensure that WINVER is defined early enough, so other system headers
won't fall back to their default value. Specifically, this solves a
build failure (-Werror) with mingw-w64 ("WINVER redefined").
Right now, a playlist with absolute pathnames can only add songs that
are in the same the directory of the playlist or under it.
If uri is an absolute pathname and base_uri is set,
playlist_check_translate_song() will check that base_uri is a prefix
of uri, excluding every other song in the music directory outside
base_uri.
I think in this case base_uri should be completely ignored (and made
NULL) and uri should just be checked against music root directory.
Previously, the condition "defined(play_audio_format)" was used to see
if an output device has been opened, but if the device had failed on
startup, an assertion failure could occur. This patch adds a separate
flag.