tsMuxer/tsMuxer/mlpStreamReader.h

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