Grok 20.3.2
grk::PLMarker Struct Reference

Manages raw (uncompressed) PLT and PLM markers. More...

#include <PLMarker.h>

Public Member Functions

 PLMarker (void)
 Constructs a PLMarker.
 ~PLMarker (void)
 Destroys a PLMarker.
void disable (void)
 Disables object in event of corrupt PL marker.
bool isEnabled (void)
 Checks if object is enabled.
void pushInit (bool isFinal)
 Prepares for pushing markers.
bool pushPL (uint32_t len)
 Pushes packet length @len length of packet.
bool write (void)
 Writes marker to stream.
uint32_t getTotalBytesWritten (void)
 Gets total bytes written.
 PLMarker (IStream *strm)
 Constructs a PLMarker.
bool readPLT (uint8_t *headerData, uint16_t headerSize, int16_t tilePartIndex=-1)
 Reads PLT marker.
bool readPLM (uint8_t *headerData, uint16_t headerSize)
 Reads PLM marker.
void rewind (void)
 Resets object for reading packet lengths.
uint32_t pop (void)
 pop next packet length
uint64_t pop (uint64_t numPackets)
 pop length of next set of consecutive packets

Private Member Functions

void clearMarkers (void)
bool findMarker (uint32_t index, bool compress)
Buffer8addNewMarker (uint8_t *data, uint16_t len, int16_t tilePartIndex=-1)
bool readNextByte (uint8_t Iplm, uint32_t *packetLength)

Private Attributes

std::unique_ptr< RAW_PL_MARKER_MAPrawMarkers_
RAW_PL_MARKER_MAP::iterator currMarkerIter_
uint32_t totalBytesWritten_
bool isFinal_
IStreamstream_
bool sequential_
uint32_t packetLen_
uint32_t currMarkerBufIndex_
Buffer8currMarkerBuf_
bool enabled_

Detailed Description

Manages raw (uncompressed) PLT and PLM markers.

Marker data is stored raw, and decompressed on the fly. Pop methods are used to get length of next packet(s)

Constructor & Destructor Documentation

◆ PLMarker() [1/2]

grk::PLMarker::PLMarker ( void )

◆ ~PLMarker()

grk::PLMarker::~PLMarker ( void )

Destroys a PLMarker.

References clearMarkers().

◆ PLMarker() [2/2]

grk::PLMarker::PLMarker ( IStream * strm)
explicit

Constructs a PLMarker.

Parameters
strmIStream for code stream

References PLMarker(), and stream_.

Member Function Documentation

◆ addNewMarker()

Buffer8 * grk::PLMarker::addNewMarker ( uint8_t * data,
uint16_t len,
int16_t tilePartIndex = -1 )
private

References currMarkerIter_, and grk::grklog.

Referenced by pushPL(), readPLM(), and readPLT().

◆ clearMarkers()

void grk::PLMarker::clearMarkers ( void )
private

◆ disable()

void grk::PLMarker::disable ( void )

Disables object in event of corrupt PL marker.

References enabled_.

Referenced by rewind().

◆ findMarker()

bool grk::PLMarker::findMarker ( uint32_t index,
bool compress )
private

◆ getTotalBytesWritten()

uint32_t grk::PLMarker::getTotalBytesWritten ( void )

Gets total bytes written.

Returns
total bytes written

References totalBytesWritten_.

Referenced by grk::FileFormatJP2Compress::transcodeCodestream().

◆ isEnabled()

bool grk::PLMarker::isEnabled ( void )

Checks if object is enabled.

Returns
true if enabled

References enabled_.

◆ pop() [1/2]

uint64_t grk::PLMarker::pop ( uint64_t numPackets)

pop length of next set of consecutive packets

Parameters
numPacketsnumber of packets to generate length for
Returns
length of consecutive packets

References pop().

◆ pop() [2/2]

uint32_t grk::PLMarker::pop ( void )

pop next packet length

Returns
next packet length

References currMarkerBuf_, currMarkerBufIndex_, currMarkerIter_, grk::grklog, rawMarkers_, and readNextByte().

Referenced by pop().

◆ pushInit()

void grk::PLMarker::pushInit ( bool isFinal)

Prepares for pushing markers.

Parameters
isFinaltrue if this is the final Packet Length

References clearMarkers(), isFinal_, and totalBytesWritten_.

Referenced by grk::T2Compress::compressPacketsSimulate(), and grk::FileFormatJP2Compress::transcodeCodestream().

◆ pushPL()

bool grk::PLMarker::pushPL ( uint32_t len)

◆ readNextByte()

bool grk::PLMarker::readNextByte ( uint8_t Iplm,
uint32_t * packetLength )
private

References packetLen_.

Referenced by pop().

◆ readPLM()

bool grk::PLMarker::readPLM ( uint8_t * headerData,
uint16_t headerSize )

Reads PLM marker.

Parameters
headerDataheader data
headerSizeheader size
Returns
true if successful

References addNewMarker(), clearMarkers(), currMarkerIter_, findMarker(), grk::grklog, and rawMarkers_.

◆ readPLT()

bool grk::PLMarker::readPLT ( uint8_t * headerData,
uint16_t headerSize,
int16_t tilePartIndex = -1 )

Reads PLT marker.

Parameters
headerDataheader data
headerSizeheader size
tilePartIndextile part index (optional, -1 to push)
Returns
true if successful

References addNewMarker(), findMarker(), and grk::grklog.

◆ rewind()

void grk::PLMarker::rewind ( void )

Resets object for reading packet lengths.

References currMarkerBuf_, currMarkerBufIndex_, currMarkerIter_, disable(), grk::grklog, and rawMarkers_.

◆ write()

bool grk::PLMarker::write ( void )

Writes marker to stream.

Returns
true if successful

References isFinal_, grk::PLT, rawMarkers_, and stream_.

Member Data Documentation

◆ currMarkerBuf_

Buffer8* grk::PLMarker::currMarkerBuf_
private

Referenced by clearMarkers(), PLMarker(), pop(), and rewind().

◆ currMarkerBufIndex_

uint32_t grk::PLMarker::currMarkerBufIndex_
private

Referenced by PLMarker(), pop(), and rewind().

◆ currMarkerIter_

RAW_PL_MARKER_MAP::iterator grk::PLMarker::currMarkerIter_
private

◆ enabled_

bool grk::PLMarker::enabled_
private

Referenced by disable(), isEnabled(), and PLMarker().

◆ isFinal_

bool grk::PLMarker::isFinal_
private

Referenced by PLMarker(), pushInit(), pushPL(), and write().

◆ packetLen_

uint32_t grk::PLMarker::packetLen_
private

Referenced by PLMarker(), and readNextByte().

◆ rawMarkers_

std::unique_ptr<RAW_PL_MARKER_MAP> grk::PLMarker::rawMarkers_
private

◆ sequential_

bool grk::PLMarker::sequential_
private

Referenced by findMarker(), and PLMarker().

◆ stream_

IStream* grk::PLMarker::stream_
private

Referenced by PLMarker(), PLMarker(), and write().

◆ totalBytesWritten_

uint32_t grk::PLMarker::totalBytesWritten_
private

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