Max Kellermann
|
44219d5e91
|
decoder/flac: refactor flac_convert() to class FlacPcmImport
|
2016-07-11 23:34:55 +02:00 |
|
Max Kellermann
|
b9de3270f6
|
decoder/flac: specialize "stereo" for all bit depths
|
2016-07-11 23:33:34 +02:00 |
|
Max Kellermann
|
590d6faeb0
|
decoder/flac: convert flac_convert_*() to templates
|
2016-07-11 23:27:57 +02:00 |
|
Max Kellermann
|
62e96e9a58
|
decoder/flac: pass number of frames to flac_convert()
|
2016-07-11 23:24:48 +02:00 |
|
Max Kellermann
|
1c818ef0a0
|
decoder/flac: improve warning message about unsupported bit depth
|
2016-07-11 23:13:33 +02:00 |
|
Max Kellermann
|
d6ce2e3671
|
decoder/flac: move functions into struct FlacDecoder
|
2016-07-11 23:11:22 +02:00 |
|
Max Kellermann
|
85b6a52662
|
decoder/flac: use C++11 initializers
|
2016-07-11 22:44:39 +02:00 |
|
Max Kellermann
|
0246082b9b
|
decoder/flac: move position code to FlacDecoder::GetDeltaPosition()
|
2016-07-11 22:38:26 +02:00 |
|
Max Kellermann
|
3b031c6ba5
|
decoder/flac: throw exception on FLAC__stream_decoder_new() failure
|
2016-07-11 22:38:03 +02:00 |
|
Max Kellermann
|
74740ca50b
|
decoder/flac: add class FlacStreamDecoder wrapping a FLAC__StreamDecoder*
|
2016-07-11 22:37:55 +02:00 |
|
Max Kellermann
|
631baa7120
|
decoder/flac: eliminate redundant FlacDecoder attributes
|
2016-07-11 22:37:52 +02:00 |
|
Max Kellermann
|
657d6edff7
|
decoder/flac: add FlacInput getter methods
|
2016-07-11 22:37:49 +02:00 |
|
Max Kellermann
|
737c5a9549
|
decoder/flac: rename struct flac_data to FlacDecoder
|
2016-07-11 22:37:46 +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
|
ab95027fc6
|
decoder/flac: suppress warning at end of stream
This is required if a stream ands without another chained FLAC file.
|
2016-07-08 23:19:47 +02:00 |
|
Max Kellermann
|
ed3bc4ab63
|
decoder/flac: move code to FlacInitAndDecode()
|
2016-07-08 23:03:49 +02:00 |
|
Max Kellermann
|
68064f1aa6
|
decoder/flac: move duplicate code to flac_data::Initialize()
|
2016-07-08 22:44:23 +02:00 |
|
Max Kellermann
|
475ac76a5f
|
decoder/flac: late "total_frames" initialization
|
2016-07-08 22:43:31 +02:00 |
|
Max Kellermann
|
79d4f8674c
|
decoder/flac: remove "duration" parameter from flac_decoder_initialize()
It's always 0.
|
2016-07-08 22:41:19 +02:00 |
|
Max Kellermann
|
e42eed4d4c
|
decoder/flac: remove pointless check
|
2016-07-08 22:41:19 +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
|
7f36923eb4
|
decoder/flac: pass SignedSongTime to decoder_initialized()
|
2016-07-08 22:32:23 +02:00 |
|
Max Kellermann
|
2ca8d69126
|
decoder/flac: document flac_data::position
|
2016-07-08 22:20:16 +02:00 |
|
Max Kellermann
|
70367d70c8
|
decoder/flac: remove obsolete sub-song support
This is obsolete because it has been moved to the MPD core.
|
2016-07-08 21:59:30 +02:00 |
|
Max Kellermann
|
f9130f42a2
|
decoder/flac: try to recover from seek error()
libFLAC API documentation suggests that FLAC__stream_decoder_flush()
should be called to recover from FLAC__STREAM_DECODER_SEEK_ERROR.
|
2016-07-05 19:29:56 +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
|
34e91850d9
|
decoder/pcm: assume that audio/L16 is big-endian
See https://bugs.musicpd.org/view.php?id=4547
|
2016-07-01 21:34:56 +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
|
4ecd325371
|
decoder/flac: log seek errors
|
2016-06-13 18:37:45 +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
|
2ee43c403c
|
decoder/vorbis: reimplement using class OggDecoder
Use libvorbis instead of libvorbisfile, which gives us more control
over the decoding process.
|
2016-05-14 12:31:12 +02:00 |
|
Max Kellermann
|
bbbda7f812
|
decoder/opus: move code to new class OggDecoder
Prepare to reuse the same code for a new Vorbis decoder plugin based
on libvorbis instead of libvorbisfile.
|
2016-05-14 11:31:31 +02:00 |
|
Max Kellermann
|
e958900380
|
decoder/vorbis: reimplement _scan_stream() with plain libvorbis
|
2016-05-14 10:52:52 +02:00 |
|
Max Kellermann
|
74926c1dd3
|
decoder/opus: move _scan_stream() code to OggReadPacket()
|
2016-05-14 10:39:53 +02:00 |
|
Max Kellermann
|
2654888782
|
decoder/OggFind: move to lib/xiph/
|
2016-05-14 10:34:05 +02:00 |
|
Max Kellermann
|
b5ecfb4c9a
|
decoder/opus: move code to class OggVisitor
|
2016-05-13 13:37:49 +02:00 |
|
Max Kellermann
|
5acc77a163
|
decoder/opus: change return types to void
|
2016-05-13 13:24:32 +02:00 |
|
Max Kellermann
|
0709878b4c
|
decoder/API: add class StopDecoder
|
2016-05-13 13:23:24 +02:00 |
|
Max Kellermann
|
662e477028
|
decoder/opus: throw exceptions instead of returning DecoderCommand::STOP
|
2016-05-13 13:18:19 +02:00 |
|
Max Kellermann
|
9252432bc0
|
decoder/opus: move OggSyncState into class MPDOpusDecoder
|
2016-05-13 12:25:30 +02:00 |
|
Max Kellermann
|
f057f6768f
|
decoder/opus: pass DecoderReader to constructor
|
2016-05-13 12:16:22 +02:00 |
|
Max Kellermann
|
e8fd771b91
|
decoder/opus: change Decoder pointers to references
|
2016-05-13 10:39:36 +02:00 |
|
Max Kellermann
|
fa4178fefa
|
decoder/opus: remove ogg_page parameter from constructor
Initialize the OggStreamState as soon as the first page is seen; no
special code needed in the caller.
|
2016-05-11 17:57:51 +02:00 |
|
Max Kellermann
|
1af59d31b9
|
decoder/opus: add method IsInitialized()
|
2016-05-11 17:27:26 +02:00 |
|
Max Kellermann
|
20758cef30
|
decoder/opus: make internal methods "private"
|
2016-05-11 17:27:02 +02:00 |
|
Max Kellermann
|
272938529d
|
decoder/opus: move everything into anonymous namespace
|
2016-05-11 17:25:43 +02:00 |
|
Max Kellermann
|
a1a26b70bc
|
decoder/opus: make opus_serialno a local variable
|
2016-05-09 15:43:15 +02:00 |
|
Max Kellermann
|
34a7f86a07
|
decoder/opus: use class OggStreamState in _stream_decode()
|
2016-05-09 15:41:03 +02:00 |
|
Max Kellermann
|
e7311ac2f3
|
decoder/opus: use C++11 initializers
|
2016-05-09 15:41:01 +02:00 |
|