Commit Graph

10778 Commits

Author SHA1 Message Date
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