| 12345678910111213141516171819202122232425262728293031 | 
							- #pragma once
 
- #include <stdint.h>  // for uint8_t, uint32_t, int16_t
 
- #include "BaseCodec.h"     // for BaseCodec
 
- #include "ivorbiscodec.h"  // for vorbis_comment, vorbis_dsp_state, vorbis_info
 
- #include "ogg.h"           // for ogg_packet
 
- namespace bell {
 
- class AudioContainer;
 
- class VorbisDecoder : public BaseCodec {
 
-  private:
 
-   vorbis_info* vi = nullptr;
 
-   vorbis_comment* vc = nullptr;
 
-   vorbis_dsp_state* vd = nullptr;
 
-   ogg_packet op = {};
 
-   int16_t* pcmData;
 
-  public:
 
-   VorbisDecoder();
 
-   ~VorbisDecoder();
 
-   bool setup(uint32_t sampleRate, uint8_t channelCount,
 
-              uint8_t bitDepth) override;
 
-   uint8_t* decode(uint8_t* inData, uint32_t& inLen, uint32_t& outLen) override;
 
-   bool setup(AudioContainer* container) override;
 
-  private:
 
-   void setPacket(uint8_t* inData, uint32_t inLen) const;
 
- };
 
- }  // namespace bell
 
 
  |