37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
#ifndef __MLP_STREAM_READER_H
|
|
#define __MLP_STREAM_READER_H
|
|
|
|
#include "avPacket.h"
|
|
#include "mlpCodec.h"
|
|
#include "simplePacketizerReader.h"
|
|
|
|
class MLPStreamReader : public SimplePacketizerReader, public MLPCodec
|
|
{
|
|
public:
|
|
MLPStreamReader() : SimplePacketizerReader()
|
|
{
|
|
m_demuxedTHDSamples = 0;
|
|
m_totalTHDSamples = 0;
|
|
};
|
|
int getTSDescriptor(uint8_t* dstBuff, bool blurayMode, bool hdmvDescriptors) override;
|
|
int getFreq() override { return m_samplerate; }
|
|
int getChannels() override { return m_channels; }
|
|
|
|
protected:
|
|
int getHeaderLen() override;
|
|
int decodeFrame(uint8_t* buff, uint8_t* end, int& skipBytes, int& skipBeforeBytes) override;
|
|
uint8_t* findFrame(uint8_t* buff, uint8_t* end) override { return MLPCodec::findFrame(buff, end); }
|
|
double getFrameDurationNano() override { return (double)MLPCodec::getFrameDurationNano(); }
|
|
const CodecInfo& getCodecInfo() override { return mlpCodecInfo; }
|
|
const std::string getStreamInfo() override;
|
|
|
|
int readPacket(AVPacket& avPacket) override;
|
|
int flushPacket(AVPacket& avPacket) override;
|
|
|
|
private:
|
|
int m_demuxedTHDSamples;
|
|
uint64_t m_totalTHDSamples;
|
|
};
|
|
|
|
#endif
|