Play-/tools/MediaCenter/Source/VideoStream_ReadSequenceHeader.h

60 lines
1.2 KiB
C
Raw Permalink Normal View History

#ifndef _VIDEOSTREAM_READSEQUENCEHEADER_H_
#define _VIDEOSTREAM_READSEQUENCEHEADER_H_
#include "MpegVideoState.h"
#include "VideoStream_Program.h"
#include "VideoStream_ReadStructure.h"
namespace VideoStream
{
class ReadSequenceHeader : public Program
{
public:
2018-04-30 21:01:23 +01:00
ReadSequenceHeader();
virtual ~ReadSequenceHeader();
2018-04-30 21:01:23 +01:00
void Reset();
void Execute(void*, Framework::CBitStream&);
class ReadSequenceHeaderStruct : public ReadStructure<SEQUENCE_HEADER>
{
public:
2018-04-30 21:01:23 +01:00
ReadSequenceHeaderStruct();
virtual ~ReadSequenceHeaderStruct();
};
class QuantizerMatrixReader : public Program
{
public:
2018-04-30 21:01:23 +01:00
QuantizerMatrixReader();
virtual ~QuantizerMatrixReader();
2018-04-30 21:01:23 +01:00
void Reset();
void Execute(void*, Framework::CBitStream&);
void SetTable(uint8*);
private:
2018-04-30 21:01:23 +01:00
uint8* m_table;
unsigned int m_currentIndex;
};
private:
enum PROGRAM_STATE
{
STATE_INIT,
STATE_READSTRUCT,
STATE_CHECKREADINTRAMATRIX,
STATE_READINTRAMATRIX,
STATE_CHECKREADNONINTRAMATRIX,
STATE_READNONINTRAMATRIX,
STATE_DONE,
};
2018-04-30 21:01:23 +01:00
PROGRAM_STATE m_programState;
ReadSequenceHeaderStruct m_structureReader;
QuantizerMatrixReader m_quantizerMatrixReader;
};
}
#endif