25typedef std::function<bool(uint8_t* headerData, uint16_t headerSize)>
MARKER_CALLBACK;
32 virtual bool process(uint8_t* headerData, uint16_t headerSize)
const = 0;
39 bool process(uint8_t* headerData, uint16_t headerSize)
const override;
67 void add(
const std::initializer_list<std::pair<const uint16_t, IMarkerProcessor*>>& newMarkers);
73 void synch(uint16_t markerId);
105 bool readId(
bool suppressWarning);
ResWindow.
Definition CompressedChunkCache.h:36
std::function< bool(uint8_t *headerData, uint16_t headerSize)> MARKER_CALLBACK
Definition MarkerParser.h:25
Definition MarkerParser.h:28
virtual ~IMarkerProcessor()=default
virtual bool process(uint8_t *headerData, uint16_t headerSize) const =0
IMarkerProcessor(uint16_t ID)
Definition MarkerParser.cpp:40
uint16_t id
Definition MarkerParser.h:33
IStream * getStream()
Definition MarkerParser.cpp:66
bool endOfCodeStream(void)
Checks if end of code stream has been reached.
Definition MarkerParser.cpp:107
MarkerParser & operator=(const MarkerParser &)=delete
MarkerParser(const MarkerParser &)=delete
IStream * stream_
Definition MarkerParser.h:117
bool process(const IMarkerProcessor *processor, uint16_t markerBodyLength)
Definition MarkerParser.cpp:160
std::pair< bool, uint16_t > processMarker()
Definition MarkerParser.cpp:165
void add(const uint16_t id, IMarkerProcessor *processor)
Definition MarkerParser.cpp:209
static std::string markerString(uint16_t marker)
Definition MarkerParser.cpp:261
static bool readShort(IStream *stream, uint16_t *val)
Definition MarkerParser.cpp:71
bool checkForIllegalTilePart(void)
Check for corrupt images with extra tile parts.
Definition MarkerParser.cpp:248
bool foundEOC_
Definition MarkerParser.h:120
bool readSOTorEOC(void)
Reads next marker, which should be either SOT or EOC.
Definition MarkerParser.cpp:95
void clearProcessors(void)
Definition MarkerParser.cpp:229
std::unordered_map< uint16_t, IMarkerProcessor * > processors_
Definition MarkerParser.h:115
void setStream(IStream *stream, bool ownsStream)
Definition MarkerParser.cpp:57
bool readSOTafterSOD(void)
Reads next SOT after SOD The marker could also be EOC.
Definition MarkerParser.cpp:112
IMarkerProcessor * currentProcessor(void)
Definition MarkerParser.cpp:236
~MarkerParser()
Definition MarkerParser.cpp:50
MarkerScratch scratch_
Definition MarkerParser.h:119
uint16_t currId(void)
Definition MarkerParser.cpp:85
bool readId(bool suppressWarning)
Definition MarkerParser.cpp:194
void synch(uint16_t markerId)
Definition MarkerParser.cpp:81
uint16_t currMarkerId_
Definition MarkerParser.h:116
void setSOT(void)
Definition MarkerParser.cpp:89
bool ownsStream_
Definition MarkerParser.h:118
MARKER_CALLBACK callback_
Definition MarkerParser.h:42
MarkerProcessor(uint16_t ID, MARKER_CALLBACK f)
Definition MarkerParser.cpp:41
bool process(uint8_t *headerData, uint16_t headerSize) const override
Definition MarkerParser.cpp:44
Definition MarkerParser.h:46
bool process(const IMarkerProcessor *handler, uint16_t markerSize)
Definition MarkerParser.cpp:328
uint16_t len_
Definition MarkerParser.h:56
void setStream(IStream *stream)
Definition MarkerParser.cpp:350
MarkerScratch & operator=(const MarkerScratch &)=delete
IStream * stream_
Definition MarkerParser.h:57
uint8_t * buff_
Definition MarkerParser.h:55
MarkerScratch(const MarkerScratch &)=delete
MarkerScratch(void)
Definition MarkerParser.cpp:321
~MarkerScratch(void)
Definition MarkerParser.cpp:324