2
0

VorbisDecoder.h 637 B

1234567891011121314151617181920212223242526
  1. #pragma once
  2. #include "BaseCodec.h"
  3. #include "ivorbiscodec.h"
  4. namespace bell {
  5. class VorbisDecoder : public BaseCodec {
  6. private:
  7. vorbis_info* vi = nullptr;
  8. vorbis_comment* vc = nullptr;
  9. vorbis_dsp_state* vd = nullptr;
  10. ogg_packet op = {};
  11. int16_t* pcmData;
  12. public:
  13. VorbisDecoder();
  14. ~VorbisDecoder();
  15. bool setup(uint32_t sampleRate, uint8_t channelCount,
  16. uint8_t bitDepth) override;
  17. uint8_t* decode(uint8_t* inData, uint32_t& inLen, uint32_t& outLen) override;
  18. bool setup(AudioContainer* container) override;
  19. private:
  20. void setPacket(uint8_t* inData, uint32_t inLen) const;
  21. };
  22. } // namespace bell