12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #ifndef OPUSVORBISDECODER_HPP
- #define OPUSVORBISDECODER_HPP
- #include "WebMDemuxer.hpp"
- struct VorbisDecoder;
- struct OpusDecoder;
- class OpusVorbisDecoder
- {
- OpusVorbisDecoder(const OpusVorbisDecoder &);
- void operator =(const OpusVorbisDecoder &);
- public:
- OpusVorbisDecoder(const WebMDemuxer &demuxer);
- ~OpusVorbisDecoder();
- bool isOpen() const;
- inline int getBufferSamples() const
- {
- return m_numSamples;
- }
- bool getPCMF(WebMFrame &frame, float *buffer, int &numOutSamples);
- bool getPCMS16(WebMFrame &frame, short *buffer, int &numOutSamples);
- private:
- bool openVorbis(const WebMDemuxer &demuxer);
- bool openOpus(const WebMDemuxer &demuxer);
- void close();
- VorbisDecoder *m_vorbis;
- OpusDecoder *m_opus;
- int m_numSamples;
- int m_channels;
- };
- #endif
|