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
|
287ef181ba
|
util/MimeType: add ParseMimeTypeParameters()
|
2016-06-10 22:52:35 +02:00 |
Max Kellermann
|
bc63810ebd
|
doc/user: mention the "pcm" decoder plugin
|
2016-06-10 22:52:35 +02:00 |
Max Kellermann
|
92cdea123e
|
TagStream, decoder/Thread, ...: ignore MIME type parameters for matching plugins
|
2016-06-10 22:24:13 +02:00 |
Max Kellermann
|
e4c7e343c8
|
util/StringUtil: use CamelCase
|
2016-06-10 22:08:13 +02:00 |
Max Kellermann
|
6b75be183d
|
m4: update to autoconf-archive 20150925
|
2016-05-27 15:27:44 +02:00 |
Max Kellermann
|
718f6d9cef
|
python/libs: upgrade Boost to 1.61.0
|
2016-05-27 15:27:44 +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
|
24fa3f5e7b
|
Revert "decoder/Thread: flush last chunk only on success"
This reverts commit 995cd95474 . It was
a bad idea because it caused assertion failures when a decoder plugin
aborted with an exception.
|
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
|
49597b0e9c
|
Makefile.am: compile OggVisitor.cxx only if libogg is used
|
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
|
07fa3764ef
|
lib/xiph/OggStreamState: add wrapper for ogg_stream_reset()
|
2016-05-13 13:37:45 +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
|
b7b7c381ee
|
decoder/Thread: catch exceptions
Allow decoders to throw std::runtime_error.
|
2016-05-13 13:01:39 +02:00 |
Max Kellermann
|
995cd95474
|
decoder/Thread: flush last chunk only on success
|
2016-05-13 13:01:31 +02:00 |
Max Kellermann
|
fe8a13f76f
|
decoder/Thread: move code to DecoderUnlockedRunUri()
|
2016-05-13 13:00:40 +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
|
806bf0be8d
|
decoder/Reader: add methods GetDecoder(), GetInputStream()
|
2016-05-13 11:27:06 +02:00 |
Max Kellermann
|
958506a108
|
decoder/Reader: change Decoder pointer to reference
|
2016-05-13 10:40:10 +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
|
a67b7266ed
|
util/AllocatedString: work around bogus gcc6 warning
|
2016-05-11 17:10:15 +02:00 |
Max Kellermann
|
f26159a0e3
|
lib/xiph/OggUtil: move code into class OggSyncState
|
2016-05-09 16:29:04 +02:00 |
Max Kellermann
|
675e8667c2
|
lib/xiph/OggSyncState: remove unused method ExpectFirstPage()
|
2016-05-09 16:27:11 +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 |
Max Kellermann
|
8d9ecc0c62
|
decoder/opus: make variables more local
|
2016-05-09 15:41:00 +02:00 |
Max Kellermann
|
f01b991108
|
decoder/opus: use class OggStreamState in _scan_stream()
|
2016-05-09 15:40:59 +02:00 |
Max Kellermann
|
f80736c3d7
|
lib/xiph/OggStreamState: add method GetSerialNo()
|
2016-05-09 15:40:50 +02:00 |
Max Kellermann
|
2c7f69cf85
|
lib/xiph/OggStreamState: add constructor with ogg_page
|
2016-05-09 15:38:29 +02:00 |
Max Kellermann
|
348ecc1118
|
lib/xiph/OggStreamState: add method PageIn()
|
2016-05-09 15:29:37 +02:00 |
Max Kellermann
|
a9678f0ae0
|
decoder/opus: fix minor typo
|
2016-05-09 15:00:04 +02:00 |
Max Kellermann
|
461f298d2c
|
lib/xiph/OggStream: remove obsolete class
|
2016-05-09 14:55:58 +02:00 |
Max Kellermann
|
068de7cf40
|
encoder/ogg: use class OggStreamState
|
2016-05-09 14:51:07 +02:00 |
Max Kellermann
|
d04eb87c4f
|
encoder/opus: divert to OggEncoder::Read()
|
2016-05-09 14:51:05 +02:00 |
Max Kellermann
|
8af68db965
|
lib/xiph/OggStreamState: new ogg_stream_state wrapper
|
2016-05-09 14:50:39 +02:00 |
Max Kellermann
|
1cf632e98b
|
lib/xiph/OggStream: move code to ReadPage()
|
2016-05-09 14:22:12 +02:00 |
Max Kellermann
|
58c11c3128
|
encoder/vorbis: move vorbis_info_init() call to constructor
|
2016-05-09 13:22:59 +02:00 |
Max Kellermann
|
efcda95dda
|
encoder/vorbis: remove vorbis_info_clear() calls from error code paths
The destructor will call this in any case.
|
2016-05-09 13:22:43 +02:00 |