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
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