| 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_packetnamespace 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
 |