Max Kellermann
87268c2297
test/test_protocol: add missing stdlib.h include
...
EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h, not unistd.h.
D'oh!
2014-09-24 23:03:28 +02:00
Max Kellermann
e93975cb46
test/test_protocol: add missing unistd.h include
2014-09-24 21:43:11 +02:00
Max Kellermann
b6fa22bd84
OutputThread: retain negative mix ratio
...
Fixes MixRamp breakage.
2014-09-18 13:50:23 +02:00
Andrzej Rybczak
a0ef27a0cd
command/list: reset used size after the list has been processed
2014-09-18 09:15:39 +02:00
Max Kellermann
e304d0f8ee
thread/Posix{Cond,Mutex}: don't ues PTHREAD_*_INITIALIZER on NetBSD
...
On NetBSD, PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER are
not compatible with C++11 "constexpr" (see Mantis ticket 0004110). As
a workaround, don't ues "constexpr", and use the functions
pthread_mutex_init(), pthread_mutex_destroy(), pthread_cond_init() and
pthread_cond_destroy() instead. This adds some runtime overhead, but
is portable to POSIX implementations that have awkward initializer
macros.
2014-09-13 11:26:17 +02:00
Max Kellermann
ab7b38d4b9
configure.ac: prepare for 0.18.15
2014-09-13 11:14:41 +02:00
Max Kellermann
eaf675dc92
release v0.18.14
2014-09-11 19:09:49 +02:00
Max Kellermann
57068e526c
test/run_decoder: dump MixRamp data
2014-09-09 19:17:22 +02:00
Max Kellermann
c14a00eec9
decoder/ffmpeg: use memset() to initialize AVProbeData
2014-09-09 19:07:46 +02:00
Max Kellermann
219c42522f
decoder/ffmpeg: pass MIME type to ffmpeg/libav version 11
...
That attribute was uninitialized before, which could crash
libavformat.
See Debian bug 760669
2014-09-07 22:05:33 +02:00
Max Kellermann
e3a0f15837
Decoder*: add more assertions
2014-09-07 21:52:34 +02:00
Max Kellermann
a6bb27483b
DecoderThread: clear the pipe when handling late SEEK
...
See code comment. Fixes assertion failure in
decoder_command_finished().
2014-09-07 21:50:00 +02:00
Max Kellermann
7ada7def9e
decoder/audiofile: fix crash after seeking
...
Log call was added to the wrong branch.
Fixes regression by commit ca1a1149
2014-09-06 19:32:10 +02:00
Max Kellermann
421c4ae907
protocol/ArgParser: fix integer overflow in parse_range()
...
Casting std::numeric_limits<unsigned>::max() to "long" leads to an
overflow if sizeof(unsigned)==sizeof(long), and the result will be -1.
This happens on some 32 bit architectures, for example ARM and WIN32.
Workaround: use std::numeric_limits<int>::max(), which is the largest
signed integer. Since sizeof(long)>=sizeof(int), this will never
overflow.
Fixes Mantis ticket 0004080.
2014-09-04 17:37:31 +02:00
Max Kellermann
4907f610d6
test/test_protocol: unit test for protocol/ArgParser.cxx
2014-09-04 17:10:30 +02:00
Max Kellermann
f9d1bbbffb
configure.ac: prepare for 0.18.14
2014-09-03 19:59:26 +02:00
Max Kellermann
86e8b3b4bd
release v0.18.13
2014-08-31 14:50:23 +02:00
Max Kellermann
a26ead035a
PlaylistControl: use SeekSongOrder(current) to keep current song
...
The "current" attribute is a "song order", not a "song position".
This is usually the same - except in random mode. Fixes Mantis ticket
0004073.
2014-08-31 14:44:20 +02:00
Max Kellermann
704be54c3a
PlaylistControl: move code to new method SeekSongOrder()
2014-08-31 14:23:06 +02:00
Max Kellermann
2406152576
output/alsa: fix endless loop at end of file in dsd_usb mode
2014-08-31 14:01:57 +02:00
Max Kellermann
af260b5a64
output/{alsa,oss}: add assertions
2014-08-31 14:00:09 +02:00
Joachim Fasting
4efa96df21
doc/protocol: fix description of "stats" response
...
Fix incorrect description of the "songs" field and add missing
"albums" field.
Signed-off-by: Joachim Fasting <joachifm@fastmail.fm>
2014-08-31 13:16:39 +02:00
Max Kellermann
8b62127770
decoder/gme: fix song duration
...
The unit of gme_info_t::length is milliseconds, not centiseconds.
2014-08-29 23:03:29 +02:00
Max Kellermann
f06fe1ea98
event/TimeoutMonitor: really reset "active" flag before invoking OnTimeout()
...
The previous commit was broken. D'oh!
2014-08-24 13:19:50 +02:00
Max Kellermann
d16fb79708
event/TimeoutMonitor: reset "active" flag before invoking OnTimeout()
...
The IsActive() method returned true even if the timer was not active,
after it completed once. This broke the state file timer, and the
state file was not saved periodically.
2014-08-24 13:13:12 +02:00
Thomas Klausner
c38f29ce56
system/ByteOrder: <endian.h> is a non-standard header that only Linux provides.
2014-08-23 14:27:44 +02:00
Max Kellermann
78abcd7df7
decoer/dsdiff: fix endless loop on malformed file
...
Same bug as in the previous commit.
2014-08-21 12:48:03 +02:00
Max Kellermann
23dce21647
decoer/dsf: fix endless loop on malformed file
...
When the data chunk size is not a multiple of the frame size, the last
partial frame lead to an endless loop. We fix this by checking
chunk_sze>=frame instead of chunk_sze>0. This way, the partial frame
is simply skipped.
2014-08-21 12:37:22 +02:00
François Revol
40280fa6cf
util: Fix header for strcasecmp
...
According to POSIX and both OSX and Linux manpages,
strcasecmp comes from strings.h, not string.h.
Most OSes also have them available in string.h,
but we just fixed the headers on Haiku and it now
only provides them in strings.h.
We might want to fall back to string.h for other
OSes though...
cf.
http://pubs.opengroup.org/onlinepubs/009695399/functions/strcasecmp.html
http://linux.die.net/man/3/strcasecmp
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/strcasecmp.3.html
2014-08-16 06:51:13 +02:00
Max Kellermann
fe9299ceff
decoder/ffmpeg: use avcodec_descriptor_get() to determine codec name
...
In version 11, both ffmpeg and libav deprecate
AVCodecContext::codec_name. The function avcodec_descriptor_get() has
been introduced long ago.
2014-08-13 18:40:39 +02:00
Max Kellermann
c3f111a56c
event/BufferedSocket: fix inversed buffer check
...
This was broken by commit 84d20d9e
, which deleted the "!" from the
check.
2014-08-07 16:03:44 +02:00
François Revol
250318329f
Makefile.am: fix dependencies for win32
...
It happened to me when doing the Haiku port, src/mpd failed to
be relinked properly when editing source files, and likely also
happens on win32, although I didn't try this change.
When building for windows, src_mpd_DEPENDENCIES is overriden.
Automake then disables the default version which contains all
the static libraries. In Makefile.in:
@HAVE_WINDOWS_FALSE@src_mpd_DEPENDENCIES = libmpd.a \
Instead we use EXTRA_src_mpd_DEPENDENCIES which is meant for this.
2014-08-02 08:48:44 +02:00
Max Kellermann
14c538c9c7
Win32Main: move to win32/
2014-08-02 08:48:30 +02:00
Max Kellermann
abe4c57663
configure.ac: prepare for 0.18.13
2014-08-02 08:45:44 +02:00
Max Kellermann
a3f3c7ba24
release v0.18.12
2014-07-30 10:30:17 +02:00
Max Kellermann
94efeb2845
decoder/dsdiff: simplify dsdlib_skip() call
2014-07-12 20:51:00 +02:00
Max Kellermann
a73834436f
decoder/dsdiff: simplify loop condition, merge branches
2014-07-12 20:46:24 +02:00
Max Kellermann
85f4aeca05
decoder/dsdiff: ignore garbage null byte at end of file
...
Failure to read another chunk header is not fatal. Continue to read
metadata.
2014-07-12 20:41:26 +02:00
Max Kellermann
7db84a961a
decoder/dsdiff: fix metadata parser bug (uninitialized variables)
2014-07-12 20:41:26 +02:00
Max Kellermann
a960e2ef48
decoder/faad: estimate song duration for remote files
...
Previously, MPD tried to slurp the whole song file, count the number
of frames and calculate the song duration from that. That however is
extremely expensive for remote files, and will delay playback for a
long time. Workaround: check only the first 128 frames and try to
extrapolate from here. Fixes Mantis ticket 0004035.
2014-07-12 00:37:00 +02:00
Max Kellermann
4fe272a7fb
DecoderBuffer: add method _available()
2014-07-12 00:35:32 +02:00
Max Kellermann
a7d9f248ea
DecoderBuffer: add method _get_stream()
2014-07-12 00:23:22 +02:00
Max Kellermann
06aa689383
decoder/faad: bail out early if sample rate is invalid
2014-07-12 00:23:11 +02:00
Max Kellermann
835b0c44cd
decoder/faad: use adts_check_frame() in faad_song_duration()
...
Eliminate more duplicate code.
2014-07-12 00:18:02 +02:00
Max Kellermann
54b6f8a4ae
decoder/faad: test "seekable" after ADTS frame check
...
Don't bother to check for ADIF just because the stream is not
seekable.
2014-07-12 00:17:51 +02:00
Max Kellermann
18787ebe8f
decoder/faad: move code to faad_decoder_new()
...
Merge some duplicate code.
2014-07-12 00:17:43 +02:00
Max Kellermann
47e8fcf37e
decoder/faad: remove unnecessary read
...
Eliminate some overhead when the caller doesn't need the buffer.
2014-07-12 00:17:30 +02:00
Max Kellermann
5958b78459
DecoderBuffer: add "pure" attributes
2014-07-12 00:16:41 +02:00
Max Kellermann
9d9697b366
DecoderBuffer: add method _clear()
2014-07-12 00:15:35 +02:00
Max Kellermann
6585e18571
decoder/faad: check sample_rate, not frames_per_second
...
Checking the integer is faster, easier and more reliable.
2014-07-11 23:12:08 +02:00