1234567891011121314151617181920212223242526 |
- #pragma once
- #include "BaseCodec.h"
- #include "ivorbiscodec.h"
- namespace bell {
- 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
|