Thomas Klausner
de0752fd56
system/ByteOrder: gssupport non-x86 NetBSD
2016-08-23 10:15:54 +02:00
Max Kellermann
05de0ecec3
decoder/ffmpeg: call avcodec_parameters_to_context()
...
These bug reports describe problems with some FFmpeg codecs:
https://bugs.musicpd.org/view.php?id=4564
https://bugs.musicpd.org/view.php?id=4568
https://bugs.musicpd.org/view.php?id=4572
According to the FFmpeg bug tracker, a call to
avcodec_parameters_to_context() is required after
avcodec_alloc_context3():
https://trac.ffmpeg.org/ticket/5781
This requirement was previously undocumented.
2016-08-23 09:59:25 +02:00
Max Kellermann
b05beb000f
Compiler.h: work around clang 3.9 warning -Wexpansion-to-defined
...
Check {GCC,CLANG}_VERSION==0 or >0 instead of using defined(), which
may render undefined behavior.
2016-08-23 09:59:25 +02:00
Max Kellermann
743fa73a01
Merge branch 'v0.19.x'
2016-08-15 12:33:07 +02:00
Max Kellermann
a546bfe7d9
decoder/wildmidi: support libWildMidi 0.4
2016-08-15 10:08:35 +02:00
Nils Schneider
62000670e3
Support S24_P32/S32/FLOAT sample formats on Pulse
...
This is based on a patch from Ian Scott in 2014. It was never committed,
so I figured I'd fix the outstanding issue and resubmit it.
https://www.mail-archive.com/mpd-devel%40musicpd.org/msg00139.html
2016-08-15 10:02:29 +02:00
Max Kellermann
37a7ca7f14
configure.ac: prepare for 0.19.19
2016-08-15 10:00:03 +02:00
Max Kellermann
afd5b750dc
release v0.19.18
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXpMKjAAoJECNuiljG20USti8QAJC6Y/wnyBgE8bGGynhNKoIy
H5GQP9a3iFAiZ4ZBQ6jJAVMhRVzStxqTvYdU8ISbrE9Sw92i37ZaUwvbOcMGjN8G
vm3oTSsPaQKABuaeNo0vdWDKEUIjXIFzyXL31SnGVCkS3KMLFUcq5p4/9OaFtxiD
dMshfi8S+g5MLZf1xf6sviTwHTNQJYYMOEGDlq9E21UorwA5jN22dgYRiEoYAPrv
eOCO+N+N7N3VazIN+Y2L0cU3NtJpRvtv001UcfP0oSb12bysSepCCVc02sYQYIY6
W0LCjgzAbLX5nxyNDR75cjwPZlVDXhulesUVg/0uEEITdwmd8E3MtAxygsSTth6r
fNo6NThceoD10T/HgSCaU/vXOV5MNw3oVwc4Q/aoCoPryuNGeN9vDIro3+EaPdsW
6cfBMTYIU3iWpdNt+WI1mTf2aD4RvWWb0C7kgD6CF2QUm8aBRSHmQAnua0cWvlx9
SSMhG7p4FXrLAveuqaPfDItsQ9IA8oW9E6nxgD8W7eCHEo+fUa1D8Ymfjl7Qcldb
WdT2u38PmF7s/z+YwrFWTISwdDieYq/XC7xPibUYDJQzqBmBksB07sJUwVAO6xF2
YhVlHhhIhYajD4n0VCLuC2QzRgoLEhaNstlK/q01lGZbW4F9/dNuZ2Fe/O+yWsLH
ksxyC62N4oy10f8/PSp1
=48Tb
-----END PGP SIGNATURE-----
Merge tag 'v0.19.18'
release v0.19.18
2016-08-05 18:51:38 +02:00
Max Kellermann
2b97b124bd
release v0.19.18
2016-08-05 18:45:23 +02:00
Max Kellermann
d042ab87da
decoder/Thread: delete the InputStream on error
...
Fixes memory leak after stream failure. See
https://bugs.musicpd.org/view.php?id=4562
2016-08-05 18:15:30 +02:00
Max Kellermann
588303b78d
lib/nfs/Manager: add Compare(ManagedConnection, ManagedConnection)
...
Required for Boost 1.61, which uses that overload in a BOOST_ASSERT().
2016-08-05 18:06:07 +02:00
Max Kellermann
2777a23672
Merge branch 'v0.19.x'
2016-07-29 20:25:59 +02:00
Max Kellermann
762f3afb9d
decoder/sidplay: allow building with libsidplayfp instead of libsidplay2
...
https://bugs.musicpd.org/view.php?id=4558
2016-07-29 19:32:21 +02:00
Max Kellermann
9bfb844cfa
decoder/sidplay: read the "date" tag
2016-07-29 17:47:08 +02:00
Max Kellermann
0bd25f1e17
decoder/sidplay: log detailed error message
2016-07-29 17:04:38 +02:00
Max Kellermann
d916890a8f
configure.ac: detect libsidplay2 and related with pkg-config
...
The comment about requiring libtool from 7 years ago is obsolete these
days.
2016-07-29 15:21:38 +02:00
Max Kellermann
83aed7051c
output/shout: rename "encoding" to "encoder"
...
The user manual specifies "encoder", which is consistent with other
output plugins. "encoding" should be deprecated.
2016-07-29 10:52:03 +02:00
Max Kellermann
77c6e45e65
Compiler.h: require gcc 4.7 or newer
...
The ScopeExit library uses C++11 initializers, which gcc 4.6 does not
support. Let's kill support for this ancient incomplete C++11
compiler, nobody should be using it anymore.
2016-07-29 09:52:23 +02:00
Max Kellermann
0c809fbb40
Merge branch 'v0.19.x'
2016-07-29 09:00:20 +02:00
Max Kellermann
a3d020eff9
decoder/ffmpeg: use AVCodecParameters on FFmpeg 3.1
...
The AVCodecContext attribute is deprecated.
2016-07-28 19:50:25 +02:00
Max Kellermann
eb192137d6
decoder/ffmpeg: copy the AVPacket in ffmpeg_send_packet()
...
Revert commit 70495aad
by rewriting it. Turns out, in old FFmpeg
versions, copying the AVPacket is necessary.
2016-07-28 19:42:25 +02:00
Max Kellermann
710b48d410
decoder/ffmpeg: log detailed error message
2016-07-27 17:28:12 +02:00
Max Kellermann
4fed0b991c
configure.ac: prepare for 0.19.18
2016-07-27 15:07:15 +02:00
Max Kellermann
b67e7df38e
release v0.19.17
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXgCv6AAoJECNuiljG20USR3cP/RALB4qlhecMo6H8VwZvfjiA
FHfhBKfdpHM3U3EEIZc1zxwHIdWk1yELtmx298vmJbWUifpYAYarXF5497tZf2XE
AVfhTltEJEd7xB5ZULnEScM1aHzMZm5HRcHwM1UqNCsXP7PT8fmpk7gw19pKOChT
h8V3+tpC403lCIcHcJGlkuzgZvKIZDs73g7a0+4GxD9XRAPwnMYRl3Cfd8QjKT/U
r67AcOwQlS6hWJFs0K1JjOQwfwbRq2YmuOmFJua6n8O6CI/7t4h3faSQ0V/5qjFd
k/pAMRtX6mz3mjVhZv4cuMy+QILWlxUNwLBIwtxSfbwcFKrN0vtIRG8O9622hTs2
+mvYiVboWABk6hnukiDAfki96jWYHlsCJR5oIK9DZ4nBe5RVp0r9Nq/ook2AW2it
6VgYIDBI5zS/blyJzXtzDVWEtSmLFxm21JSl+jHfWDtL6/rQGimdVOFkRw40oCBz
seYb5kIbilrg6xq1KiBMT+EWmXMf+q+3YWQsu01blXGYGPhpUqhIr0h/qUfWAqMs
fwIsoxsTrkQQjEWb6YWupPrdOLZ+kTAyaK+7v8B8JmzS/H3SohusMPUZKsQXl82s
5LJVLtVxB9WRRmpfSoYqfk7CkTHOktCzVmiHb/FYUYElS9VKmJYYU8XQ25snCoZ6
bYtERsH28q8rrpkWWEXP
=IXD5
-----END PGP SIGNATURE-----
Merge tag 'v0.19.17'
release v0.19.17
2016-07-09 00:46:09 +02:00
Max Kellermann
f28c746b6b
release v0.19.17
2016-07-09 00:40:57 +02:00
Max Kellermann
4a7042e847
decoder/flac: handle unknown duration correctly
...
If the duration is unknown, pass SignedSongTime::Negative(), as
documented for decoder_initialized().
2016-07-08 22:33:49 +02:00
Max Kellermann
e6389ff5a1
client/ClientRead: call Break() before Close()
...
Referencing the attribute "partition" is illegal after Close(),
because Close() deletes "this".
2016-07-07 13:54:04 +02:00
Max Kellermann
b46cf57d98
event/BufferedSocket: OnSocketReady() returns true after close
...
Fixes use-after-free bug (https://bugs.musicpd.org/view.php?id=4548 ).
2016-07-07 13:52:20 +02:00
Max Kellermann
6f59d71e07
decoder/API: check initial_seek_running in _check_cancel_read()
...
The "seeking" flag is not set for the initial seek, and so
decoder_read() could be canceled when another SEEK was emitted during
initial seek.
This fixes several seek problems, for example the one reported for the
FLAC decoder plugin:
https://bugs.musicpd.org/view.php?id=4552
2016-07-06 15:46:04 +02:00
Max Kellermann
faf2eeaa99
decoder/flac: evaluate all possible FLAC__stream_decoder_get_state() values
...
Stop after all fatal errors. This fixes assertion failures in
libFLAC.
2016-07-05 19:27:40 +02:00
Max Kellermann
104075f3e0
PlayerThread: use PcmSilence() in SendSilence()
...
No change for regular PCM, but DSD uses 0x69 now.
2016-07-05 18:01:29 +02:00
Max Kellermann
5eb0cbc887
PlayerThread: make chunk allocation error non-fatal in SendSilence()
...
Fixes abort after seeking on fast machines.
2016-07-05 17:44:45 +02:00
Max Kellermann
072e39c9cf
filter/ReplayGain: skip PcmVolume if a mixer is set
...
Previously, volume was applied twice: once by PcmVolume, and again by
the hardware mixer.
2016-07-01 21:17:52 +02:00
Max Kellermann
8dc3f3b21a
configure.ac: prepare for 0.19.17
2016-07-01 21:16:14 +02:00
Dimitris Papastamos
171da7a347
Add sndio output plugin
2016-06-22 08:44:47 +02:00
Max Kellermann
8b903626c2
release v0.19.16
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXXuZbAAoJECNuiljG20USSegP/1gYoDyp4vDDCcRBNZkr3hlE
VbFyEz06/chfUTCRWFxtM6ghVMzSpqv7I8wDA8zv22NTkForVWD3gjimtJqJ/R4w
aT7QMZJmJUIH0Uf+dRp98YRG7m5S1Y5JkKEYu4oxQOECxbNMPd+ilbb6wwr2pYZ/
k2ks+oyYtPgqtWlriIbJMwXOyQEfqNCJgzxUzC2U6idVALYpj+5aK+VTY4Nk1YXw
nLAu8TT40jNYFfss0bDYBzQbm/82m8Q9JIkmoOpX/3WaRaCjaVza7IvRKgDPZutJ
mmrtu5SJ+QgLQLaXvav84KwtXhDbJu4zEbC7tUL0LGSmzbpiiz2DSUJP2jQ0C6nS
wgcACFkHGBLOjKNbjDB1eUhS7ouzxTGgPlsMC89254R7XQP/5EV9H3Quxb48Bxq7
PuW6nNHytppfAIZP18X62oL8hpSgwK1zLe34jzayJlkGIg5O1he4FcJQykvlzrjm
fBvL+hX3TM9exfASQujNXVgxFGPmgb37bE2aQyxZunE1DltJWfHyOhdme9vCuEcB
acz8gR/jcp8OKe4RCEdD1g86CSW2wlMfKfnzuwPPhcw0L3kz6OYcjRr2oMae7uG0
/NFw+PcdHcVKXjiRoJsdCvtN+jRtJhCUn314IskgyKad/UNcELbo7WDBUqHC36Wg
ncM6Sis4oal4jPXJ2JoE
=6ee1
-----END PGP SIGNATURE-----
Merge tag 'v0.19.16'
release v0.19.16
2016-06-13 19:03:59 +02:00
Max Kellermann
faf0c950fe
release v0.19.16
2016-06-13 18:59:07 +02:00
Max Kellermann
5771d67202
player/Thread: cancel outputs before seeking
...
.. instead of doing it after seeking. After seeking, the command had
no effect, because CheckDecoderStartup() waits for all outputs to
finish. This caused a very long delay while seeking and switching
songs (https://bugs.musicpd.org/view.php?id=4534 ).
2016-06-13 09:13:56 +02:00
Max Kellermann
22ff0d80ce
decoder/pcm: add MIME type "audio/x-mpd-float"
2016-06-10 23:06:21 +02:00
Max Kellermann
5a22a0c27d
decoder/pcm: implement RFC 2586 (audio/L16)
...
https://bugs.musicpd.org/view.php?id=4525
2016-06-10 22:52:35 +02:00
Max Kellermann
75c8aecffa
NEWS: add missing lines
2016-05-11 17:09:46 +02:00
Max Kellermann
dc57966dc3
configure.ac: prepare for 0.19.16
2016-05-02 08:57:53 +02:00
Max Kellermann
3fb8f3ec95
release v0.19.15
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXJKNhAAoJECNuiljG20US7pcP/A2sFmmf+QlKvV5G88D+UxbX
kIoz3d5mHRoW4kJcbhUKUVe9pIkQEWTVC4XNNi8ggO8/MUa7+FpUPR0bJDgmLnnm
jM3tV/eVXUmPgXTgj1PT0jOTNCNNJx69JYhz7nMGIAbxubs7hRGTfGgJYnTQImsW
yDVst0BH7C6i21kmAWjQYoFZu0h7ZoyBOZTHAyR/6wF6Bmlc5JAEV6eBRyrU3MLN
Mma4+rJhMh+2206SqUBJEVwEszaTJnmu7Xi5Zmk+LGSrykJt93bQio7k2hJ5PvKJ
feFCXl1IpobUMpPJ+Nv1QraTKO9lg5oEYOwlcxJf4JwfqpRk+oXr+MZ52iR9jMtw
otcux72CYMmSJOC2Sl8cq9TdQCOb7XxhDjv+Phf44WG5Ns1QJQY7rvrGLT0gFSLx
MVD2WKJCrWFgql6ugf9lhsrt7x8llD9anNqbJNamXmGoL0NFJs6sg9d02vbRuIDz
xOcBPKnDB/Ao1TxXT4/Ck6gzYwTd+sxvsrC2XwthDXTiM+qe+pAjF+KFKd5thIUs
Hh296GL8Ch68X+6HXVkCKwyW9F503LFAcXTlP6XQUnkpPHNU536VdUjaHmx557jR
3cY7d67gHSVxllDQJYp0GIMIKyaZhQ4V7w3l1IKzPc1KrhryOxvlbAaYVSHo26nI
yZMKwFJ1L0l9j76kZG4a
=GyO9
-----END PGP SIGNATURE-----
Merge tag 'v0.19.15'
release v0.19.15
2016-04-30 14:28:25 +02:00
Max Kellermann
04ed50fb0f
release v0.19.15
2016-04-30 14:21:52 +02:00
Michael Cree
72637d00e8
Bug#822848: mpd FTBFS on Alpha; misaligned arrays in the test suite
...
Source: mpd
Version: 0.19.14-2
Severity: important
Justification: fails to build form source (but built in the past)
Tags: patch
User: debian-alpha@lists.debian.org
Usertags: alpha
mpd FTBFS on Alpha with a failure in the test suite [1]:
FAIL: test/test_byte_reverse
============================
.F...
!!!FAILURES!!!
Test Results:
Run: 4 Failures: 1 Errors: 0
1) test: ByteReverseTest::TestByteReverse2 (F) line: 58 test/test_byte_reverse.cxx
assertion failed
- Expression: strcmp(result, (const char *)dest) == 0
This occurs because the test suite (in test/test_byte_reversal.cxx)
allocates static char arrays and passes the char arrays to functions
whose respective arguments were declared to be uint16_t *, etc., in
the main code.
This is in the realm of undefined behaviour on architectures with
strict memory alignment requirements. Although the test only fails
on Alpha (because Alpha has a particular CPU load instruction that
gcc likes to use to add bugs ..., ahem, optimise the code on the
assumption of alignment) it is potentially a latent bug for other
architectures with strict alignment requirements.
Since the code is compiled with the c++11 standard I attach a patch
that modifies the test suite to align the non-compliant strings with
the alignas() attribute. The test suite now passes on Alpha with
that patch.
Cheers
Michael
[1] https://buildd.debian.org/status/fetch.php?pkg=mpd&arch=alpha&ver=0.19.14-2&stamp=1461542099
2016-04-28 13:29:41 +02:00
Florian Schlichting
27d4b15925
DecoderBuffer: add missing include
...
> In file included from src/decoder/DecoderBuffer.cxx:21:0:
> src/decoder/DecoderBuffer.hxx:41:20: error: 'uint8_t' was not declared in this scope
> DynamicFifoBuffer<uint8_t> buffer;
> ^
> src/decoder/DecoderBuffer.hxx:41:27: error: template argument 1 is invalid
> DynamicFifoBuffer<uint8_t> buffer;
> ^
> src/decoder/DecoderBuffer.hxx: In member function 'void DecoderBuffer::Clear()':
> src/decoder/DecoderBuffer.hxx:61:10: error: request for member 'Clear' in '((DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'int'
> buffer.Clear();
> ^
> src/decoder/DecoderBuffer.hxx: In member function 'size_t DecoderBuffer::GetAvailable() const':
> src/decoder/DecoderBuffer.hxx:78:17: error: request for member 'GetAvailable' in '((const DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'const int'
> return buffer.GetAvailable();
> ^
> src/decoder/DecoderBuffer.hxx: In member function 'ConstBuffer<void> DecoderBuffer::Read() const':
> src/decoder/DecoderBuffer.hxx:87:19: error: request for member 'Read' in '((const DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'const int'
> auto r = buffer.Read();
> ^
> src/decoder/DecoderBuffer.hxx:88:27: error: could not convert '{<expression error>, <expression error>}' from '<brace-enclosed initializer list>' to 'ConstBuffer<void>'
> return { r.data, r.size };
> ^
> src/decoder/DecoderBuffer.hxx: In member function 'void DecoderBuffer::Consume(size_t)':
> src/decoder/DecoderBuffer.hxx:105:10: error: request for member 'Consume' in '((DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'int'
> buffer.Consume(nbytes);
> ^
This seems to be caused by a lacking include, fixed by the below patch.
I'm unsure what made this appear now, though, compiler and toolchain
libraries seem to be the same upstream versions that built 0.19.14-1
just fine in late March.
2016-04-25 08:30:27 +02:00
Max Kellermann
e6fad97edc
decoder/opus: support bigger OpusTags packets
...
Required for OpusTags packets which contain artwork.
See https://bugs.musicpd.org/view.php?id=4520
2016-04-19 13:05:42 +02:00
Max Kellermann
33fdaa5b6d
Merge branch 'v0.19.x'
2016-04-13 10:03:40 +02:00
Max Kellermann
807c72b2f1
decoder/ffmpeg: use av_packet_unref() instead of av_free_packet()
...
av_free_packet() was deprecated in FFmpeg 3.0.
2016-04-12 21:15:05 +02:00
Max Kellermann
74dbaade6f
decoder/Thread: use "ffmpeg" as fallback instead of "mad"
...
Adds support for stream codecs which havn't been explicitly listed in
ffmpeg_mime_types.
2016-03-30 00:58:48 +02:00
Max Kellermann
53677172f2
notify: use "constexpr" only with glibc
...
The Mutex and Cond constructors are only "constexpr" with glibc, and
this is what this #ifdef is about.
Backport of commit 459a812a
See http://bugs.musicpd.org/view.php?id=4511
2016-03-30 00:31:01 +02:00
Max Kellermann
bef0ccf42a
configure.ac: prepare for 0.19.15
2016-03-30 00:30:39 +02:00
Max Kellermann
e8519fecb4
release v0.19.14
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJW7DpiAAoJECNuiljG20USwwkP/1z3HeJjzzrwySH9MVeFpVtR
fr9XL2pO6zTcaVAIk/fNWtrcT6G5IuK079GKVa2jADN8KRMfCvGDEgHfGevjRNmc
USXkUm2pij67S3Ic74WhDISt32gYzBOCo/nFIFncLyjXXPW4WRq/3rb8tMwffZen
d/wqZmzHGEom8z0BTLASY/QM2KTBXOHgAhTb4M8lowxlesK8O/6Mx14UxgcIKIDf
1lqRhaF6NRS56uwjt8GwkaH9Td8wJG/inVLQo08z26ycJNaPrkxSNrWsSzQdBr8Q
DanbH4nefj8L33PVCV9nNPSjGe5s3R3D9WVEvt+cJ71UqBUQJkYgXaYRLQVEs1Mk
80a9MlFECF1UiS9FwmnUXRAY0Zzb19NLjm+v3CeMANqoFQ/OQaIe3/iaM0hT0yto
akHWhgEE4SuwcHPpUXQlKlbYHW6DaHBULwpzcKxFUeQkzx5m4FshBSL73TEEyv8+
bRc4tGIqA2Pep/Ptg3R9mJZ5wr/crtJby9FxNUkXiGZeiHEya+mRdGVyogMnce/K
BTg1bhiaE7Ofdxd4NuUIOZ6OkjpFnnQajJwnR1dJrZG+avOrGjcBPH5QGHWEYfs7
hVQhea2ehbcqQPq5celaZkL30SCxZmuN/0Lbmc8y7tpshLkdSUxmBoPSjvUD/UUz
JyZf+npL5nmtF0Pqz7W8
=McwP
-----END PGP SIGNATURE-----
Merge tag 'v0.19.14'
release v0.19.14
2016-03-18 18:41:14 +01:00
Max Kellermann
ff35aa07dc
release v0.19.14
2016-03-18 18:26:58 +01:00
Max Kellermann
a3afd5178c
tag/TagPool: optimize _dup_item()
...
When a reference counter is at its limit, don't allocate a new
TagPoolSlot - that would result in many TagPoolSlot instances with
ref==1. This in turn would make the linked list very very large,
which means quadratic runtime for many operations.
2016-03-14 13:08:04 +01:00
Max Kellermann
6ff01cc72c
Merge branch 'v0.19.x'
2016-03-07 14:30:43 +01:00
Max Kellermann
e140a28073
archive/iso9660: check path buffer bounds
2016-03-07 14:21:01 +01:00
Max Kellermann
b24cbc68ba
decoder/dsdiff: fix off-by-one buffer overflow
2016-03-06 23:28:29 +01:00
Max Kellermann
976fdd76c1
decoder/opus: limit tag size to 64 kB
2016-03-06 23:26:48 +01:00
Max Kellermann
d2dd6f7c70
thread/Posix{Mutex,Cond}: use "constexpr" only with glibc
...
Apparently all other C libraries are not compatible with "constexpr".
Those which are not will get a performance penalty, but at least they
work at all.
2016-03-01 21:23:59 +01:00
Max Kellermann
e9a544fa98
configure.ac: prepare for 0.19.14
2016-03-01 21:22:42 +01:00
Max Kellermann
92f54f0b59
output/alsa: disable DoP if it fails
...
See http://bugs.musicpd.org/view.php?id=4496
2016-02-28 10:19:19 +01:00
Max Kellermann
21fb7eea82
output/alsa: probe DSD_U32 if DSD_U8 fails
...
See http://bugs.musicpd.org/view.php?id=4485
2016-02-28 09:59:09 +01:00
Max Kellermann
8ffcdb73e8
output/alsa: remove option "use_mmap"
...
MPD does not really take advantage of memory-mapped I/O by generating
data right into the ALSA buffer; using plain snd_pcm_mmap_writei() has
no advantage compared to snd_pcm_writei(). Let's kill this
non-feature.
2016-02-28 09:30:59 +01:00
Max Kellermann
3d9652ae35
TagStream: add TagBuilder overload with ScanGenericTags() fallback
...
This commit adds support for APE/ID3 tags from NFS/SMB files.
See http://bugs.musicpd.org/view.php?id=4270
2016-02-26 13:48:38 +01:00
Max Kellermann
6350089e51
release v0.19.13
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJWzMnGAAoJECNuiljG20US5yYP/jL9A313aMgUO/R8eVGNc7uJ
CwiKROtgd+M47si1qdduzdrPKrFK2tEGYT0El5uQsyDuIsmPB01c3ZqnlM8oO6ca
5tXXJiEvyMkupCEzAajTHqvDCyPx0+o1ektYm9SouAULjOMztIpsVU3oKc8Z78Yc
TkpaRwUjNaekGLf0kATesBYnWkKR7S/TLYKmaKUaPCcK/i2S8YhTC57a1yZjg3lE
w57Kh+tFLZCSiZChk9A5D6w1kKzDgiyNGRYK4F2TRfiQ6hML4F45EFgzfCg+zHi8
+OIE9C1ZQt/NQ6mib+OUWoGuHtfjR20F/OFnQEYvkyXQ32j1sbALe7IHCceX7IHl
U88hcIh2yEr1x3TUaVyYPLze4FBq/Uxv/gFH8FVKTWmcb90MJgXCNFbO3sfO9kk0
KYK0IDoHE9MSmWhblA1FFFHU8VmCMsTN0VhBan+XP2wgXnGX+UvjU7AWJm4Fkwx0
H8uP0Si5wtI9DZ+2SRyGhMfW/+pHsqD+O6PoSSfUyU3ZnPy+cAVEC+67oKJ9pZkA
najeYaMt0Kz88RvLEwNeLkiys62O8aTsBpfjeNfmUAISJzZZbIvC20tyroHrju30
TgbXff2Hnx4q+NQ7nbQN5HMVZ2JLLPMYYw+N0dP41g/ULubHS6btGOVwgTWoFwBo
i2L1uscoD1ONxIEOlIvl
=X7s3
-----END PGP SIGNATURE-----
Merge tag 'v0.19.13'
release v0.19.13
2016-02-23 22:13:43 +01:00
Max Kellermann
79f2f8cddc
release v0.19.13
2016-02-23 22:06:13 +01:00
Max Kellermann
39fa949345
queue/Playlist: move only the tag items in TagModified()
...
Fixes disappearing duration of remote songs during playback.
See http://bugs.musicpd.org/view.php?id=4492
2016-02-23 21:01:55 +01:00
Max Kellermann
b3460f3f54
configure.ac, unix/Daemon: check for initgroups() at configure time
...
The initgroups() manpage says we need to check for _BSD_SOURCE. The
thing is that glibc deprecated this macro, and doesn't define it
anymore, effectively breaking all MPD supplementary groups.
The real fix is to check for initgroups() availability at configure
time, instead of relying on the deprecated _BSD_SOURCE macro.
2016-02-23 20:13:34 +01:00
Max Kellermann
196de8c758
decoder/thread: load APE replay gain from remote files
2016-02-23 10:57:03 +01:00
Max Kellermann
0acc88cde5
Merge branch 'v0.19.x'
2016-02-19 18:16:04 +01:00
Chris Spiegel
1e0ad1f6bf
Add TAK as a supported FFmpeg format.
2016-02-19 17:32:48 +01:00
Max Kellermann
4abcb08cc9
tag/{aiff,riff}: fix ID3 chunk padding
...
Apply padding only to the fseek(), not to the chunk size. This fixes
bogus "failed to read riff chunk" messages when the last chunk has an
odd size.
See http://bugs.musicpd.org/view.php?id=4486
2016-02-19 17:31:20 +01:00
Max Kellermann
81e7833711
configure.ac: prepare for 0.19.13
2016-02-19 17:30:01 +01:00
Max Kellermann
aa7694047b
decoder/Thread: pass InputStream errors to DecoderControl::error
...
Give MPD clients access to the error condition.
2015-12-31 13:39:13 +01:00
Max Kellermann
6c5b8bcf9d
decoder/Thread: log all errors
2015-12-31 13:38:35 +01:00
Max Kellermann
9bc0fada5c
release v0.19.12
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJWcH4fAAoJECNuiljG20USbAcQAKX0G+V10HI2Bmf7JJ3pWW96
GiOBpd66pEPioXdfpxOQNLglKS+rcproCWZnQf/VSoYN5d6pT6VLCQiMpdm3ZkNO
ZLWGhJ0Md1PGj+xjfGrMw95g+cqV+wMo1PETOsE/MtINqN/nMyQNI7lFnZ8xYEAP
DhJB1pXdchHvUVM3o+vpGSEOScn3XstL8+a/K5+Rvxptew4QDI/0ucyTLcLaaxkY
r/bH8wTDSMSpez4M5Me9MQ9OJ9NUPgudvs8Ppzji26lMcQRnZGdcffGTj08Lv+1b
gyx25t8sija6XVt6AEqn8KX+YAhe94c7ROq5PzdLeUszUf4YFIqaZ7O19PSYuuB6
APfr25A7NBQtJ88Wjw6slco+mAwbLZwQewZtFZCq6Y8J3oRBG6bpaPhFWUyygqTL
rIU735+o3FvqijKJUtKG0rAz+wfsPk6TMvIg4VMUaQXneS1LbzZe2Nz2FGxtonpd
Ua/tBQ/LnX8Utueuhy0kH06qPqq1/eSCMZIH/yphfR+B5k90h719RN/BR5xPv9Fb
vRdiSgPtfACAHvnadqcpVGjmmCQtXurC7gFceEc4Anign5kkSSGrDmo9OYhxwSkl
8A2GeOmxNrs2aFkNelnH3C6BTOEcewbXEmPQhTiBoX9LDmDK31rfSoVI0SUt7rbR
Sbt21m+7ThEqFfafZ8a/
=hDes
-----END PGP SIGNATURE-----
Merge tag 'v0.19.12'
release v0.19.12
2015-12-15 22:05:21 +01:00
Max Kellermann
82e261ad33
release v0.19.12
2015-12-15 21:54:42 +01:00
Benno Fünfstück
cae2811762
fix mpd crash on invalid utf8 stream title
2015-12-15 21:49:53 +01:00
Christian Hesse
77aaf1baee
fix LimitRTTIME in systemd unit file
...
systemd does not understand LimitRTTIME=-1. For no limit we have to use
the string 'infinity' (see systemd.exec(5)).
Signed-off-by: Christian Hesse <mail@eworm.de>
2015-12-15 21:17:04 +01:00
Max Kellermann
0f4f04eaa4
command/CommandError: send verbose error message to client
2015-11-11 19:51:09 +01:00
Michael Paquier
315f9d98f6
Main: fix build failure on non-Linux systems
2015-11-10 08:38:53 +01:00
Max Kellermann
f087518e7a
configure.ac: prepare for 0.19.12
2015-11-10 08:33:50 +01:00
Max Kellermann
8acf996d90
command/queue: add range parameter to plchanges and plchangesposid
2015-10-27 20:35:40 +01:00
Max Kellermann
15e432204e
pcm/Order: new library to convert from FLAC to ALSA channel order
...
This new library is integrated in the PcmExport class and (if enabled)
converts MPD's channel order (= FLAC channel order) to ALSA channel
order.
This fixes:
http://bugs.musicpd.org/view.php?id=3147
and
http://bugs.musicpd.org/view.php?id=3255
2015-10-27 11:44:23 +01:00
Max Kellermann
94f850a588
release v0.19.11
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJWL0cEAAoJECNuiljG20USkHkP/0m3kFEEgqauAIbI1t0TkKOp
2ii5iHZeMAlsxGEc5SX5fFoXM6STbXq/3+OXBf+OnABh9b03o744QAAwh1ei9tiQ
kMysbN2fbpHkuchx1JfrOU1ad3qfWXQri8csTtx5eRYpgyqF7Mfl1SoY1nkpherd
j4MVq7MVqBhwCqpAfJvTFTSOlNrJ4bBcvIgGslhFYhRxMRM83KgFS//lHvbXWnOg
fjYEO34nz0rjCfz6x2r7ZQBLeQVr9n6h24iYhSTnU7Xq9o2ezWlVRIm9YVhxoZKf
/MRJuAzaHhGID8IvX7dPxdQJ+feUhQXSv8HSjOJBO6R2dqIScE3D6EIBHy8Cj9Bk
O2D1SgmR+2NnjNz2GUjCIKHm9c9jTgv+rnZ2l8hweS2oUQOPHbCtOoCNAfwyP+/Y
ms1CavNl7bUuvWrM1ipM2ZK6QfW9P4F1dtmwqtJCsqdGFyQyfACcxqmlkfxhB2vI
NyvKAOn/TlWWQscF9id3r90sEir/J9e7IJ6oZh+uvyIfOtt8wR/Jm5/H1MA7j3iX
XmNbe1GY3WHjCH2lRr3tIRKAE8I3HAtBzwhvq/miSESrkEnJ06VMatkoMRQT63gy
62yaCg+ZWiBRp07ygiedYuGL19pDOhqRjY3U/b/0EHMb9ux083nuUTssqgzzO2OP
9OPao5CPs4M4QvmiG/wF
=RdQt
-----END PGP SIGNATURE-----
Merge tag 'v0.19.11'
2015-10-27 11:05:47 +01:00
Max Kellermann
db9997a106
release v0.19.11
2015-10-27 10:42:20 +01:00
Max Kellermann
5719207dfa
gme: don't loop forever, fall back to GME's default play length
...
Fixes http://bugs.musicpd.org/view.php?id=4432
2015-10-26 17:16:20 +01:00
Max Kellermann
08f77c2b60
decoder/gme: add option "accuracy"
2015-10-26 16:56:55 +01:00
Max Kellermann
ac61d43720
output/Command: flush the mixer cache when enabling/disabling output
...
Fixes mixer lag (http://bugs.musicpd.org/view.php?id=4425 ).
2015-10-26 16:29:07 +01:00
Max Kellermann
22ebe0e58f
playlist/flac: re-add the plugin
...
This reverts commit d7d9dbd2c2
by
reimplementing it with the current MPD API.
3 years ago, I was wrong about the "embcue" plugin being able to
replace this one, because "embcue" reads a tag named "CUESHEET", while
this plugin reads the "CUESHEET" FLAC metablock. There's an important
difference between those two!
2015-10-26 13:16:01 +01:00
Max Kellermann
1958f78cc1
decoder/ffmpeg: fix crash due to wrong avio_alloc_context() call
...
Allocate the buffer dynamically using av_malloc(), and free
AVIOContext.buffer in the destructor, as mandated by the libavformat
documentation.
Fixes http://bugs.musicpd.org/view.php?id=4446
2015-10-26 13:06:29 +01:00
Max Kellermann
62bfb1a273
decoder/mad: reduce memory usage while scanning tags
...
Allocate the frame pointers only when actually decoding the file.
2015-10-19 13:12:36 +02:00
Max Kellermann
4e3d182189
encoder/flac: fix crash with 32 bit playback
...
Copy to encoder->audio_format *after* adjusting the sample format to
S24_P32.
Fixes http://bugs.musicpd.org/view.php?id=4433
2015-10-16 18:05:34 +02:00
Max Kellermann
205fba74cf
tag/ApeLoader: fix buffer overflow after unterminated key
2015-10-16 14:55:40 +02:00
Max Kellermann
a9bcf8d50d
configure.ac: prepare for 0.19.11
2015-10-16 14:55:40 +02:00
Anthony DeRossi
6b6c7b0920
update: apply .mpdignore matches to subdirectories
...
Wildcard matches are directly applied to all filenames in
subdirectories without any attempt at matching relative paths.
This change is based on the following feature request:
http://bugs.musicpd.org/view.php?id=3729
2015-09-30 21:50:34 +02:00
Will Tiffany
0f75c79665
CueParser.cxx: ignore INDEX after first per track
...
Use the first INDEX in each TRACK section, instead of the last, for the
start time. This preserves the original CD layout (including gaps
between tracks), and avoids skipping sections of songs in more exotic
cuesheets (eg musical suite tracks).
Fixes 0004355 and 0003359
2015-08-23 15:49:50 +02:00
xent
34db35c36d
playlist/embcue: fix last track
2015-08-05 23:37:57 +02:00
Max Kellermann
3e9738dc66
decoder/mpcdec: read the bit rate
...
This was lost in commit 8ead8f7ea
, because this was never implemented
for the new API.
2015-08-05 23:33:11 +02:00
Max Kellermann
d5cfa6d4dc
TagId3: remove the "id3v1_encoding" setting
...
Drop support for misencoded tags. People should not be using ID3v1
anyway.
2015-06-26 00:15:24 +02:00
Max Kellermann
9f4f1bab39
LogBackend: remove character set support
...
Always write UTF-8 to the log file.
2015-06-22 22:33:37 +02:00
Max Kellermann
90e7ace980
release v0.19.10
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJVhsF2AAoJECNuiljG20US2OUQAIyDcaUCFgUa2CYa7MftCPGc
dYJFwf+6Y2fJdSXcogYZmXNKNjFbPAZ4qqGdoNfI5a0rLxMarmL4DyjziAWi3ETB
MOkZK65Y5ySyyw69e+i/XsOwOn8rm6jDuwHKpT7wVJNjvZ8nA8esvu5b1Ief5LBd
UwEmn5DtKjA7dErHEYd2YvMK0xm+YmoKXuhmJKAn3sQdCEldgH4T5BCdOqmfrHWX
BYmNxmP3PU9Tqi7XHTSFZJn6vWiXhOoWr4Cb7K54j49sRV2B4QMWX1CLyK4+Jwmk
NZwD1IoGtoks5twfMTA9F9dBV/CPAWT69E0LIvaFJwCyoPCEnEi6k41bRAWK7P65
QwKxdtY/GZnVFpiqXba+wkD6VBa5wmkjS10+cIBhz3CVCEE+N5YacubUw5JieYg3
kOG2htSF1YP/Mo+IAObO9doQWHnDUavVhhpQ8UyqQ1bDMsmaEpfE16TRmlY/l5wx
Aor2p6D3c0E0IGpEwjOl6T9pDql4dyTdrRLLXJ6oD9iYv2rDdahctBRdyFZ1mRwX
oNUz8bfGDrshHVvwjQTr2b4O+w+yc+RSuJcyCGGcn5LakBuiM6vYNYuZzq3Yj/RK
Wk7RErVsbtY4ZRH06Lf5MSM5TflnrfQmzkUB0rZ0XoDyweoHOHPyzKhvBaKhadNh
UnEx4kCOvWdjFXUVWH3Q
=MrVf
-----END PGP SIGNATURE-----
Merge tag 'v0.19.10'
2015-06-21 16:06:02 +02:00
Max Kellermann
b0ff3bc7a3
release v0.19.10
2015-06-21 15:51:50 +02:00
Max Kellermann
06301e279c
PlayerThread: start the decoder on PlayerCommand::QUEUE
...
Fixes missing SongBorder() call, which causes "single" mode breakage.
2015-06-21 15:38:48 +02:00
Max Kellermann
9acefcb256
DecoderThread: set Decoder::song_tag only for local files
...
If the song tag comes from a stream, and MPD playback restarts, MPD
would believe the tag should override the newly received tag. This
makes the previous tag appear stuck. This change passes the song tag
only if it's authoritative - i.e. if it's a song file.
2015-06-21 15:02:14 +02:00
Romain Rollet
ae77542a11
OutputControl: fix fail_timer check right after booting
...
Right after booting, the monotonic clock starts with a very small
value, and AudioOutput::LockUpdate() may believe that the fail_timer
has not recovered yet.
2015-06-20 15:37:19 +02:00
Max Kellermann
327a8e6c59
decoder/ffmpeg: skip unwanted samples after seeking
...
When seeking to the beginning of a packet, skip the samples that come
before the desired time stamp.
2015-06-20 15:01:05 +02:00
Max Kellermann
947e902288
input/curl: trigger the condition variable in RequestDone()
...
Fixes deadlock on small responses.
2015-06-19 16:45:38 +02:00
Thomas Guillem
3436a646b5
storage/nfs: fix deadlock when connecting
...
The Connect method can be called between Schedule and lock. In that case, when
locked, the state is already set to CONNECTING of READY and the condition won't
be signaled anymore.
2015-05-29 22:39:14 +02:00
jai
aed0af1e00
input/smbclient: fix DFF playback
2015-05-29 22:37:49 +02:00
Michal Nazarewicz
0d7ee2b014
OpusEncoderPlugin: initialise granulepos so we end up with sane values
...
Not initialising granulepos leads to it having arbitrary values in the
encoded stream including possibly negative values which are not valid
and confuse opusdec. Explicitly initialise opus_encoder::granulepos
to avoid that problem.
2015-03-25 18:02:54 +01:00
Max Kellermann
2f5fd91bd8
configure.ac: prepare for 0.19.10
2015-03-25 18:02:54 +01:00
Max Kellermann
400e3ea649
configure.ac: support libsystemd (instead of the older libsystemd-daemon)
2015-03-20 22:12:43 +01:00
Max Kellermann
676dfabc91
command/{Queue,File}Commands: drop "file:///" prefix for absolute paths
...
Requiring this prefix makes the client's intention very clear, but it
was too hard to understand why this prefix was needed. Initially, my
intention was to differentiate from broken clients which prefix relate
URIs with a slash; once MPD allowed that. In the past few years
however, MPD has disallowed that, and there was no significant
breakage (except for the "add /" special case which some clients
apparently still do). So I figure it's about time to define that an
URI that begins with a slash points to an arbitrary file on the file
system.
2015-02-09 07:55:06 +01:00
Max Kellermann
ff2b427cc1
release v0.19.9
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJU1OdDAAoJECNuiljG20USazsQAKZuhjJJ8vjYCB7G/NGoi9tv
dImBQnQDiQTdE57kxa46loknbPc5/cSAYnLbR4PjQfMBqArtE6sAkAk72LKlYNqt
qMOEKPCBjv8ZjiGDbvL/X+WSKbrpm8iOf3Gu5BRIuWrMK/oXQMe5A028Ziyye//X
XfMKdPWkZFL6h/qGO082eCnCiTJaSRLwP6HSNF2pqv+JuFF7hyLkZvTVXo/ms85E
ezrx3Kjf8TuNX041uuso7qqUsD/sY2jZRZ26qfzJ1ODwJmgIfbXzat+ODFVNne55
E1nh5zpwIUxZ2+d6eJEzwLR3+FpmltPc1YLo2mnetD6f59SzpXjAycPLo1VoOhbQ
s4iXQEzNI2LwDebI3eiMXQaLIorHOGex3L6JYkO5LAqUkPrv/PBCJFJs8ixjCRbl
KL27WmWYiV0xfdCz4TtAxEt48LGMMjDfaSK4Hzo3vN3vZtIEy2p/pS9MhXDdxC8I
vql533N+A9fi2I+7bPauwX5ElOYvGTkDeKqKXDox/jR0zio55APst7IW9OIUCKxo
an98430jeNPhs1CNqxVIJNciC8Q4REmafki7UQiKYDBQjHyq3r6Bp547lnDhUtii
P9PNTyOoJXhV5yEP3upnWCxwH6Vy7IxBnwrEO7aEHs88Ea54iqlZ9XB8TzUw4G/1
I7T7a8yOopRopb04vhr2
=fd8f
-----END PGP SIGNATURE-----
Merge tag 'v0.19.9'
2015-02-06 17:15:31 +01:00
Max Kellermann
5761800197
release v0.19.9
2015-02-06 17:08:25 +01:00
Max Kellermann
0eebacc521
release v0.18.23
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJU1OZDAAoJECNuiljG20USZeYQAJQ6S63jPBlfcUs+08d3Qe22
tlVYcBrH4zJiMqcgzzcCjslDTTWJNri5nO5Ryisklav2luvN+arvQIK/1XcIgjEH
vNLfqPv7LGg1cfIXYDn5yd7j+WQxytZ+fAXL9lGY+fQptRsybPAPP3WCvdXguoir
HWIHID3C2ndP58DmxYaRi+ewnpDdJgl051tqGVVTFkFBVpUVz+oaPlxJVO7Nj1tF
qSWXASWSJGvxJyaGs6aOxNuD0qpoFubnb+esfukTdjOFCcHl6X1CNn7GcoOGRvES
areN9/HlxZSogtv9eoSiwERwraNKKHpPR/8BaBDAT0phUH6ZqS1O69ZIZYQrKyPw
uls4XdEZBItIUn2Vl/zGyyUGMSNoVwbt0CpDPjJqtzPMBG5tQC2dEGyBAT2+uwAM
SAneXyYjW+kop4L8QfBav0eWvmXOEOqxCcRYDygvjil/lD/Pg2LhhznHieMhYTQv
7VmptpHrj41Ea0Mda83lIcBobUGwOxzV63WvHL5gXnPMcNG7yrLZno4ITQUXALxy
66ApaW52SmO1SFhP4NNNqxqlzoesSkVtwMfVY+CwRzX4LINTq8wLTdvTSrN9Xy38
XzwxgihtPT5fT73jQGnUyNjCRt7FlkCIO4KJ5UZNg03IwlVvXtD16GHsRmU7DOHP
lnt8vrRVShy32UCa0IxM
=wfFE
-----END PGP SIGNATURE-----
Merge tag 'v0.18.23' into v0.19.x
2015-02-06 17:07:47 +01:00
Max Kellermann
4a5528697d
release v0.18.23
2015-02-06 17:04:14 +01:00
Max Kellermann
d38034bb5c
fs/io/FileOutputStream: don't auto-delete file on WIN32
...
The file handle is never reset to INVALID_HANDLE_VALUE, and thus the
destructor will assume the operation shall be cancelled and will
delete the temporary file.
This was a major breakage for saving the database file and the state
file.
2015-02-06 14:36:55 +01:00
Max Kellermann
b3fe3e8b3d
TagBuilder: allow adding duplicate tag types in Complement()
...
Build a table of pre-existing tag types before adding new items. The
old way would check HasType() each time, which would return true after
the first instance of that tag type had been added, preventing
duplicate tag types to be merged.
This broke duplicate tag types loaded from the state file, because
this code path uses TagBuilder::Complement().
2015-02-06 12:25:34 +01:00
Max Kellermann
5489dec28d
NEWS: fix v0.18.22 release date
2015-02-01 12:22:24 +01:00
Max Kellermann
8a6b4db19f
Makefile.am: move org_musicpd_Bridge.h to BUILT_SOURCES
2015-01-31 00:05:30 +01:00
Max Kellermann
557bee61d5
Merge branch 'v0.19.x'
2015-01-29 22:55:18 +01:00
PHO
39abd3ecb4
Avoid integer overflow in MonotonicClock{S,MS,US}
...
This is Darwin specific: the previous implementation was causing an integer
overflow when base.numer is very large. On PPC Darwin, the timebase info is 1000000000/33330116 and this is too large for integer arithmetic.
2015-01-29 08:34:37 +01:00
PHO
a4f4fc50b9
Avoid integer overflow in MonotonicClock{S,MS,US}
...
This is Darwin specific: the previous implementation was causing an integer
overflow when base.numer is very large. On PPC Darwin, the timebase info is 1000000000/33330116 and this is too large for integer arithmetic.
2015-01-29 08:33:48 +01:00
Max Kellermann
8b5f47d3a3
decoder/DsdLib: raise ID3 tag limit to 1 MB
...
A bug report was submitted with a 600 kB ID3 tag that could not be
read by MPD.
2015-01-29 08:20:14 +01:00
Max Kellermann
ae7e1a22cb
Merge branch 'v0.19.x'
2015-01-26 20:57:29 +01:00
Max Kellermann
a289dcb9ee
Merge branch 'v0.18.x' into v0.19.x
2015-01-26 20:48:19 +01:00
PHO
023b9c1e7e
Test the existence of strndup(3) before using it.
...
This can eliminate the ad-hoc "#ifdef WIN32" and can also support other platforms lacking it as well (including Darwin 9).
2015-01-26 20:39:49 +01:00
Max Kellermann
ad1b6ef0ac
{playlist,input}/despotify: remove defunct plugin
2015-01-26 09:55:31 +01:00
Max Kellermann
30cb082932
ClientProcess: cast enum to int before passing to printf()
...
Fixes gcc5 warning.
2015-01-23 16:50:31 +01:00
Max Kellermann
645554d12f
configure.ac: prepare for 0.18.23
2015-01-23 16:47:13 +01:00
Max Kellermann
6cd5d73607
pcm/SoxrResampler: allow multi-threaded resampling
2015-01-22 11:37:18 +01:00
Max Kellermann
0d3b26b3aa
Config: add section "resampler"
2015-01-22 11:04:28 +01:00
Max Kellermann
276a0d9500
thread/Name: include stdio.h if HAVE_PRCTL
...
Caused a build failure with uClibc because snprintf() was not
available.
2015-01-21 20:40:56 +01:00
Max Kellermann
a2af158fd3
configure.ac: prepare for 0.19.9
2015-01-16 17:26:50 +01:00
Joshua Wise
1d8544ef3b
db/plugins/ProxyDatabasePlugin: add "keepalive" parameter
2015-01-15 14:44:55 -08:00
Max Kellermann
2b1194d574
release v0.19.8
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUtuniAAoJECNuiljG20USpxsQAI9cF01QXFnYMyIm77nqwm+C
AsDc5NvPq8YdVPfoSY5Zld/H2IJiNWe2iV7fcMD+u/pEHJU7M4LPf66UZz0XwxMG
h685yBD/UX3Bk5J/qHP+RiMhPo2Eo5wwxhzZ0bWhQAPOiZs0w1TIuJuA4ckxR0VO
V5472IPkG2LWU29Aoq/wlCdJPvdERCbFhRLZUzjfAMZw+/yTo9wRFuiy0w/yoUUp
ePF4LNLFDw97Nx03rHAwqz3lHLtnyMuyYFR6dgzuIlf92k8axp40pwnRZV6egNhg
5YEAUHQxw8wVhm+bWtgD5ZMtQk/zRiw7TwNMN0BlpMZ/8b4fF9r1/MuboKgY5WBi
oNprCzu9h8p0PXLRvB4hUc8x5MWD0QNTEYlW3fiib5vDmJrnHBc04Y9PJ4eAKH8E
J/fPAzPf2i2gtW5AqZ+RRI1YuugURrOlpmF2pp5YuHXJWKP930QoUfREs+gkaSU/
+I68U42zf/05t5BpuZ+OWcVNc0IABE/maqoBAxbg9sOWpxCmPJa3LYjlc1upR0Ng
TH+9yr6Np2dRz99qSAG3vU0jEfVwqelPveNapPxCsxBYl7GBQQyFd/qcQkrhMs/S
2SLud9ZMKHCsneicHZ4xTTP8Xzn65yHtSsxni6Lc6hCA4m7RPeiWW8RWef7MnCo8
Sz4SRBtBy/ZkuNddtU/+
=8rde
-----END PGP SIGNATURE-----
Merge tag 'v0.19.8'
2015-01-14 23:22:42 +01:00
Max Kellermann
f33d2fb2e7
release v0.19.8
2015-01-14 23:12:24 +01:00
Max Kellermann
a9eec35aff
release v0.18.22
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUtuh4AAoJECNuiljG20USnqIP/2PzYYBJp0GsQewDervdJYWn
5/6npW960l92aofvUxCJXKdNtOgfvioHZNa3y3dv/ENTNN29aS1W0DiBfqVYUzWH
gm47zWXT+OYGMaxp0lvb+XCnB8DxOaY4SPTq8BdlcX3ux7Do9QmANapG0cU3IIlv
rM9EORXTCOiWJhygzXg7lq6bDOZ3DBR1HCuQ2L5OJ9seHJl5S/whcxlZwjiQGP+k
KnxatYDGIIGX5nogZ35bTXgIQ9JhYVQbPkawQtXXsGfEN1WZ1VMC5JvI8MY/9Eey
nFx9iv/jReDFtUQgEfjaZEQa7FspIjphkSDI1JHEtzA8aChD706VFMZdzrJztCGz
X15b6j/UVmaDBvMHYKVjyfSs73BI8kVAnV3reN5pcWNHFgxR8j8fsAUOuNecI17x
xbI7vgkLxm/oP/XRBrYeYKexvlo8hKcOrFauaaBrf68aor/qgFXi6Z1OCbiPXm7s
cHZK9Y8qzdhhFt7w479lslGWPgNCSkPP/7WpNOAE9/4X85lxhNgIS4/Oujb5JMqa
IAHEHpltCWCguxrITFRJ6AcEovm8i9DOqk6PylU+9lao+j31dWFmX7w6u8qS2/Pi
Dj4r2TqD5odN6/7Ky0SKpixXlTWODGcRaf9aGfU+DoW9HGGvIL/BfTB5gDB039Wa
+PtpFL6PbGUWTirGSGoQ
=Ro6Y
-----END PGP SIGNATURE-----
Merge tag 'v0.18.22' into v0.19.x
2015-01-14 23:12:08 +01:00
Max Kellermann
8534f2d1e2
release v0.18.22
2015-01-14 23:04:49 +01:00
Max Kellermann
e8debd2e45
output/recorder: dynamic file name
2015-01-14 22:03:26 +01:00
Max Kellermann
8b217d5313
fs/io/FileOutputStream: use O_TMPFILE if available
...
The Linux feature allows writing new files to an invisible file, and
then replace the old file. This preserves the old file if we get
interrupted by some event.
2015-01-06 19:38:55 +01:00
Max Kellermann
674d14879f
Merge branch 'v0.19.x'
2015-01-06 12:54:46 +01:00
Max Kellermann
37e9010887
input/async: reset the "open" flag after seeking successfully
...
Fixes a problem with the "curl" input plugin: IsEOF() always returns
true because the "open" flag was cleared by
CurlInputStream::RequestDone() when end-of-stream was reached. This
flag stays false even when seeking to another position has succeeded.
This patch resets the "open" flag to true after seeking successfully.
2015-01-06 12:46:28 +01:00
Max Kellermann
4bd2c75056
thread/Name: disable pthread_setname_np() on NetBSD
...
NetBSD's pthread_setname_np() prototype is incompatible with the rest
of the world, and it requires to pass the string argument as a
non-const pointer. Instead of working around this misdesign, I hereby
disable the feature on NetBSD.
2015-01-06 12:08:36 +01:00
Max Kellermann
b3435ae432
output/recorder: implement send_tag()
2014-12-26 15:03:22 +01:00
Max Kellermann
412bedb697
Merge branch 'v0.19.x'
2014-12-26 14:40:32 +01:00
Max Kellermann
940cab8620
Merge branch 'v0.18.x' into v0.19.x
2014-12-26 14:28:52 +01:00
Max Kellermann
53f4044890
util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compare
...
New in clang 3.6.
2014-12-26 13:43:32 +01:00
Max Kellermann
805caa30ce
configure.ac: prepare for 0.18.22
2014-12-26 13:23:04 +01:00
Max Kellermann
c4c2da06b7
output/jack: use jack_ringbuffer_get_write_vector()
...
Reduce number of libjack calls.
2014-12-24 23:14:15 +01:00
Max Kellermann
a56949e9fa
decoder/ffmpeg: support interleaved floating point
2014-12-23 20:51:08 +01:00
Max Kellermann
ea96919b80
Merge branch 'v0.19.x'
2014-12-23 20:43:15 +01:00
Max Kellermann
43da4c0eca
input/mms: limit the mmsx_read() size
2014-12-23 20:34:45 +01:00
Jan Brittenson
35db88affe
DSF ID3 tags hitting 4k size limit
...
Here's a change to dynamically allocate the DSD ID3 tag buffer.
Pretty much anything with cover art is going to exceed the existing,
static 4k limit... Here's a change to dynamically allocate the buffer
and sanity check it at some upper limit. I rather arbitrarily pulled
256k out of thin air just to keep a corrupt file from causing it to
trying to allocate a buffer larger than available memory.
2014-12-23 09:49:33 +01:00
Max Kellermann
e38faca455
configure.ac: prepare for 0.19.8
2014-12-23 09:48:31 +01:00
Max Kellermann
8400da9934
release v0.19.7
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUkcmtAAoJECNuiljG20USLuwP/3MjssxpUkq6aN1beyNACWJ8
Zgr/ibDjxYJY+UAHUOycnJQ8WNpgfXNSR4F5jQHznJdpemJCZCeBd2s5yelEdu0C
SBjJ9FiKPeu8or5N34CPmRQDmDGHv0II4/ySmzlBhH4XRV5JF5li/j4KtAlOCqCT
GNnlmgn05o+oX4Olpg/id6H7wvny+YDY3p33sJmi+djBnSbJyJNvk9NhAr9n4I7Q
FfGHbTzRLSZKHa47zzXag30PBj2X8x7NOAcAX7/evQpw9Gud/8CwXKk21kp6L/fv
RJnj4lLtkj8MRc+8vskZ9EXgYr3yC/cldP8Fw8qsY/t7d8UFUN8qFqpq9O8IPnga
D4hNpq7VF9ZxMhQtxBiT3cRvjTXBp8J/B7p2YDuYHBhIZh8IPzjDCyF4CzlN/470
3zTqq/aar93AeI/6MQlpQPBK1DGvrrHBVP3Mj7cCTbx61P7/1xEIxYntRIfJw449
JRJDJKjdyOY4+Sqm3Agu3WiQlyOzZXmqM3E3FFeul4mUvcOKhfbZxjayYsGlfigA
MHge1wif2aOe6IU334DUD5V0m61MMoefznEvWUdAZHtdvQox0ovDmwwFRizX2fGc
rlUhoUOXWjjGbTI2VjXsBklzh8P+MxQ8OiJGw+V4DBI0XL+A2tpqISs9mpCVPwQ0
T37uc6kdDB99noMuD2cw
=+4Cz
-----END PGP SIGNATURE-----
Merge tag 'v0.19.7'
2014-12-17 19:27:59 +01:00
Max Kellermann
6d89020f80
release v0.19.7
2014-12-17 19:20:54 +01:00
Max Kellermann
9c56c49e73
release v0.18.21
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUkcgMAAoJECNuiljG20UShwAP/3qGPv1feFJMOQbhHF+K8eL9
4oeKJAblVR98+jsdu8Z7GidGGXrvIX8pxGWJPLLYSa2naR9/gtTxpiYZPEd2ex4G
1jbFzI0GmU08I5x9sUPstX4GoDVfWnV3ICYzY7z1VVhlxYXlI+dHOPz61FxaLWYM
i/H4WR7lvSwyOsYaFtfqZC9SD71XQ0V56yDqaDK6a/NbMg0WQQMghmH0swkEk/FK
wN6nxEpFpTtOjBLjF51TyNC5JT1lxXDYwxYmrtd6rxkNqhN8duCRXq9IK7MEGync
LNtHKGMrcXwLBSAPM6GTrY0StCch6fEBhOg0Tr7JQ81BSb/1XKzimbxCCULDwx/P
/hN4lGr66tudXHFaRQX0GLxRpkpKtanp7+xtZ5AhGh4Wk7YQ62nb8RN3qCc5x2Oi
cvnK6bewMi7rZoIejAhaXtbKNPho/H5TpE404C+ScnWyEAVtly45xgECNdzllhfk
k4Kp4rW2CNmHTNbZRFh1Qre2g47a9rhZxoxXx4X0fi6YSruekQC3qjdloom5VN2I
8d7NloQoJ+wjkYXuZ3EoxdBhbdViZBMg8CP99KFc7sYQTGmYtrKyjZ5EiOAVw3p5
rHoTrGdZr8aKPMcKQPo4GaTkB9njE4a4l+uVq5SOiRSfpDeRqvhIqOrUz4EOf8Ic
ryT0jwFGfKhSHG4tz+9K
=WjqC
-----END PGP SIGNATURE-----
Merge tag 'v0.18.21' into v0.19.x
2014-12-17 19:19:13 +01:00
Max Kellermann
acb798e544
release v0.18.21
2014-12-17 19:13:47 +01:00
k44
773de38bd9
playlist/embcue: fix filename suffix detection
...
The definition of the playlist_plugin struct member of the embcue
plugin was incorrect.
2014-12-16 18:43:05 +01:00
Max Kellermann
adfc5db3d2
Merge branch 'v0.19.x'
2014-12-15 00:46:56 +01:00
Max Kellermann
a48704925d
storage/nfs: add timeout
2014-12-15 00:45:13 +01:00
Max Kellermann
fa4beeee75
decoder/ffmpeg: detect and fix negative time stamps
...
Works around assertion failure due to something that appears to be a
(minor) FFmpeg bug.
2014-12-15 00:40:46 +01:00
Max Kellermann
d8351772d3
configure.ac: prepare for 0.18.21
2014-12-15 00:39:52 +01:00
Max Kellermann
82da364b8b
lib/nfs/Connection: implement mount timeout
2014-12-15 00:05:53 +01:00
Max Kellermann
02563a35f0
lib/nfs/Connection: fix reconnect after mount failure
...
When mounting had not yet finished, SocketMonitor::IsDefined() was
always false, due to the workaround at the beginning of the function
that calls SocketMonitor::Steal(). This commit drops the IsDefined()
check because it was never necessary and breaks reconnect.
2014-12-14 22:49:16 +01:00
Max Kellermann
a543627abd
lib/nfs/Connection: fix memory leak (and assertion failure)
...
nfs_destroy_context() will invoke all pending callbacks with
err==-EINTR. In CancellableCallback::Callback(), this will invoke
NfsConnection::DeferClose(), which however is only designed to be
called from nfs_service(). In non-debug mode, this will leak memory
because nfs_close_async() is never called.
Workaround: before nfs_destroy_context(), invoke nfs_close_async() on
all pending file handles.
2014-12-14 16:02:47 +01:00
Max Kellermann
4b8d258cff
lib/nfs/Connection: fix crash while canceling a failing Open()
...
The method NfsConnection::CancellableCallback::Callback() will always
invoke NfsConnection::Close() on the file handle, even if the void
pointer is not a nfsfh. This can happen if the Open() was not
successful, e.g. when the file does not exist.
2014-12-14 15:16:01 +01:00
Max Kellermann
cc143105b8
sticker/Match: add operator "EQUALS"
...
Mapped to "=" in the MPD protocol. This is the first operator,
initially supporting value matches in the MPD protocol.
2014-12-12 22:16:00 +01:00
Rasmus Steinke
7d9aa5b716
vorbiscomments: Remove support for non-standard "album artist" tags.
...
MPD used both "album artist" and "albumartist" tags and mapped them to one tag.
This could lead to issues, if a file had both tags, causing MPD to send
a list of albumartists instead of a single one.
Since "album artist" is not a standard tag anyway and even its originators
started to use the proper alternative, its time to say goodbye!
2014-12-12 18:28:11 +01:00
Max Kellermann
2fec463542
util/HugeAllocator: disable MEM_LARGE_PAGES on Windows
...
MEM_LARGE_PAGES does not appear to work. Instead, MEM_RESERVE appears
to be necessary. Until I figure this out, this large pages are
disabled.
2014-12-12 13:20:58 +01:00
Max Kellermann
4741d7bfe2
Merge branch 'v0.19.x'
2014-12-12 13:14:29 +01:00
Max Kellermann
673336297d
decoder/ffmpeg: support stream tags
2014-12-11 10:52:40 +01:00
Max Kellermann
310ab7d41b
NEWS: mention ffmpeg/MixRamp
2014-12-10 14:01:12 +01:00
Max Kellermann
fc1796f3e8
decoder/ffmpeg: support ReplayGain and MixRamp
2014-12-10 13:45:29 +01:00
Max Kellermann
d62a738460
Merge branch 'v0.19.x'
2014-12-09 14:04:11 +01:00
Max Kellermann
0cfd4fff62
playlist/Print: don't skip non-existent songs in "listplaylist"
...
Skipping those songs silently will confuse the client, because
commands specifying the song index within a playlist
(e.g. playlistdelete) will be out of sync.
This copies spl_print()'s behavior to playlist_file_print().
2014-12-09 13:36:48 +01:00
Max Kellermann
8904127c10
configure.ac: prepare for 0.19.7
2014-12-09 13:09:03 +01:00
Max Kellermann
de43bddc1a
release v0.19.6
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUhbH6AAoJECNuiljG20USe/4QAJdMAjnggHbcC/JO9pdJ/5B1
vK+wJqqpNkTpjRaI1OGmxWJCUYKFLCDhoSoPjkyxZ7qmvEDdhQo105/iSod1DOb7
4wAbtrCCfkHKwNZHI2Zf713urBTkT4AZNkSmqBnFRF+sJbiKlQ4Y1EXYG/cwsu63
8RZx3mOURi52OCYuhzurZ2UDqLj0xJ4bFxRiqHV0LLeOAyGa7P6O2M4WwjNsDB9e
9o2ckwis3Yl+0E8FYW57WkFiSkZ40xgNa6O6gOWOYsjpey45IQrxhB5ewy/svIwZ
jeVVnd12mkFAXG3ZBQjwAe+/H8yG5NdqhL7llznuYaX6Ii9zeAPgccK/rZ+kYKe8
gg126KqI9lvUFV45tfoxVqUFiJu5zB0etSto/hNsIdt6ngnuU86WJ3c/X0tDxhN/
GoIKRQxPkJ5XjNdBuRx3ELWx4Jj1UM7CHgQBaqnr0bwfWfFa0IinBwnPw0HqYyBn
p9HZqeVrD3/JDFxungZlWaDk52iScs4Jc4ovGP8UKQVfdkS66awxcWn1gXroXla6
UOslSkB/Gu7WluGzgCkmvD43PY/8oZlOeiP3xmsDgoq5Dg+z4GAw3NCn7/i8Mt5I
HTjNBhLhLLoTjFmcD9MwQtV5/E1UnY1VHTpoZa8dXueyxPgMFmh14BazY+bPnfpw
lSNAo7p0Mh8MdWrRN2Vc
=QvY3
-----END PGP SIGNATURE-----
Merge tag 'v0.19.6'
2014-12-08 15:22:44 +01:00
Max Kellermann
c46f48abec
release v0.19.6
2014-12-08 15:12:41 +01:00
Max Kellermann
4acbf7b90d
android/build.py: update FFmpeg to 2.5
2014-12-08 15:05:49 +01:00
Max Kellermann
cbc1a58e93
release v0.18.20
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUha5vAAoJECNuiljG20USdLEP/0NCwdnvCPVdkZ7RwsdCRp53
jv86eu92uFVQJrW5/NQahngOwqNRsjNRX1EiEalbEjqCzMxDjuKCBukdteXg0Q2A
igwDDrDwpm9tvzilsTAdjEH3gRcuxDRWfF259bZXbnxksVMuwzo31YraU6dBUkSc
qPpQtbS4Op0paFG0TieBAt07TZ8Wb4KkAM86vBu31JpXZkXGyT6B6N3qe4WtpAN8
l5qAWstBRog5JM3Q99FNDnCFG/2n93CEZjwN8FlQgkFhyhhDKF5YOhZNQpqTEbh9
nxdo5V3OC42cx92V1CxrzkPKhnBIrSTGLg+Yb9S+vF3nWX+cBPpalr/rw5xZTrdH
3zER+hOHvkMZpEZDiyUx5bkF9Ay2BvJkdJCSFSTq9HmzksTnEJ+0r44cO2rwqOpx
R6KZPLTmObjCjmnMM+kbd6e/T8WEkcEotuYoocf3lep45roGAYuHErWW3+B89+4Z
f0Y8uwPQTWrOGSRKXh2liWcHeN114Uwvb0ZyO+/0Oe7v1Id/IW7zC2XfSpY58dok
/yRXiElow1LVLISixBBUAnwkx0M+CyQJqCS/nQpedPArLos+g4Wo3R+QnQEnOu9C
e1cRY3qa56lre6BnE+rQ3aMNVGgfjsU4t3mSjQlCp1PbU7izvlgMHJcyErt6d5aj
nA8VwjS+1PCODS/HkCqc
=APdC
-----END PGP SIGNATURE-----
Merge tag 'v0.18.20' into v0.19.x
2014-12-08 15:03:09 +01:00
Max Kellermann
1b5f33a435
release v0.18.20
2014-12-08 14:57:17 +01:00
Max Kellermann
41b4a63f2b
decoder/ffmpeg: support FFmpeg 2.5
...
Version 2.5 fixed an API oddity, however it broke API compatibility,
at least with C++. Disable the workaround when a libavformat version
is detected that is recent enough.
2014-12-08 14:25:34 +01:00
Max Kellermann
d8fc2db910
thread/Id: drop "::" prefix before pthread function names
...
The "::" to explicitly refer to the global namespace appeared like a
good idea in C++, but it breaks with C libraries that implement
standard functions using macros (e.g. musl).
2014-12-08 14:17:17 +01:00
Max Kellermann
dc11dea7cc
configure.ac: prepare for 0.18.20
2014-12-08 14:13:20 +01:00
Max Kellermann
d435dcdca4
configure.ac: make GLib optional by default
...
Only very few (minor) features still depend on GLib.
2014-12-05 00:21:48 +01:00
Max Kellermann
0debba0f6e
mixer/null: new mixer plugin
2014-12-02 18:20:44 +01:00
Max Kellermann
be492ed108
android: update libFLAC to 1.3.1
...
Due to security vulnerabilities.
2014-11-28 21:08:27 +01:00
Max Kellermann
03d2fb450f
configure.ac: prepare for 0.19.6
2014-11-28 20:13:57 +01:00
Max Kellermann
737a56a030
release v0.19.5
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUdiYnAAoJECNuiljG20USDB4P/3RGHBV5XgdInmYKjGg89hex
YRiy3BVvrBri53wkj+3YwOi05Cx0fp0pCuwQ9Nm7bmPCwfdC3ASF+UBlBBhnLdfc
dlISXDHciuKDJwiTtTlBvaKCENoZhjAJQ1SOa5zceH7j/V/XbY0FauHCeE8Ek7ht
KjimIt1ft0mdgsGNfyisdfbnh/3r4T9V9tBs/wnr7oDTYS/eUX8vCDr5qYIZipjx
W6pug2m4nfDtHYtN5gv53WYCIm7MiXo9vh7hCjJHd3T3xqKwdWVuz5RRcZcgd9yT
WWlzOKAI1cgmU7rZaV6Gu+tAq9g7MpNLOGoeN6mhH9E8V16rKqvCiLaXMK5wEGs9
JWGsTBcbTnSCdG1iivJtP2kOGVHXvNthbSunzwmbowMATi6xIBm8AoqidSzCaW1F
C7mss8VlhkHdCtHTvyK3XCE2wGEbx4OfsfsL3PWBonrs0DpNOR2AqWQYLsZUhbff
RV7aeyphMVvgLP67cT9YnGswKGEPOqP2EO9Mh51AQ7wiUESZ+O5J9YHWCc0E3SML
qs9A+lpA8fstj0QJewx/HNofiHXw5A2THjs/BVqs3vYkcHnTI94Nmdxps82r/rEA
oy9d6nQqglkPJZF3JwHqJMj1VtBIhihaHBpnLeyegjtiajZV6mVNVg9ezt9EpEA6
OjJFh2xzQJ7w5qL0gy2R
=1kbY
-----END PGP SIGNATURE-----
Merge tag 'v0.19.5'
2014-11-26 20:19:17 +01:00
Max Kellermann
67cba251c8
release v0.19.5
2014-11-26 20:11:42 +01:00
Max Kellermann
27ce80544f
release v0.18.19
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUdiMjAAoJECNuiljG20USjnMP/jQl/aIEiUwbwqq1F8+0wlFh
lX5xix5+7QuvTH2Lw5brNSRdVRsHGGeDqVcSi1zY4tgNXK/EBmS1mDVKWQO5qJd9
v+ueDRr7xI3HFECe0J7h2Q5GGD/YkeSyjB2k7C7I7t1axukLOXbP+qVyz6/d1azZ
SkUKKmIUD4KdJuDWy34JYYiltGl94JNyTBvC+jJV4Mbg2qd7XV6MSvJipiK6aM05
UsEza9bF/jG2aHL/xtR+dEnNLAoFoZ/h1RqUoYw4DLEKxfip+E3MD4sEx6Sg8XSv
v2rZQrMhl2LvJkwCjo57KrJ4YmHK0U3zg3ElDefqRsW4J10x5d3hhOINJPpHUpyZ
T5RvoDCJ5BL+6wg0tA57338pNydSBQDV5+WjI9+vD8ahnZlFgjY+OoJDxkxtFlYz
pLazEQbkUWlU62ZGW/dVpwgYInalNH9ZTrvelwXtGmwMfLhp01S4DHX3ipFgmMGd
do3x/FoVRyOnFWQPotga3+ZoARqmXhfQ70DqESoajBHeLTzYBs9vh+fw6y1iVeGb
rIBEIyMPlyuPt+2NrLflo6o0VMYB8MV3nh3P3DX8Ywavae3+k4WPGx2w/MEM34lF
sWUDXfZeCwJ5rrXeyP/s2C9ZmJ+Bm6WlxQ0gUZXMtrfDShPBY8gHzGi4m3ooslde
OZCIokCaATDa9Fp6CRD8
=I9PV
-----END PGP SIGNATURE-----
Merge tag 'v0.18.19' into v0.19.x
2014-11-26 20:02:57 +01:00
Max Kellermann
04f627c2af
release v0.18.19
2014-11-26 19:58:48 +01:00
Max Kellermann
12b6959ea2
Playlist: reset song priority on playback
...
A priority should be a volatile thing: it should schedule a song for
playing back once, but it should not affect the next time the queue
gets played.
2014-11-26 08:54:16 +01:00
Max Kellermann
70b5a81a29
{Tag,Song}Print, PlayerCommands: report song duration with milliseconds precision
2014-11-25 17:46:43 +01:00
Max Kellermann
83fd822e8b
ApeTag: drop support for non-standard tag "album artist"
...
This was used by proprietary software. MPD adopted it a few years
ago, which turns out to be a mistake, because it now creates problems
for some MPD users (http://bugs.musicpd.org/view.php?id=4168 ).
2014-11-25 17:07:08 +01:00
Max Kellermann
3cef348f30
lib/nfs/Manager: defer NfsConnection destruction
...
Avoids a crash that occurs when NfsConnection::OnSocketReady()
dereferences itself before returning.
2014-11-25 13:31:18 +01:00
Max Kellermann
fa4d202e71
decoder/mp4v2: remove because of incompatible license
...
libmp4v2 is licensed under MPL 1.1, which is incompatible with GPLv2.
Unfortunately, this means that we must remove the plugin.
More information can be found in the Debian bug report:
http://bugs.debian.org/767504
2014-11-25 13:10:52 +01:00
Max Kellermann
a254f5a3a8
archive/zzip: fix inverted error handler
...
Set the Error when zzip_seek()==-1 and not on success. Fixes a crash
after seeking.
2014-11-24 22:08:50 +01:00
Max Kellermann
143c735f96
configure.ac: prepare for 0.18.19
2014-11-24 22:08:50 +01:00
Max Kellermann
bf15cac980
Merge branch 'v0.19.x'
2014-11-24 09:00:14 +01:00
Max Kellermann
951bad46e0
decoder/{dsdiff,dsf,opus}: fix deadlock while seeking
2014-11-24 08:54:30 +01:00
Max Kellermann
bbc618b8f9
configure.ac: prepare for 0.19.5
2014-11-24 08:09:44 +01:00
Max Kellermann
26382713c2
release v0.19.4
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUa674AAoJECNuiljG20USNMUQAIpl0/cJI98dljXWZ4uzaRoc
JMPTvWkVUP9qBN3VnNISR+2NXsL7iGO6rXh9MACpfv8mcOf+/jg8LCX/3/RzDkP+
lnhFqQ+xnl3TUjwpABKM2lU87I8QXamtCbxEvONTpcH4Dt/GVfBolrlzBu1G17cF
7f07uZntpz/Dhtg0SWCVLS+QDGQtDNCgpXcfGlxWsGfEBWKAC+Aifv+2QDA0nXOU
WfOU2r3vV3UNmQSu0/O6cyB5Du01SVVYSa5BNpLu3o6CHawAhVcTXdLX12JSDahk
Qjy9VAF9bX+odZJ9M4xAlRBZYZWKfiZ6Dt0FevevqAllkd2GlQJPXWWXWXJ4PWd+
a3K/js1hLgCIO2qk8aDKaFGTOnVk5F5eFN6d+jh5gwcuFiGa0CcSWxaCEe7vBVy3
CTukuUBlgN4hA9gBNNvJrpbV+BO8ZY1LkS6w3E95Qz3VrwclTl5qKW2+6TYLMKBA
VIBQM8TwOHAKyhn50vhBfk6Zz6c28LkrMc0Ycm5xFD1I3fC6E62vqDVfBUMr9HJi
fG3PmxcrSTH8ZKgSADjF7DtR0M5munUrQhw7w0pwXUpKuDvUg3nIHulu88Dl9rZq
MDODNRpBkQwGXs9i4SxLTSA9nQtlAh3x3mqtjOf1i2jhkuSJ8R8jQne+8wDaT0Bt
dXD9h+qc/8+FOnrB0uYd
=LYOC
-----END PGP SIGNATURE-----
Merge tag 'v0.19.4'
2014-11-18 21:47:20 +01:00
Max Kellermann
d6bc5c35a7
release v0.19.4
2014-11-18 21:40:52 +01:00
Max Kellermann
dc03f003ac
release v0.18.18
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUa62OAAoJECNuiljG20US1CkP/3YaAg76hJDaeFAyi7/10lOs
yI8tPmpQk8S+nuclsBJeIr+9xNRsjb1ebW4tI9uBRxqMT10SF7rMCH/qAmgnS9tQ
6M48hF0o9xegjz4x5BosEJjXtiekYN068Xi/hk+H27guVy14f6Xx7oRpdr5oI/O0
F83D1V2+vs6FuOyn42UQQNHVlYMac5SScHoSFomnwRYWI2wb2ay4H5Dlykb5BUl0
tTjJ2lYwN18vUoMxjmCNS+bLd7jag6FZ/PXntB1zXe22R17eAIuFZAMKaQvnQtUi
QZjFPhpd+mBsZLfokB3belyNNb4F6qSG2W6lZrFRB+SU/LqnY2AL/dxPJD9eiufs
5jEIOw9hNBBKo217+hkPwp5pAF50u11tKXUXbKGeR42zAO0zll/+g2afVwoqdAfD
llPDyQyXiB3tmA1bgJD7u9gaud3UaaXoxajPb5LnmklzGxiN5u1rnoo+E5ppBvQ4
31wPHGpzsjxEC7Xn9hErPP17jYXY1HT/xRb8XZNrFqJVZxSyjqQlDWomhCWDcvPc
Du1PyKaQ08zgElEM5trwC9RjJxQdr0sckQcTnYC/0ksfJ7Nhh8M2yepEI/gmWbnO
JBQ7YzpQhE9oMMH8jzVLLdC44yF6QvXcGQ3D9eUfwvPk9Z70mHlNI3Q6kbZ76U5j
RHLp+oSaxFUXfPdciZaw
=GO+k
-----END PGP SIGNATURE-----
Merge tag 'v0.18.18' into v0.19.x
2014-11-18 21:38:44 +01:00
Max Kellermann
7aa2104596
release v0.18.18
2014-11-18 21:34:03 +01:00
Max Kellermann
460cfba6ff
QueueCommands: workaround for buggy clients that send "add /"
2014-11-18 21:31:54 +01:00
Max Kellermann
c8b93d6573
Client: assume uid==0 is local socket
...
A negative uid value means it's not a "local socket" (PF_LOCAL).
uid==0 means user "root" connected.
2014-11-18 20:56:27 +01:00
Max Kellermann
f37481f843
DatabaseCommands: add "window" parameter to "search"/"find"
2014-11-18 14:31:27 +01:00
Max Kellermann
7c6b991de7
decoder/opus: add MIME types audio/ogg and application/ogg
2014-11-12 15:16:34 +01:00
Max Kellermann
82460aa49f
configure.ac: prepare for 0.19.4
2014-11-12 15:16:07 +01:00
Florent Le Coz
7e7b403043
Construct a Null AllocatedPath if the filename conversion into UTF8 failed
2014-11-11 17:15:19 +01:00
Max Kellermann
c3f6502be2
release v0.19.3
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUYeOEAAoJECNuiljG20USToUP/2g/M7jKlM1MpADeFh2TOYEC
dnSDPFCMosu1Hjxyz/rzwqOh7FlMnYPtANtVn90v4D6XVkuhv5WMwSnlMBWJXspy
VWA6bewGihbWvDvOcLcYsb31VH78JnvNjxxDaeakVZ7Bq43wQBJRNi2VKEKMmg27
Shp8MUL+UXsMMtLABvZlhajPQS+CNQB1DijP7wlemrbPpmUtmeHEgbpmQk9BKBq0
eXJt5QRQRgI9J51j1yaXSaeKsPFk/2AV36KMBv3kh+rgCGWetd1XeBkknN/HjNw4
2qWsQ8Ng3s/kOCZhEa0nXqnR+w2RtpOJ4bOQaIDeBSzCdXSeDWq5yh/kHKHsXzO4
5uq++GwCcm/Odwj17rJ4wJDGnl4DkP8abQIPb4AiwfpuUtQ+fHvQuNU0Dc2SY4Oz
KkNU4nIcJwaHlDAQDsWjowAJJC2W0GPSGzVKCWjH2W3kmJZq2hV3o3y3YOMH8gpN
wmdmqE8JKCOJm5QxnfoiMKoUxUgNMxN3iceMnDkNqz/g1uOq5TUk8B5adLuY0OSg
n+2eDBaUNe2tCbxgIeKxVlXrWVBZyrzwFk3FGyVuGhobmVJ1Wwvx5kOIVvwo0JTC
LSc8FP4R8/87G1XlVMo0alqChLpXbH+ncaGhdN74pKVP8TFtJCoTPgRPj+svF9YY
A7AiNXCXCCOD78gKYCtu
=GH2D
-----END PGP SIGNATURE-----
Merge tag 'v0.19.3'
2014-11-11 11:43:52 +01:00
Max Kellermann
e5217e6ce9
release v0.19.3
2014-11-11 11:21:42 +01:00
Max Kellermann
c98cb1d6f9
decoder/opus: support chained streams
2014-11-11 11:20:18 +01:00
Max Kellermann
23465ad985
decoder/opus: improved error logging
2014-11-11 11:20:03 +01:00
Max Kellermann
7886a14b74
decoder/opus: fix mistyped LoadEOSPacket() return value
2014-11-11 11:18:51 +01:00
Misty De Meo
134cb6a017
Main: fix compilation on OS X using non-Apple compilers
...
Commit d42c0f1dc5
added an OS X-specific
method of calling mpd_main_after_fork(), which uses Grand Central
Dispatch. Since this uses a block literal, it breaks compilation on
compilers which don't support the block extension, e.g. non-Apple
compilers. This affects users on older OS X releases with GCD (which
depend on older Clang releases, or Apple GCCs, which don't support the
C++11 features MPD needs); or which don't support GCD at all (10.5 and
lower).
This patch changes the #ifdef so that the non-GCD code is used
as it was on OS X before this patch if blocks aren't available, via
checking __BLOCKS__ macro.
2014-11-11 06:22:24 +01:00
Max Kellermann
8d036c4b7c
pcm/SoxrResampler: round output buffer size up
...
The old formula calculates the output buffer size with "regular"
rounding (to the nearest integer), however sometimes, that is
insufficient and the last sample cannot be resampled. This causes
audible distortions. By changing the formula to consider the worst
case (always round up), this problem is eliminated.
2014-11-10 22:52:17 +01:00
Max Kellermann
c64ad78c7b
decoder/ffmpeg: support opus
2014-11-10 18:00:30 +01:00
Max Kellermann
4a043a915f
configure.ac: prepare for 0.18.1
2014-11-10 17:59:06 +01:00
Max Kellermann
8ff0d99092
decoder/audiofile: fix bit rate calculation
2014-11-10 09:00:50 +01:00
Max Kellermann
ff6f1655f0
input/curl: ignore ResponseBoundary() while seeking
...
While seeking, metadata must not be updated. ResponseBoundary() was
added in MPD 0.19.1, but I forgot to add the IsSeeking() check there.
This caused the "seekable" flag to reset.
2014-11-10 08:45:19 +01:00
Max Kellermann
b5ba94f1de
tag/Set: do AlbumArtist/Artist fallback only if AlbumArtist is not disabled
...
On "list albumartist", songs that have no AlbumArtist tag will use the
Artist tag. However, if AlbumArtist is disabled via
"metadata_to_use", the TagBuilder::AddItem() call is ignored, and
PrintUniqueTag() attempts to print a nullptr string.
This commit fixes the problem by attempting the fallback only if
AlbumArtist is not disabled.
2014-11-08 19:25:01 +01:00
Max Kellermann
2d9876a261
Merge branch 'v0.19.x'
2014-11-07 19:41:19 +01:00
Max Kellermann
125eb01e03
decoder/ffmpeg: support opus
2014-11-07 19:22:26 +01:00
Max Kellermann
6f23e91e33
lib/upnp/ContentDirectoryService: swap uri_apply_base() parameters
...
When uri_apply_base() was moved from db/upnp/Util.cpp to
util/UriUtil.cpp, the parameter order was changed, however without
swapping the parameters in the ContentDirectoryService constructor.
2014-11-07 18:43:00 +01:00
Max Kellermann
1bd8a322f5
input/AsyncInputStream: set Error when seeking unseekable
...
Fixes crash in the "audiofile" decoder while logging the seek error.
2014-11-07 13:57:57 +01:00
Max Kellermann
9f8c2b3b56
configure.ac: prepare for 0.19.3
2014-11-04 09:24:09 +01:00
Max Kellermann
303d67aed2
release v0.19.2
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUVifPAAoJECNuiljG20USJbYP/2SjixBWtHjHn1wF9K3tRzs3
7GGSBxxBpJVZCTg/PGRJ9m2BNJvocBPhw3WN7PU29xi5kBxDy5yvBcc58OzYHz28
HVZymj8zhdiDqULHPn6b9px6f4Oe8+1xh9q6gwR8rZsRAXKYDrC0GPDMGBeSkWo1
ycnSVTcZ4CjfkM2/jfnCc79q4mC+k2BR5T9OYRnznThVMx+gimMwLFYBjNNdh1MT
ugAxXVtpDs2aTR8fqu/ADGLJosfTjzGdqQ3eowOqVXmsmVIttBGruZdKyrN9KAtU
FfPf60zZ3I8qKppArfEoJAejNyGbhIg1AqX7J7IxHMI+zjlo2kGnEcVFJaG5zZb/
GQThrzGXRPFLlvVDtzfALmBNo3gN0y4I73exlpRCupaxZdFaD5UUPlaLak8r9bt5
30YBBxs7ydIPqs25AwZ9f94NT2QrKityLv+O+Q8lz8AfurqJnuOwEo/HuT4Bxv47
pSx86TtokknyN0A3lw5ttIMbTqN5eNHjJY4PulGJPEPfKjn9p4NLtLrZjT4fnnKG
GKXYcMzeOhMKszbHzOR7dcjI0uKXyx4r7LE4SdL+3msCYbyXDTbCirdusZ1pZDC3
ttkSf+a/dILHZagEAN37t53/NlsAjxjJzenKD4H6Eprxm6er24kSWu+W410b3Bw0
jYLYGXCWVZyJ5dqpTcYb
=NiFd
-----END PGP SIGNATURE-----
Merge tag 'v0.19.2'
2014-11-02 14:06:05 +01:00
Max Kellermann
6a7f6cdacd
release v0.19.2
2014-11-02 13:46:32 +01:00
Max Kellermann
5715342fe0
release v0.18.17
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUViZ+AAoJECNuiljG20USnkQP/Ry2OyaQhmDD6Arc5MOiPJQH
Iast5sW+3ufWsgUr6PE5aPaHivlNGyRLFvvwgZ+h6bFbhJpsHrh34ZSFJQMQYONh
zWxQ+FJG83zmyAhZzEvZb6zsLIrjepqp403ltX0HKV1Ax+F3MMZp9DGy1tqaMZyX
C4Bc+wrWpgtF1Yl7/oL7v2niEvzLM7wpP6HQlQNZ9/IqOUcx4u4zmv3mkYAF2o2U
upAsNo2mFyPEzfcT6wJM2w20Z+li9FqYUIU6hp+wXM3411OhsvKeo1I0ygZ19Dlw
nfzEp+l/UUgCOKJLp/672v0w1nbGvWhjyy49pa95Qk88LBDKJCWxEgbt7SO8Uh5S
qvkWt1JI9HyFrhn9khYV986He0MU48qHTvgGDb7ZM9YiiYZR907N0+X6u57raAAW
Dlrt0Z18SS/galhctlO/QRg+/1FldTimYRmZTqAApMf2qfpY2BrQX9hAgDnuPZ2D
vcJIJG73+4F7Ypzhw2BGbee+IZMvGIuQw8Gf+NOnaVui5chi5U1S3AXUJoh34/Du
jzhFA7J0e989779elgcmPxVdm6n2Fa/AdnslUcL04lNaOUEKY9hkwaZWh/+8V51E
/6jf4W4VMUrfOChjPjhGFbSegO4bL0siA4GkUQat9KbgT2MEVEXBuN8wPaHw9+oj
4Yk5k/Ibo065A+83A7ng
=dFx9
-----END PGP SIGNATURE-----
Merge tag 'v0.18.17' into v0.19.x
2014-11-02 13:46:09 +01:00
Max Kellermann
38a0d15190
release v0.18.17
2014-11-02 13:06:20 +01:00
Max Kellermann
56f763a4a8
input/curl: forget Content-Length (and more) after redirect
...
Fixes playback of redirected streams.
2014-11-02 13:00:28 +01:00
Max Kellermann
1f59701c46
Merge branch 'v0.18.x' into v0.19.x
2014-11-02 12:27:46 +01:00
Max Kellermann
32b5654a6e
Decoder, Playlist: ignore URI query string for plugin detection
...
Use the new uri_get_suffix() overload that removes the query string.
2014-11-02 11:54:26 +01:00
Max Kellermann
6ad336743d
PlaylistFile: don't allow empty playlist name
2014-11-02 11:52:48 +01:00
Max Kellermann
c882568ccd
playlist/m3u: recognize the file suffix ".m3u8"
2014-11-02 11:50:56 +01:00
Max Kellermann
f6b2899dd2
decoder/faad: remove workaround for ancient libfaad2 ABI bug
...
Many years ago, FAAD had a serious ABI bug: the NeAACDecInit()
prototype in its header declared the "samplerate" parameter to be
"unsigned long *", but internally, the function assumed it was
"uint32_t *" instead. On 32 bit machines, that was no difference, but
on 64 bit, this left one portion of the return value uninitialized;
and worse, on big-endian, the wrong word was filled. This bug had to
be worked around in MPD (commit 9c4e97a6
).
A few months later, the bug was fixed in the FAAD CVS in commit 1.117
on file libfaad/decoder.c; the commit message was:
"Use public headers internally to prevent duplicate declarations"
The commit message was too brief at best; the problem was not
duplicate declarations, but a prototype mismatch. No mention of the
bug fix in the ChangeLog.
The MPD project never learned about this bug fix, and so MPD would
always pass a "uin32_t *" dressed up as a "unsigned long *". Nearly 6
years later, it's about time to fix this second ABI problem. Let's
kill the workaround!
2014-11-02 11:50:56 +01:00
Steven OBrien
bccd4ef2f7
decoder/ffmpeg: recognize MIME type audio/aacp
2014-11-02 11:50:56 +01:00
Max Kellermann
432ce9b1de
configure.ac: prepare for 0.18.17
2014-11-02 11:41:40 +01:00
Max Kellermann
7d5442e103
Decoder, Playlist: ignore URI query string for plugin detection
...
Use the new uri_get_suffix() overload that removes the query string.
2014-11-01 13:41:18 +01:00
Max Kellermann
7350144ab3
PlaylistFile: don't allow empty playlist name
2014-10-31 14:59:27 +01:00
Max Kellermann
54c591bd9d
decoder/mad: fix negative replay gain values
...
Negating an unsigned integer does not work.
2014-10-28 22:22:30 +01:00
Max Kellermann
217d88f21f
TextInputStream: don't ignore unterminated last line
2014-10-28 22:10:47 +01:00
Max Kellermann
394e3be482
playlist/m3u: recognize the file suffix ".m3u8"
2014-10-26 08:14:16 +01:00
Max Kellermann
575fbad254
AllCommands: "commands" returns playlist commands only if playlist_directory configured
2014-10-25 23:50:47 +02:00
Max Kellermann
d7f024c510
OutputThread: fall back to PCM if given DSD sample rate is not supported
...
Works around the "PCM conversion from f to dsd is not implemented"
error message that prevents DSD playback.
2014-10-25 22:06:08 +02:00
Max Kellermann
bc5a53574c
decoder/faad: remove workaround for ancient libfaad2 ABI bug
...
Many years ago, FAAD had a serious ABI bug: the NeAACDecInit()
prototype in its header declared the "samplerate" parameter to be
"unsigned long *", but internally, the function assumed it was
"uint32_t *" instead. On 32 bit machines, that was no difference, but
on 64 bit, this left one portion of the return value uninitialized;
and worse, on big-endian, the wrong word was filled. This bug had to
be worked around in MPD (commit 9c4e97a6
).
A few months later, the bug was fixed in the FAAD CVS in commit 1.117
on file libfaad/decoder.c; the commit message was:
"Use public headers internally to prevent duplicate declarations"
The commit message was too brief at best; the problem was not
duplicate declarations, but a prototype mismatch. No mention of the
bug fix in the ChangeLog.
The MPD project never learned about this bug fix, and so MPD would
always pass a "uin32_t *" dressed up as a "unsigned long *". Nearly 6
years later, it's about time to fix this second ABI problem. Let's
kill the workaround!
2014-10-25 20:42:50 +02:00
Steven Newbury
76f277eeb4
Set pulseaudio channel map to WAVE-EX
...
Pulseaudio expects clients to specify their channel-map if the
default (ALSA) map does not route the audio to the expected speakers.
Many Google results suggest dealing with this by re-routing the audio
channels with the appropriate ALSA plugin, but this will then simply
break any clients which expect the default ALSA mapping.
Virtually all media files and codecs, certainly flac, dca, a52, and of
course anything based on Microsoft's WAVEFORMAT_EXTENSIBLE specification,
assume the layout in the table here:
http://en.wikipedia.org/wiki/Surround_sound#Standard_speaker_channels
Fortunately, pulseaudio directly addresses this with a built-in channel
map for WAVE-EX which can be set automatically in the stream sample-spec.
2014-10-25 01:08:09 +02:00
Max Kellermann
4000390dcd
configure.ac: prepare for 0.20
2014-10-25 00:33:39 +02:00
Steven OBrien
8cd17ce045
decoder/ffmpeg: recognize MIME type audio/aacp
2014-10-25 00:26:58 +02:00
Max Kellermann
f36db9bb04
configure.ac: auto-disable plugins that require GLib when --disable-glib is used
2014-10-24 23:46:20 +02:00
Max Kellermann
a7b09d3d1c
OutputThread: close the output plugin after filter failure
...
Fixes memory leak because ao_plugin_close() never gets called.
2014-10-24 00:35:16 +02:00
Max Kellermann
200cdb6b0a
pcm/PcmConvert: assign {src,dest}_format at the end
...
Fixes assertion failure in destructor by not assigning
{src,dest}_format when an error occurs.
2014-10-23 22:39:51 +02:00
Max Kellermann
2d9e972195
configure.ac: prepare for 0.19.2
2014-10-23 21:57:04 +02:00
Max Kellermann
97a1a04116
release v0.19.1
2014-10-19 01:03:17 +02:00
Max Kellermann
493cd866f1
TextInputStream: manually shift the buffer before reading
...
Fixes truncated lines in m3u and cue files (regression by commit
67958f7
).
2014-10-19 00:50:52 +02:00
Max Kellermann
a0fae8dacc
playlist/extm3u: strip first line for #EXTM3U detection
2014-10-17 20:45:18 +02:00
Max Kellermann
bc840b69d5
Makefile.am: distribute systemd/mpd.socket
...
The file systemd/mpd.service.in is being distributed implicitly, but
systemd/mpd.socket is not and needs to be added to EXTRA_DIST.
2014-10-12 08:38:52 +02:00
Max Kellermann
85301853d6
ThreadInputStream: call ThreadRead() inside the thread instead of Read()
...
Fixes deadlock bug in the "mms" plugin.
2014-10-11 21:59:06 +02:00
Max Kellermann
538ddf7af2
NEWS: add missing line
2014-10-11 21:48:52 +02:00
Max Kellermann
d5afa181f7
NEWS: fix typo in version number
2014-10-11 21:48:27 +02:00
Max Kellermann
160242a74f
configure.ac: prepare for 0.19.1
2014-10-11 20:25:19 +02:00
Max Kellermann
81b83bc904
release v0.19
2014-10-10 23:49:31 +02:00
Max Kellermann
2a716b7a7a
doc: document the mount/neighbor commands
2014-10-10 23:22:39 +02:00
Max Kellermann
f445b0178a
TagString: remove ISO-Latin-1 fallback
...
MPD handles all strings in UTF-8 internally. Those decoders which
read Latin-1 tags are supposed to implement the conversion, instead of
passing Latin-1 to TagBuilder::AddItem(). FixTagString() is simply
the wrong place to do that, and hard-coding Latin-1 is kind of
arbitrary.
2014-10-10 20:53:08 +02:00
nanotech
f0be48ff90
Main: run the OS X native event loop
2014-10-10 19:51:44 +02:00
Max Kellermann
3560dc4be6
Tag: support "AlbumSort"
...
The new tag is supported by all decoders that use the tag name table,
and the ID3v2 tag "TSOA" maps to it.
2014-09-29 18:55:59 +02:00
Wieland Hoffmann
5525ea45a4
Add MusicBrainz' Release Track Id tag
...
The Release Track Id uniquely identifies a recording on a release - that
is, even if a recording appears twice on a release (meaning that the
combination of recording and release id are not enough to figure out
which one it is), the release track id will allow differentiating the two.
The tag names are taken from
https://musicbrainz.org/doc/MusicBrainz_Picard/Tags/Mapping
2014-09-27 19:54:12 +02:00
Max Kellermann
8547611479
release v0.18.16
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUJSq1AAoJECNuiljG20US8CAQAJo/4jAPKsba6RVWf4oWo1Tl
1KUVHaqPonboZ+ArexI+eLObRzmzawTdzc1iVAI8KhISaZkfBWvY3PGFbn6GW3xZ
o1GMRkjhps/ZWIXao2qzelITMzEWzKuAPEGdQE2Z3qXDP/bva0QnAJwjm6zfMsrz
qKYDjQlCGkt7s6jw8gbLGrcoPgP+q7s522qb/0gBc620OivufuEeAQquaahY3X+L
PnXGqsNr34Xqw8EeHCahVGvvQeetY0dGTG/EUiLuxgACqRnjnxwgZ1Xem3YSlGgP
KZVmEqepcvLgz7BlLkQrHse4eEcdxmojRP4towUPUOeRKb1LIlDr9AF6LoulGJr4
jCTeOhzRpmh7wo/rh2klMJXSkqqQlu84+jG7d+PW38oweVCO9HekhyfIDWYDJq/+
jndDRMK7pcPl4sBBXPrJNLdGAQZoJDxRD84syEwOmGOL1FgV2KZl1pJ81fOacR5x
BHeRZrtd0iZ97/qZL+wtNskKU21lMjKqv48saF224FhKCtR1iXkVw4fH6U+H3Q1w
8mrghkkMUom6yQ1mL7U2zA3P6yUcpOJIp0OwMLkJc4H7iOY3a21IAsH0KXmn/Z5O
RE+0zSZm4krUg5uoxhhJWbJnORjoexMv1iaR8+uh71qvBI+RwQXjYA94VJ3Rf88/
R4tE+xb0ZY8OvTXGswdF
=y5Hv
-----END PGP SIGNATURE-----
Merge tag 'v0.18.16'
2014-09-26 11:06:11 +02:00
Max Kellermann
fe45f28204
release v0.18.16
2014-09-26 10:57:04 +02:00
Max Kellermann
861067412f
configure.ac: fix DSD breakage due to typo
2014-09-26 10:56:20 +02:00
Max Kellermann
7eca886608
configure.ac: prepare for 0.18.16
2014-09-26 10:55:43 +02:00
Max Kellermann
79b6f9e89e
release v0.18.15
2014-09-26 09:41:40 +02:00
Max Kellermann
032e435490
decoder/mpg123: support ID3v2, ReplayGain and MixRamp
2014-09-24 22:53:50 +02:00
Max Kellermann
9270485723
Merge branch 'v0.18.x'
2014-09-24 21:49:20 +02:00
Max Kellermann
d1a8a4481e
decoder/sndfile: support float and 16 bit samples
...
Support these PCM formats natively, instead of letting libsndfile
convert everything to 32 bit.
2014-09-19 21:44:16 +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
a464dc681a
release v0.18.14
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUEdhhAAoJECNuiljG20USwKkP/1MIm6J2ydXEP81RD/3llz6h
2t8EK94cEIdb6bA6goBI0Pipz7YAtmjgfnDRW90AvFcxNuVt87esxG82gVOiosvo
7LByehQ2kq/w0evILWy8X1eAvqIk/PvG6T/pZcPrrj7kHrZaIOXh0SVTZ5NLq7HC
drunwHQxgVntB/410h7BKEFbg1qWHPGxfTyf6qJsZPkHfr5QcgbHrYN7QCr1eUv9
mARx4Nxo9MXuiqOJOS7ck80V68nbnFdxjNXSflUkl94O0MfiPc741Snbe7qnHI91
I+BQYCBExKzoqFszuuRZQjxFpJalg4Y/9/stn6+dYemtC3WpreGHogweUBlPZ5if
wJRL/A/zHAY0xE/hohiEqY6pHZWmVolbumtp7LfNR7dejOetn0IPW+KnFnjYec21
qkJG/mq8fHStdQMTzp5NDoqh8VrPaBAAhjgP3suZY2wZ5xfbLXHk/HNKdQLvX8s3
Vv4wcDNsfbOJ/1ZTBo/nqceTkOyHrov5cDSotYnO1hs963vyk3LFwY2IRCgPdOR0
7o77JmKHZnzZSw60CIT6Mf1+rx38x++Rq3UGDYuH4B4L4VqXv2WrUp32w1VzHQVO
Dcd/dxwW/sB1SwMdi5J4tIBJCSn5mF7yvBPR0PB5NiZiX1YB6hEqmaXYfwLCqujo
xyWy8gPJbmYw6XJPmw6A
=3azu
-----END PGP SIGNATURE-----
Merge tag 'v0.18.14'
2014-09-11 19:26:58 +02:00
Max Kellermann
eaf675dc92
release v0.18.14
2014-09-11 19:09:49 +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
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
f9d1bbbffb
configure.ac: prepare for 0.18.14
2014-09-03 19:59:26 +02:00
Max Kellermann
e5a28bfd8d
output/alsa, pcm: rename "DSD over USB" to "DoP"
...
The standard has been renamed since the early draft that was
implemented in MPD.
2014-08-31 16:12:26 +02:00
Max Kellermann
6e04d66a35
release v0.18.13
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUAxsyAAoJECNuiljG20USmRAP/2J/+kV5TRfqr7acFKh/aqip
RAefHTvHpYuAUDOi3WDVSZcmMnaYGKslZhbXhqchbRfR2oMwYhR+5gHIoxOp+EcL
09UF1fJfUnjg6B2zz6tggIWR53Dwxckg4xEaKtI2Wi3Gz+9Q/CiNlpWLJc0ONA5e
9gcz8pNK3oN0Em9c1KXahZKArzGdOGeytfSI3PLE+QnRiEyEDz1+StxIuyl72vr4
ar2EMa9Vdvb7ouNK0g8WqaEOzYyNDXhklIqc+zALQJGThY1xj6OCfQ8JVagJhzwB
UDuYfX1FylkN8LhF5pNzH1F0ANMozWcqeZlLLph6vuKkVBD7WUX4X1t82bwUlFDB
ppdA5pPkiXsqYnuhHML4GqL7LlI2wsMxUHK7v+A9+9hfGN9HIoFyOSLBjB1pyI93
yi8IPOq2a1BJQfQ2c69693ZS7WPxU6vOFKucKrk9PBlr2900SlvpMzIpZr1PMnGV
hoU8eLHOIW86wi5Ea2ycFbFyI1ZoyrKJmzcVJjPjZUT05jDV6bA2Gi1IG6gIhX1q
DiBfXUre+GISkLS4r8GcbG1FIXcv7fGjZ6Vols5di8lpYQ5oBu5aw2TEf8zukrHC
LzPRa2l6Mhe2OI7a/mmTaEYDINgCL//46hOU5mIbmB0XZS8Jf+D1/HBzqKpeqO7f
idENtbelqQdSsR5UU+R0
=c2vC
-----END PGP SIGNATURE-----
Merge tag 'v0.18.13'
2014-08-31 15:03:34 +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
2406152576
output/alsa: fix endless loop at end of file in dsd_usb mode
2014-08-31 14:01:57 +02:00
Max Kellermann
d5287682d1
ArgParser: allow fractional seconds in ParseCommandArg(SongTime)
2014-08-29 23:46:38 +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
a86aaef4d0
output/alsa: support native DSD playback
...
Translate SampleFormat::DSD to SND_PCM_FORMAT_DSD_U8, which was added
to alsa-lib 1.0.27.1.
2014-08-26 07:11:53 +02:00
Max Kellermann
77f2cd6513
Merge branch 'v0.18.x'
2014-08-24 13:15:17 +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
Max Kellermann
8808aad529
decoder/dsdiff: implement seeking
2014-08-23 15:27:21 +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
67cc09416f
decoder/dsf: implement seeking
2014-08-23 14:00:38 +02:00
Max Kellermann
67f0d26d17
decoder/dsf: fix big-endian bugs
2014-08-23 13:35:29 +02:00
Max Kellermann
02cc77cd82
decoder/dsf: fix multi-channel files
...
The plugin was horribly bugged for files that were not stereo.
2014-08-22 07:30:32 +02:00
Max Kellermann
dedc2986c6
decoder/dsf: fix noise at end of malformed file
...
Read one block at a time. This discards the last partial block, which
cannot be interleaved anyway. Previously, uninitialised memory was
used to interleave the last block, which generated some noise.
2014-08-21 17:46:25 +02:00
Max Kellermann
455fd180b1
Merge branch 'v0.18.x'
2014-08-21 12:52:27 +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
Max Kellermann
e6e9c21275
input/ffmpeg: use av_strerror()
...
Generate more detailed error messages.
2014-08-18 20:35:34 +02:00
Max Kellermann
41a4b280ee
input/ffmpeg: update offset after seeking
2014-08-18 09:52:53 +02:00
Jurgen Kramer
9b9d189a33
decoder/dsf: Allow up to DSD512. Enable DSD rates based on Fs=48kHz
2014-08-16 18:40:53 +02:00
Jurgen Kramer
7c3af4f56f
Report bitrate for DSF and DSDIFF DSD decoders
2014-08-16 18:38:44 +02:00
Max Kellermann
a9f6556454
Merge branch 'v0.18.x'
2014-08-16 08:25:10 +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
d026367334
Merge branch 'v0.18.x'
2014-08-12 16:54:32 +02:00
Max Kellermann
cf797657ed
AllCommands: close connection after syntax error
...
Stop HTTP clients from exploiting MPD via forged POST requests.
2014-08-12 15:33:45 +02:00
Max Kellermann
5d2506e697
SongFilter: new filter "modified-since"
2014-08-11 22:38:58 +02:00
Max Kellermann
2e122e1509
db/simple: compress the database file using gzip
2014-08-11 21:48:25 +02:00
Andrée Ekroth
330b6a0482
decoder/Mp4v2: add MP4v2 decoder plugin
...
This plugin uses the MP4v2 library to play mp4/m4a files.
It is limited to file_decode.
2014-08-07 21:01:38 +02:00
Max Kellermann
abe4c57663
configure.ac: prepare for 0.18.13
2014-08-02 08:45:44 +02:00
Max Kellermann
3422bd9b94
release v0.18.12
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJT2K6KAAoJECNuiljG20USFeIP/R/de4/XHAbf0rntmwBNYfth
YPCdE1+fP1Dnq2mAawSI9qkCXpGKBGgfO3bKceacxb2hWP5Z+vTvRr3IyGfqpE2g
EUQq8i/uC1gE28Q3ZjW3I3HYcPwjHu+p051ppMMQexZ58ef38qDOchY+cdjxQ4mJ
HDrs/sg16VKkCBB5HBapuXFdZT6HNdHb2qobDekc91RF7xZ0GuO4x0GnZMpqf6GG
DAVifwTCJXW5WMxLTtNry6vSIxqHlfBkS2mk1dfBmB6fjUqu4zoPBx4BtRfuBB4D
GQ/FrsVq6eDu+o1TB9ubR4/QqhVWVKYCMksGz8MZkH0WgXvde0Or1W5s2SSN686w
esneKJA32+PPfE4TkmQUWI5GS3Yt2SLYxxXCubXfeTfQCGjOw39cdBe4U+fIvlOE
d3UGJU579P/BA0iygCZuIbVekc+wsaTZy5eRCIJ1jPt2V0zD4QVzaTa3+rMVX6+N
uhY95izwOgHG8UVnz1/B/vgZ0czJHmzl+zJUugdqWR16PXaB/bdX9GsUqv1LLeJD
/PZE2msKI0Akk8c7wh2NNyb9uYtatbrxS8IXVnlNfOD4LrvFtKQE5GvEPitp8xmd
epQKnOsDsqaU6axP9pYFkirivWQljju2zxbDOZ0oV7EBJviFBWEYkjdBUSb+MYob
ZLeA+MyX7l3mm9+RDB5V
=1oPk
-----END PGP SIGNATURE-----
Merge tag 'v0.18.12'
2014-07-30 10:40:40 +02:00
Max Kellermann
a3f3c7ba24
release v0.18.12
2014-07-30 10:30:17 +02:00
Max Kellermann
12b5494906
db/proxy: implement Update()
2014-07-29 23:35:09 +02:00
Max Kellermann
1f9d9c3176
Merge branch 'v0.18.x'
2014-07-12 20:51:22 +02:00
Max Kellermann
7db84a961a
decoder/dsdiff: fix metadata parser bug (uninitialized variables)
2014-07-12 20:41:26 +02:00
Max Kellermann
80d9baa9e8
QueueSave: use the long format to save partial songs
...
Previously, only streams were saved with range and tags, but this is
necessary for all "partial" songs (e.g. CUE tracks).
2014-07-12 19:36:39 +02:00
Max Kellermann
751995ab95
QueueCommands: new command "rangeid"
...
Manipulates the playback range of a queued song.
2014-07-12 18:55:41 +02:00
Max Kellermann
071d05465a
SongPrint: use DetachedSong::GetDuration()
...
Fixes the bogus duration of the last track in a CUE sheet.
2014-07-12 18:41:15 +02:00
Max Kellermann
c400876df1
Merge branch 'v0.18.x'
2014-07-12 01:27:18 +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
c4bea3dfe4
decoder/sndfile: implement scan_stream() instead of scan_file()
2014-07-11 22:09:35 +02:00
Max Kellermann
3e19298c9e
decoder/sndfile: support more tag types
2014-07-11 22:03:13 +02:00
Max Kellermann
828cd6fd0b
Merge branch 'v0.18.x'
2014-07-11 21:33:50 +02:00
Max Kellermann
0ef843f138
decoder/sndfile: use decoder_read()
...
.. instead of InputStream::LockRead(). The former is cancellable.
2014-07-11 21:18:44 +02:00
Max Kellermann
11a5ee821b
PlaylistEdit: postpone UpdateQueuedSong() when adding multiple songs
...
Implement a "bulk" edit mode that postpones both UpdateQueuedSong()
and OnModified(). This way, the playlist version gets incremented
only once. More importantly: when adding multiple songs to a queue
that consists of only one song, the first song that got added will
always be played next. By postponing this choice, all newly added
songs get a chance to become the next song. Fixes the second (and
last) part of Mantis ticket 0004005.
2014-07-11 20:22:35 +02:00
Max Kellermann
e2cc328eef
Playlist: randomize next song when enabling "random" mode while not playing
...
Don't restore the current song after shufflung when MPD is stopped
(but still remembers the current song internally). Fixes the first
part of Mantis ticket 0004005.
2014-07-11 19:41:39 +02:00
Max Kellermann
681643ea9e
input/curl: options "verify_peer" and "verify_host"
2014-07-11 16:39:42 +02:00
Max Kellermann
ccbb5c3e01
decoder/audiofile: log libaudiofile errors
2014-07-10 09:37:43 +02:00
Max Kellermann
107321e385
decoder/audiofile: implement scan_stream() instead of scan_file()
2014-07-10 09:23:56 +02:00
Max Kellermann
913064d6cc
Merge branch 'v0.18.x'
2014-07-09 20:02:07 +02:00
Joff
09384df32c
decoder/dsd: use decoder_read_full() where appropriate
...
Addresses Mantis ticket 0004015.
[mk: use decoder_read_full() only when needed, and a few formal
changes]
2014-07-09 19:18:36 +02:00
Max Kellermann
20538516b9
decoder/audiofile: use decoder_read_full()
...
Works around WAV stream playback bug, because libaudiofile does not
like partial reads (Mantis 0004028).
2014-07-09 19:05:20 +02:00
Max Kellermann
bc6472bb9e
decoder/audiofile: use decoder_read()
...
.. instead of InputStream::LockRead(). The former is cancellable.
2014-07-09 18:57:50 +02:00
Christoph Tieben
34689eb2d2
decoder: vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song
...
(see https://www.xiph.org/vorbis/doc/v-comment.html for Details)
2014-06-27 21:14:17 +02:00
Max Kellermann
fa1fb47d75
Merge branch 'v0.18.x'
2014-06-23 10:13:50 +02:00
Max Kellermann
848ed14788
db/proxy: fall back to recursive walk on old libmpdclient/MPD
...
Error message was 'too few arguments for "find"' because the "base"
constraint was not supported, and no other constraints remained.
2014-06-23 09:18:11 +02:00
Max Kellermann
4c8a5dfb05
db/proxy: use mpd_song_get_{start,end}() only with libmpdclient >= 2.3
2014-06-23 09:17:35 +02:00
Max Kellermann
4f61ba766d
configure.ac: prepare for 0.18.12
2014-06-23 09:14:35 +02:00
Max Kellermann
3cd24c0a51
release v0.18.11
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJTcPbuAAoJECNuiljG20US+LsQAI5LcUiQ2AxfDdXfEkIW+ryQ
U5htp4RAAizVFEAdgzdDOoHBVefkvwij6G9ND9WAbJRsUOZs62XwlnOFaB/uQPhd
VvoNIQLmuUNxltF1itaCTJ0UJkXi6ObVExpwMScGI242uUmoNnxwsWxDxyy2s4bn
On/OwT64zTOsPTjkYGdfGncwx4dhQc2KJvGGD6y/lMhxUnn3NoKG/VOgleN4ALcL
KQ0SFQOFbUHJcvMXYdMzhe426d7GiHzFVIfdU16yJz47/xHDmaM+VVJQCOF68rrw
kyb2POxR4VXhPMfIleF2RiCopvDGSvQfUE3jhQjKBgZE2NeFeI/5N6JcWbZgFJ/J
4ez3DcjSD1Oeoz6gzaq1QybCku4EZTvPa6Kbb5/84JNKmVdb/JowGF0L18bwTbGv
y5D5HN3zTdmBXwsiDnTNDtuwaSejvIDTN1k4AkdQ9mLMIMT+13NHLBs1rDE2JnlG
3xhXrIvwhUBdE1A4uFj8duzk11EWzNI+ltJBRnG8uEzAJxpv5Khiwmj2GciS6s5r
wp1YUIUA0BhrEgrtoTdE7x13lXkDrmydcJ5kA0kArJFQALliE7kivyg1gtrcNRj1
7fDRAb9QOxaJrrsJzM9f9pDaIttHRjRvurFtikD90oaRE1g+6ygeScmYJDPhPjvU
R6PxzvsMCn8kJFWq2ARg
=Ubmu
-----END PGP SIGNATURE-----
Merge tag 'v0.18.11'
2014-05-12 18:38:45 +02:00
Max Kellermann
8bfdb4ed0c
release v0.18.11
2014-05-12 18:20:26 +02:00
Max Kellermann
70bd35abe2
decoder/OggUtil: allow skipping up to 32 kB after seek
...
Fixes missing song length on high-latency Opus files.
According to tests with 320 kbit/s opus files with 60ms packets, we
need to skip up to 29 kB.
2014-04-29 11:56:05 +02:00
Max Kellermann
bc2a1160b8
db/Count: implement grouping
2014-04-27 22:27:43 +02:00
Max Kellermann
0efb67b51e
DeferredMonitor: fix race condition when using GLib event loop
...
Turns out the lock-free code using atomics was not thread-safe. The
given callback could be invoked by GLib before the source_id attribute
was assigned. This commit changes the DeferredMonitor class to use a
Mutex to block the event loop until source_id is assigned. This bug
does not exist in the 0.19 branch because it does not use the GLib
main loop anymore.
2014-04-26 22:11:23 +02:00
Max Kellermann
54ebf2a699
configure.ac: prepare for 0.18.11
2014-04-26 22:08:08 +02:00
Max Kellermann
ae178c77bd
DatabaseCommands: "list" allows grouping
2014-04-24 11:38:49 +02:00
Max Kellermann
27002ad1ea
db/Helpers: "list" on album artist falls back to the artist tag
2014-04-24 10:48:52 +02:00
Max Kellermann
1c02b4b9f4
release v0.18.10
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJTRoKFAAoJECNuiljG20UScmgP/3bXQLBVqnGdMEzJio9qfTqz
inqbuaR8FrOSQFT5ULpYYipcjiqxCpG2ooE2M083F3wXDHF8u+j0S84NEvHQjv0T
WvA5EOOeEJS0o0gREZb8onO8NVwH+f1r4x34PAc4QbSeROiAiJRPmfTOZBDTaQkZ
Fy4CGte9UqLvUG10Jxpn1DgcBBeoge9Ruzm+drBLHh53lAfKZH6z9u23htNc4PH0
WMN3/orL7KZNxMtX37zqQDhkbPv2RjCWc0JJ8yxBzw3r/qG53GkmCBsStub6wKIi
iPgkoKXii+FAlg1oRmvVNELmOUDjhnBj8+g7q6WgJGpYqdcSCQBRIBnPPRn6Tfw3
wS7MtGoH7M4yihOfeburIzN0JiD4dtcnA7CrA9ghWt3C0Hci9Q/eni7xHgAuJ7Gp
fD0aEGeaQiQZC8r1UYkgvPuc+CXpsjPcpoN2TlYwDJ3VPQcikHVqTUkJxf5rEGbL
h5K0jhW/TzgT0quozd50w52X/n5J76X8oEng08271OPMlF+6gawGA2/AeDsomRTp
n8OPVutpyaGE3gKGYLGKj3cEnP15tQyt3U0kiU+ccG7osEPXr8JU/A4fipqcrwnN
lwejiIKzfZBU68kwS+gtQLiBncT3oh5tEiLJNzYYpPCF0wkDYt2u/rhRxnVjRoXO
5B9PRaOPuJ5N+6O2hGNS
=qsUE
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.10'
2014-04-10 13:49:20 +02:00
Max Kellermann
d0119548c1
release v0.18.10
2014-04-10 13:36:38 +02:00
Marcello Desantis
95ac6071b9
decoder/sndfile: work around libsndfile bug on partial read
2014-04-09 23:58:56 +02:00
Weng Xuetian
3a4e667078
PlaylistEdit: don't interrupt playback when current song gets deleted
2014-04-09 23:10:14 +02:00
Max Kellermann
ce18c36ed9
decoder/ffmpeg: handle unknown stream start time
2014-03-18 09:16:09 +01:00
Max Kellermann
8e39cf62e7
decoder/ffmpeg: pass AVSEEK_FLAG_ANY to av_seek_frame()
...
This corrects a major mistake from commit 724a59aa
- there was one
small thing that commit was supposed to do, and it failed.
AV_TIME_BASE is not a seek flag.
2014-03-18 09:10:36 +01:00
Max Kellermann
707d379b97
input/mms: move blocking I/O to thread
2014-03-16 11:48:46 +01:00
Max Kellermann
5696f91a1e
pcm/PcmFormat: ARM NEON optimizations for float->s16
...
This is nearly 4 times faster than the "portable" algorithm.
2014-03-15 11:41:01 +01:00
Max Kellermann
a9e351e00d
decoder/gme: fix memory leak in container_scan()
2014-03-06 13:12:39 +01:00
Max Kellermann
d65841a2db
configure.ac: prepare for 0.18.10
2014-03-06 13:08:30 +01:00
Max Kellermann
503ed9c331
release v0.18.9
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJTEwdzAAoJECNuiljG20USkFYP/i1PaM7O20e2EPE7ELhffk1I
PEL6WiuCxfEHP+JbH/RPy/CdyKIqx3TTeaktXzOJmCcU+5fAgbpIwfK689ZjpE7Y
U+7aPfGudfjYTxM/bigEo+1XAIYWJCJ2IlopN0lRIZSquUm8rfxosqsNzJFrhwsK
40Ps36XdpYUA3z9dugyJjeKQETkjJa5Y55C1yml5RRUz+yPqyiPelm0dSlx3Ggce
KpmNZfp8g8/stwb08iw+qk+cNKP75eJwPdFmQrsc91QxP1oW7ERWhiICA0ZtqaNe
T0Ld5+wZ6uTJSztQiUsWrJYS1yKix5q1Za8tyFr3a9NPI+iIjsALXqU9k7zmZ6Id
GK0Xr9Noo1o80QeGkd60nJyCQXbEU/V0p9D/QiDVei+IvK6mbxF3y2gPA7wobgrC
KEDgsJZ+0fjmgdx+eb8ydg0uIwHrk04u0YKukUqA3bkNS/PUEICPqblcg8Spf89I
RMdjq2HFcpkaIwGvryfHIbTNUbonAziMzmiJ0WQA1FCD3x1WELvBf09GzAsUEoFX
Be0Co15rODOByo5ryZvSJv5BCr2RuCPwzNF+V26nMaKK7EloQWmbO0rpkRLVRk81
qo1JmElm6SyeE3kHqVW/NyrPxLtd7VngV+z9hXr95szUjCjMv/MK169r4jumLTex
RLyPDkhkQLDIijamhjfZ
=nX0n
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.9'
2014-03-02 11:46:07 +01:00
Max Kellermann
2784d65618
release v0.18.9
2014-03-02 11:25:01 +01:00
Max Kellermann
a884e37de1
output/alsa: call snd_pcm_prepare() after snd_pcm_drop()
...
Don't wait for an optimistic write to fail. This is an improved
workaround for the infamous Raspberry Pi bug (see commit af991765
).
It works much better and comes without the negative side effects. The
old workaround is now obsolete.
2014-03-02 11:12:25 +01:00
Max Kellermann
0102a8665a
event/SignalMonitor: fix build failure due to missing signal.h include
2014-03-02 10:21:31 +01:00
Max Kellermann
36ca57a54e
fs/StandardDirectory: add GetUserCacheDir()
...
Move code from CreateConfiguredDatabase() and add XDG support. This
implements an automatic Linux fallback for the setting "db_file" if
none was specified.
2014-03-01 22:51:51 +01:00
Max Kellermann
efa6678bcc
NEWS: add group "configuration"
2014-03-01 22:51:51 +01:00
Max Kellermann
96afa8bd2b
command: add command "listfiles"
...
Lists files and directories. Supports storage plugins.
2014-03-01 06:25:57 +01:00
Max Kellermann
d34ae0850c
AllCommands: "findadd" requires the "add" permission
2014-02-27 23:08:22 +01:00
Max Kellermann
681e012fb5
db/update: cancel the update on shutdown
2014-02-27 16:58:35 +01:00
Max Kellermann
4dcf0b8ae0
first Android release
...
Finally, MPD runs on Android. For some small value of "runs". Very
much work left, too much to describe.
2014-02-22 01:39:08 +01:00
Max Kellermann
c32477a223
Merge branch 'v0.18.x'
2014-02-18 21:46:41 +01:00
Max Kellermann
5e1e92626c
event/SignalMonitor: unblock signals after fork
...
Fixes hanging child process in the "pipe" output plugin.
2014-02-18 19:13:50 +01:00
Max Kellermann
7fee85c80a
configure.ac: fix linker failure when libvorbis/libogg are static
...
Link libvorbisfile first, followed to libvorbis and finally libogg.
This order is necessary because libvorbisfile depends on libvorbis.
2014-02-18 18:39:19 +01:00
Max Kellermann
5d87a274a5
configure.ac: link the Vorbis encoder with libogg
...
Fixes another linker failure. Similar to commit ea406875
2014-02-17 19:42:38 +01:00
Max Kellermann
9e02b13ab3
systemd: add socket activation files
2014-02-12 21:22:36 +01:00
Max Kellermann
57e862712a
configure.ac: prepare for 0.18.9
2014-02-09 22:58:14 +01:00
Max Kellermann
570b12ec13
Idle: error out when unrecognized idle event was specified
...
Implements the error checks missing in commit 0bad8406
2014-02-09 08:07:48 +01:00
Max Kellermann
b3663b5da2
storage/nfs: new storage plugin
2014-02-08 14:24:47 +01:00
Max Kellermann
3fdc678aae
Main: support arbitrary storage plugins
2014-02-08 00:04:29 +01:00
Max Kellermann
5e4dd4be9c
Main: allow playlist directory without music directory
2014-02-07 22:39:17 +01:00
Max Kellermann
04d5896c1c
NEWS: mention default soundcloud API key
...
Missing from commit 48c96bba
2014-02-07 22:38:04 +01:00
Max Kellermann
746a47982b
release v0.18.8
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJS9BY7AAoJECNuiljG20USFXcP/1JX3QXdVNxOZdoLvsD7MqmP
Qg9ra1c+9HdD7e2FjTFzSw02USIOrp+l/e3qPn3V0CsD+ZHoCH3lt/zLGaooYbVy
+3gsCNPyW0KTfdmaemFrtQk7sk9lAzuCO+t4jESFQxPmGeUKZRDUtjSMJJsiBKTe
oFiJ6VgkLHmUFb+mAHSmmDQEuZzyW59Qx9ptIAoHIRzBvhIYhAW/X86172XcxZIB
61jmRlebpIrmxi6ft6GFPHjxwD6Od5au7jhQOgI+SqIgkg4KjKotV2ggIcRcYnSs
IenloxdACKNd0yGuyHLOvXJLE5HAUl8GxkLF0QMDx2OH8CjQ+dEo9Kcclj2P6mba
pNVex3LHOtv/Bw5K0OJayxqz4d//rsqs4r2SOBDO4heFGNeNN/nbAiyBrNvkMDKP
VeeIfJBd/aI8M9NRbEMJ3KbuqO6CATR9F3hVsrzocaAJfvixET0uHoqZeunFrpcp
TVHEHavx1eIC0e7LaqIL7lWrhElb6ci1fypCYuau+ZNz6irOnPRA5CY9Zk2XWhSN
pxS+XQRRjHrDYbYjk3YNqCno4lWzFPGSoKkufG4a3Q8jKb/RA3zAKhwlwZXFPfun
PgLIl5XhK3BWl2Dv7t0jMxzqgLiIOMwL0l71AZNaRRl3OYfiYda3lrBK390ByQOG
64R+be+RxotfsyPvfwQF
=Arwc
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.8'
2014-02-07 00:17:36 +01:00
Max Kellermann
ddb5390d88
release v0.18.8
2014-02-07 00:06:31 +01:00
Max Kellermann
fce20e514e
NEWS: fix 0.18.7 release year
2014-02-07 00:06:31 +01:00
Max Kellermann
af66ed2505
doc/user: document the RoarAudio output plugin
2014-02-06 21:46:29 +01:00
Max Kellermann
ea4068757d
configure.ac: link the Vorbis encoder with libvorbis
...
Since the encoder plugin uses a libvorbis function (and not only
libvorbisenc functions), we need to link with libvorbis explicitly.
2014-02-06 21:32:50 +01:00
Max Kellermann
e4322a716c
input/nfs: new plugin using libnfs
2014-02-06 18:37:27 +01:00
Max Kellermann
b9c248e7e7
PlaylistFile: use class SongLoader
2014-02-03 23:50:19 +01:00
Max Kellermann
a31738f6f1
Main, OutputThread: increase kernel timer slack (Linux)
...
Allows the kernel to combine timer wakeups with other processes,
reducing power usage.
2014-01-30 18:43:40 +01:00
Max Kellermann
39a2867ea8
NEWS: mention thread names
2014-01-30 18:43:16 +01:00
Max Kellermann
468c3df82d
NEWS: add "threads" section
2014-01-30 18:43:03 +01:00
Max Kellermann
30fadaed7f
Merge branch 'v0.18.x'
2014-01-27 10:33:42 +01:00
Max Kellermann
2b10ecfa37
IcyMetadataParser: more robust tag parser
...
Allow semicolons and single quotes in the stream title. This is not
part of any specification, but found in real life.
2014-01-27 10:08:21 +01:00
Max Kellermann
5c4a42caa0
neighbor: new subsystem to detect file servers on the local network
...
This commit adds the NeighborPlugin API which can be used to detect
nearby file servers that can be used by input plugins. This list of
servers is exported using the new "listneighbors" command. The idle
even "neighbor" notifies interested clients when a new neighbor is
found or an existing one is lost.
There's a lot missing currently: protocol&user documentation, and a
way to "mount" remote servers into the music database. Obviously,
some code from the UPnP database plugin can be moved to a neighbor
plugin.
2014-01-26 00:10:05 +01:00
Max Kellermann
a6d9998e1d
db/proxy: copy "Last-Modified" from remote directories
2014-01-22 23:07:21 +01:00
Max Kellermann
2f51285349
Merge branch 'v0.18.x'
2014-01-20 09:05:36 +01:00
Max Kellermann
ab9c9068d4
Queue: rename struct queue to Queue
...
Works around a build failure on Solaris because annoyingly, Solaris
reserves the name "queue". This rename was pending anyway.
2014-01-20 08:57:46 +01:00
Max Kellermann
5fb72d7c8f
Merge branch 'v0.18.x'
2014-01-15 11:47:49 +01:00
Max Kellermann
313d1d5d83
decoder/ffmpeg: support libav v10_alpha1
2014-01-15 11:33:18 +01:00
Max Kellermann
f882434547
configure.ac: prepare for 0.18.8
2014-01-15 11:22:06 +01:00
Max Kellermann
4734af747b
OutputThread: use real-time priority
2014-01-14 09:59:04 +01:00
Max Kellermann
5d17731b73
UpdateGlue: let the update thread run at "idle" priority
...
The update thread should not affect the rest of the system, therefore
set "idle" priority, and let it only run when nobody else is using the
resources.
2014-01-14 09:09:52 +01:00
Max Kellermann
8cd15a02cd
release v0.18.7
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJS08NxAAoJECNuiljG20USYMYP/06XGbNmMoNy00DMMPVMGgfi
yvsBAM1kXTgh4/vE5LOZRJoXW8HY/p284TnTbjZWW/56c2RFbJblp4Bya28WtZTU
kAVpYD/8ClAHjZjVpZyvKq3G/U3IsM/EP3to8UnVRfoPRSr9LrOiT03TXnpWW5eO
CgrYqRwEf/XuqftmX/KarVEN/IRB1SxhZkcKLfagyW0nuulSwq5aR8tgR0wSu4qf
Yt+e1NQ2N3hJqINdV0Yb+wb2WAWK7jA6T5zw3ukalIp77/EnwvxD7VhnDKA4E4/8
6Y6MtkDb1KjweFXqRlMScEEZ7Xtvfa8fDkbXGV09jpcKBtN+M59L4+VP5ZC1d8bZ
VDoHOqIwpLsszdhP8/LidYgjkPf3tTjY9jCYmF15cu/E6PIHlrhcc1zD1yOps8bm
DFGFqjcct2hkCqovYFSnZGwHwfcOp/KjSVkoALxcmcw3KZDAuo8zhtH65O14UYdb
LGwotGQOnjDrWyd+Mt6eNyVY65GWuzNYazuCVsDcJqGM66sXIsfXgGKpOtTByAGU
0fYCq6apreGKhNXHoYeNwD5OhbffXWobA8nSWJhyeUu0FGMyNDbX/OET/5d2SCr1
Tm2+DVcBiNxgd4Bc6ddHgzsIem4LzS8VZx07VAwONP5oD4+eCj9wcx5S+0VrKNr9
kld5H4FLAb5fJfcRvKLm
=XVhH
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.7'
2014-01-13 11:52:35 +01:00
Max Kellermann
05ad335ae9
release v0.18.7
2014-01-13 11:39:27 +01:00
Andrée Ekroth
ea771c17c5
Shine encoding plugin
...
This encoding plugin features a fixed-point mp3 encoder,
with faster encoding on architectures without a FPU.
Right now the encoder is limited to stereo and 16 bit depth.
The bitrate and sample rate can be modified in audio_output.
audio_output {
type "httpd"
name "My shine stream"
encoder "shine"
port "8000"
format "44100:16:2"
bitrate "320" # default: 128
}
2014-01-13 11:14:19 +01:00
Max Kellermann
7faeb2ff2b
configure.ac: reject libmpcdec SV7 in configure script
...
Look for symbol "mpc_demux_init" which does not exist in SV7. This
avoids build failures when SV7 was found by configure.ac.
2014-01-11 21:02:12 +01:00
Max Kellermann
71d012fa61
db/proxy: forward "idle" events
...
Send "idle" to the other MPD whenever there's nothing else to do and
forward incoming "idle database" events to all our MPD clients.
2014-01-11 01:11:19 +01:00
Jean-Francois Dockes
406452f019
UPnP database plugin
...
[mk: renamed source files, applied coding style, reduced bloat, using
MPD's threading library, using MPD's error reporting and logging
library and refactoring, fixed lots of bugs]
2014-01-09 20:56:00 +01:00
Max Kellermann
139122c57f
Merge branch 'v0.18.x'
2014-01-08 22:14:12 +01:00
Max Kellermann
fdd76b3461
decoder/faad: fix memory leak
2014-01-08 22:11:00 +01:00
Max Kellermann
e490e5d0ab
playlist/pls: don't free stack buffer
2014-01-08 19:50:44 +01:00
James McGlashan (DarkFox)
d4dea53ae9
http -> https for SoundCloud plugin
2014-01-02 12:29:45 +01:00
Max Kellermann
809b0eb1f5
command: "lsinfo" and "readcomments" allowed for remote files
2013-12-29 18:25:32 +01:00
Max Kellermann
b5f3bfce92
SongUpdate: read tags from songs in an archive
...
Add the TagStream.cxx library, similar to TagFile.cxx, and use it to
load tags from song files inside archives.
2013-12-29 18:15:30 +01:00
Max Kellermann
92a4bf4441
Merge branch 'v0.18.x'
2013-12-29 14:18:19 +01:00
Max Kellermann
d7f80eab68
configure.ac: improved check for libyajl 1.0
...
If we have libyajl 2.0.1 (without a pkg-config file), our configure.ac
would assume this is the libyajl 1.0 API, because the function
yajl_alloc() exists in both. This commit changes the library check to
the function yajl_parse_complete() which was removed in the 2.0 API.
This fixes build failure with libyajl 2.0.1.
2013-12-29 14:12:33 +01:00
Max Kellermann
e30b356eb0
daemon: no initgroups() when already running as the configured user
...
We can assume that initgroups() would be a no-op in that case, however
initgroups() is not allowed for unprivileged users anyway.
2013-12-29 13:59:05 +01:00
Max Kellermann
6a1b2f0387
configure.ac: prepare for 0.18.7
2013-12-29 10:40:59 +01:00
Max Kellermann
5465647c2e
input/smbclient: new input plugin
2013-12-29 01:25:27 +01:00
Max Kellermann
afcf0795c4
pcm/Volume: improved dithering
...
Instead of just adding a rectangular random value before shifting back
to the normal scale, use the existing PcmDither library.
2013-12-28 18:30:24 +01:00
Max Kellermann
64e898f6db
release v0.18.6
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (GNU/Linux)
iQIcBAABAgAGBQJSuWnsAAoJECNuiljG20US3qwP/0WGxzRFU2/dLzX6KG5/n+8R
LqVeX7Ap7vLncA2UQQ2BiddPtF0u9lJOnex64pYCkwwpr4JBmkBa6kTKVGbbXDv5
/tuHeUJk/aWhBJ8Qz/rxmNFBW6tNGlhf+7FVt8vHQqvHn7tWWKRlsQNk6Pd4gGM/
UiMyuA8EtfTJZACPRRZK26H7g7EKIjsGt6vwiuWAh3MxGHWL5R2chuP5Mapi1U4U
Qa1YOUAHlChRxGT+LmNMyKlgq+mqltbKQj+pOLPFuT6Q6BqgZp2Ept5Svod/JamC
yCFRGWYsmRxZ0ZOhtRZACfm/yNzyIhkkvgW8FqM6tINOPrwL2MwAJVMVH3DZM7Aj
/8ltz0OH2s9x9sUfOtxQkK/3bJpBwaDnl+dFQtGIFwigvYLR2Jv2Bl1zQO6+zICu
bdbJS+IcOrElxTnxfir0CVEDysifUQ7/ZSQkwDqpF+RI8E07ZMZZLmXk3S2yX6Fx
6dCwdfIsBAotF7RYsdn4cmRaSEx6Ze+aQr0l5yLh+5sKPEdDRSMrBEnCgPGU94ub
VNl3Cp3dtq5kuSfJ90Mk0QzwVd/kCdKZKBMcTX2zv38NLcX0LCSylM4K9yCi+GR2
gvgAJq9cmbmTEN3+grVdApNx0sqNFrD6pB27KhUKWD0VYypPu7yPPptkOWzSldbz
8JGa8lryMbRmgiXVyivp
=Z823
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.6'
2013-12-24 12:20:24 +01:00
Max Kellermann
fb34519b96
release v0.18.6
2013-12-24 12:01:01 +01:00
Max Kellermann
c05691b546
OutputControl: update both ReplayGainFilters
...
The "mode" of the second ReplayGainFilter was never set, and thus
replay gain was never applied to the new song during cross-fade.
2013-12-24 11:53:21 +01:00
Steven O'Brien
6b3b8c6f2e
fix FfmpegDecoderPlugin to use relative timestamps
2013-12-20 22:28:33 +01:00
Steven O'Brien
35f85ddd86
add draft ALSA input plugin
...
I've created an elementary input plugin that plays sound from the
soundcard, so you can use MPD to listen to anything connected to the
line-in jack, or to Video4Linux FM radio cards that send audio through
the soundcard. There has been a small number of posts here in the
past requesting line-in input, so here is a first, simplistic stab at
it.
The patch adds a new sheme, alsa://, which causes mpd to play data
read directly from a souncdard. It defaults to hw:0,0, but you can
pass any ALSA device name in the URI. So, using mpc for example:
mpc add alsa://
mpc play
will play from device hw:0,0.
To use a diffferent device:
mpc add alsa://hw:1,0
2013-12-19 23:25:50 +01:00
Michal Smucr
e4d69f38b0
riff: recognize upper-case "ID3" chunk name
...
Some tagging libraries (eg. TagLib) produce that variant.
2013-12-19 09:35:54 +01:00
Max Kellermann
c7b1038a9d
Merge branch 'v0.18.x'
2013-12-14 12:37:16 +01:00
Max Kellermann
8e38b4f83c
mixer/alsa: use BlockingCall() instead of EventLoop::AddCall()
...
This is safer, and works without epoll(). Fixes a build failure with
uClibc, which does not support epoll().
2013-12-13 14:35:36 +01:00
mobidyc
96fa69ff6b
SongUpdate: accept files without metadata
...
If the file was recognized by a decoder plugin, accept it - don't
require metadata.
2013-12-10 19:34:35 +01:00
Lukas Stabe
695ca29274
output/osx: fix build failure
2013-12-10 19:19:31 +01:00
Max Kellermann
02e8da6c98
NEWS: add openal line
2013-12-10 19:19:27 +01:00
Max Kellermann
2b717997e2
command: add commands "addtagid", "cleartagid"
2013-12-02 12:50:27 +01:00
Max Kellermann
3e11a28cd9
pcm/SoxrResampler: new resampler option using libsoxr
2013-12-01 19:13:39 +01:00
Max Kellermann
aaeb8150b7
NEWS: prepare for 0.19
2013-12-01 19:13:39 +01:00
Gaetan Bisson
3b0fea5fae
input/cdio_paranoia: support libcdio-paranoia 0.90
2013-11-27 08:25:17 +01:00
Max Kellermann
443516cdda
configure.ac: prepare for 0.18.6
2013-11-27 08:25:17 +01:00
Max Kellermann
57e0cc5442
release v0.18.5
2013-11-23 18:30:12 +01:00
Max Kellermann
d6247902ec
input/curl: work around stream resume bug (fixed in libcurl 7.32.0)
2013-11-23 12:13:41 +01:00
Max Kellermann
fc7d5b055d
PcmResampleLibsamplerate: clip 24 bit data
...
Using pcm_resample_lsr_32() for 24 bit samples works, but may cause 24
bit overflows. This commit makes 24 bit a special case with explicit
clipping.
2013-11-22 23:27:56 +01:00