Grok 20.3.2
grk::PacketParser Class Reference

Parses packet header and packer data. More...

#include <PacketParser.h>

Public Member Functions

 PacketParser (ITileProcessor *tileProcessor, uint16_t packetSequenceNumber, uint16_t compno, uint8_t resno, uint64_t precinctIndex, uint16_t layno, uint32_t cachedLength, SparseBuffer *compressedPackets)
 Constructs PacketParser.
virtual ~PacketParser (void)=default
 Destroys PacketParser.
uint32_t readHeader (void)
 Reads packet header.
uint32_t getHeaderLength (void) const
 Gets packet header length (valid after readHeader).
void parsePacketData (void)
void print (void)
 Printout for debugging.

Private Member Functions

void readData (void)
 Reads packet data.
void readDataFinalize (void)
 Finalizes packet data reading after it is complete.

Private Attributes

ITileProcessortileProcessor_
 tile processor
uint16_t tileIndex_ = 0
uint16_t packetSequenceNumber_ = 0
 packet sequence number
uint16_t compno_ = 0
 component number
uint8_t resno_ = 0
 resolution number
uint64_t precinctIndex_ = 0
 precinct index
uint16_t layno_ = 0
 layer number
SparseBufferpackets_ = nullptr
 SparseBuffer of all packets
uint8_t * layerData_ = nullptr
 packets_ current chunk pointer aka layer data
size_t layerBytesAvailable_ = 0
 all available bytes in layer (includes packet header and data)
bool tagBitsPresent_ = false
 true if tag bits present in packet header
uint32_t headerLength_ = 0
 packet header length - does not include packed header bytes
uint32_t signalledLayerDataBytes_ = 0
 length of packet data as signalled in packet header
uint32_t plLength_ = 0
 total packet length as signalled in marker (PLT/PLM)
bool parsedHeader_ = false
 true if header has been parsed
bool headerError_ = false
 true of there was an error reading the header

Detailed Description

Parses packet header and packer data.

Constructor & Destructor Documentation

◆ PacketParser()

grk::PacketParser::PacketParser ( ITileProcessor * tileProcessor,
uint16_t packetSequenceNumber,
uint16_t compno,
uint8_t resno,
uint64_t precinctIndex,
uint16_t layno,
uint32_t cachedLength,
SparseBuffer * compressedPackets )

Constructs PacketParser.

Parameters
tileProcessorTileProcssor
packetSequenceNumberpacket sequence number
compnocomponent number
resnoresolution number
precinctIndexprecinct index
laynolayer number
cachedLengthsignalled length from PLT/PLM marker, or cached length from previous read of header
compressedPacketsSparseBuffer holding packets

References compno_, layerBytesAvailable_, layerData_, layno_, packets_, packetSequenceNumber_, plLength_, precinctIndex_, resno_, tileIndex_, and tileProcessor_.

◆ ~PacketParser()

virtual grk::PacketParser::~PacketParser ( void )
virtualdefault

Destroys PacketParser.

Member Function Documentation

◆ getHeaderLength()

uint32_t grk::PacketParser::getHeaderLength ( void ) const

Gets packet header length (valid after readHeader).

Returns
header length in bytes

References headerLength_.

Referenced by grk::T2Decompress::parsePacket().

◆ parsePacketData()

void grk::PacketParser::parsePacketData ( void )

◆ print()

void grk::PacketParser::print ( void )

◆ readData()

void grk::PacketParser::readData ( void )
private

◆ readDataFinalize()

void grk::PacketParser::readDataFinalize ( void )
private

Finalizes packet data reading after it is complete.

References tileProcessor_.

Referenced by readData().

◆ readHeader()

Member Data Documentation

◆ compno_

uint16_t grk::PacketParser::compno_ = 0
private

component number

Referenced by PacketParser(), print(), readData(), and readHeader().

◆ headerError_

bool grk::PacketParser::headerError_ = false
private

true of there was an error reading the header

Referenced by readHeader().

◆ headerLength_

uint32_t grk::PacketParser::headerLength_ = 0
private

packet header length - does not include packed header bytes

Referenced by getHeaderLength(), print(), and readHeader().

◆ layerBytesAvailable_

size_t grk::PacketParser::layerBytesAvailable_ = 0
private

all available bytes in layer (includes packet header and data)

Referenced by PacketParser(), print(), readData(), and readHeader().

◆ layerData_

uint8_t* grk::PacketParser::layerData_ = nullptr
private

packets_ current chunk pointer aka layer data

Referenced by PacketParser(), readData(), and readHeader().

◆ layno_

uint16_t grk::PacketParser::layno_ = 0
private

layer number

Referenced by PacketParser(), print(), readData(), and readHeader().

◆ packets_

SparseBuffer* grk::PacketParser::packets_ = nullptr
private

SparseBuffer of all packets

Referenced by PacketParser(), print(), and readHeader().

◆ packetSequenceNumber_

uint16_t grk::PacketParser::packetSequenceNumber_ = 0
private

packet sequence number

This is the generated packet sequence number. We compare to the signalled sequence number to detect pack stream corruption

Referenced by PacketParser(), and readHeader().

◆ parsedHeader_

bool grk::PacketParser::parsedHeader_ = false
private

true if header has been parsed

Referenced by readHeader().

◆ plLength_

uint32_t grk::PacketParser::plLength_ = 0
private

total packet length as signalled in marker (PLT/PLM)

Referenced by PacketParser(), print(), and readHeader().

◆ precinctIndex_

uint64_t grk::PacketParser::precinctIndex_ = 0
private

precinct index

Referenced by PacketParser(), print(), readData(), and readHeader().

◆ resno_

uint8_t grk::PacketParser::resno_ = 0
private

resolution number

Referenced by PacketParser(), print(), readData(), and readHeader().

◆ signalledLayerDataBytes_

uint32_t grk::PacketParser::signalledLayerDataBytes_ = 0
private

length of packet data as signalled in packet header

Referenced by print(), readData(), and readHeader().

◆ tagBitsPresent_

bool grk::PacketParser::tagBitsPresent_ = false
private

true if tag bits present in packet header

Referenced by print(), readData(), and readHeader().

◆ tileIndex_

uint16_t grk::PacketParser::tileIndex_ = 0
private

Referenced by PacketParser(), and readHeader().

◆ tileProcessor_

ITileProcessor* grk::PacketParser::tileProcessor_
private

tile processor

Referenced by PacketParser(), readData(), readDataFinalize(), and readHeader().


The documentation for this class was generated from the following files: