diff options
author | Max Kellermann <max@duempel.org> | 2016-05-11 17:57:51 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2016-05-11 17:57:51 +0200 |
commit | fa4178fefa44064b839fef1ba850f0d757ed25b0 (patch) | |
tree | 12838becbe96a11c295aa4f7074a6abe51672a2f | |
parent | 1af59d31b92f9a3d817dde6c026c5ab43d1e9499 (diff) |
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.
-rw-r--r-- | src/decoder/plugins/OpusDecoderPlugin.cxx | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/decoder/plugins/OpusDecoderPlugin.cxx b/src/decoder/plugins/OpusDecoderPlugin.cxx index 027957f31..ab2ec6409 100644 --- a/src/decoder/plugins/OpusDecoderPlugin.cxx +++ b/src/decoder/plugins/OpusDecoderPlugin.cxx @@ -95,14 +95,21 @@ class MPDOpusDecoder { public: MPDOpusDecoder(Decoder &_decoder, - InputStream &_input_stream, - ogg_page &first_page) + InputStream &_input_stream) :decoder(_decoder), input_stream(_input_stream), - os(first_page) {} + os(0) {} ~MPDOpusDecoder(); /** + * Has the OggStreamState been initialized with the first + * serial? + */ + bool HasSerial() const { + return os.GetSerialNo() != 0; + } + + /** * Has decoder_initialized() been called yet? */ bool IsInitialized() const { @@ -402,11 +409,7 @@ mpd_opus_stream_decode(Decoder &decoder, DecoderReader reader(decoder, input_stream); OggSyncState oy(reader); - ogg_page page; - if (!oy.ExpectPage(page)) - return; - - MPDOpusDecoder d(decoder, input_stream, page); + MPDOpusDecoder d(decoder, input_stream); while (true) { auto cmd = d.HandlePackets(); |