Skip to content

Commit 6b40506

Browse files
author
Grok Compression
committed
TileProcessor: check success_ in scheduleT2T1 in single threaded mode
1 parent dacf7fb commit 6b40506

File tree

4 files changed

+17
-19
lines changed

4 files changed

+17
-19
lines changed

src/lib/core/codestream/decompress/CodeStreamDecompress.cpp

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -632,16 +632,11 @@ bool CodeStreamDecompress::schedule(ITileProcessor* tileProcessor, bool multiTil
632632
// T2 + T1 decompression
633633
// Once we schedule a processor for T1 compression, we will destroy it
634634
// regardless of success or not
635-
if(!tileProcessor->scheduleT2T1(
636-
&coderPool_, multiTile ? scratchImage_->getBounds() : headerImage_->getBounds(),
637-
multiTile ? postMultiTile(tileProcessor) : postSingleTile(tileProcessor),
638-
decompressTileFutureManager_))
639-
{
640-
grklog.error("Failed to decompress tile %u/%u", tileProcessor->getIndex(),
641-
tilesToDecompress_.getTotalNumTiles());
642-
success_ = false;
643-
return false;
644-
}
635+
tileProcessor->scheduleT2T1(
636+
&coderPool_, multiTile ? scratchImage_->getBounds() : headerImage_->getBounds(),
637+
multiTile ? postMultiTile(tileProcessor) : postSingleTile(tileProcessor),
638+
decompressTileFutureManager_);
639+
645640
return true;
646641
}
647642
}

src/lib/core/tile_processor/ITileProcessor.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,8 @@ struct ITileProcessor
126126
* @param unreducedImageBounds Bounds of the unreduced image
127127
* @param post Post-scheduling callback function
128128
* @param futures Manager for tile futures
129-
* @return true if scheduling succeeds, false otherwise
130129
*/
131-
virtual bool scheduleT2T1(CoderPool* coderPool, Rect32 unreducedImageBounds,
130+
virtual void scheduleT2T1(CoderPool* coderPool, Rect32 unreducedImageBounds,
132131
std::function<void()> post, TileFutureManager& futures) = 0;
133132

134133
/**

src/lib/core/tile_processor/TileProcessor.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,9 @@ bool TileProcessor::decompressWithTLM(const std::shared_ptr<TPFetchSeq>& tilePar
452452
if(!decompressPrepareWithTLM(tilePartFetchSeq))
453453
return false;
454454

455-
return scheduleT2T1(coderPool, unreducedImageBounds, post, futures);
455+
scheduleT2T1(coderPool, unreducedImageBounds, post, futures);
456+
457+
return true;
456458
}
457459

458460
bool TileProcessor::readSOT(IStream* stream, uint8_t* headerData, uint16_t headerSize,
@@ -973,7 +975,7 @@ void TileProcessor::post_decompressT2T1(GrkImage* scratch)
973975
}
974976
}
975977

976-
bool TileProcessor::scheduleT2T1(CoderPool* coderPool, Rect32 unreducedImageBounds,
978+
void TileProcessor::scheduleT2T1(CoderPool* coderPool, Rect32 unreducedImageBounds,
977979
std::function<void()> post, TileFutureManager& futures)
978980
{
979981
unreducedImageWindow_ = unreducedImageBounds;
@@ -1160,10 +1162,13 @@ bool TileProcessor::scheduleT2T1(CoderPool* coderPool, Rect32 unreducedImageBoun
11601162
else
11611163
{
11621164
t2Parse();
1163-
allocAndSchedule();
1164-
post();
1165+
if(success_)
1166+
{
1167+
allocAndSchedule();
1168+
if(success_)
1169+
post();
1170+
}
11651171
}
1166-
return true;
11671172
}
11681173

11691174
uint8_t TileProcessor::getMaxNumDecompressResolutions(void)

src/lib/core/tile_processor/TileProcessor.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,8 @@ struct TileProcessor : virtual public ITileProcessor
107107
* @param unreducedImageBounds
108108
* @param post
109109
* @param futures
110-
* @return true if successful
111110
*/
112-
bool scheduleT2T1(CoderPool* coderPool, Rect32 unreducedImageBounds, std::function<void()> post,
111+
void scheduleT2T1(CoderPool* coderPool, Rect32 unreducedImageBounds, std::function<void()> post,
113112
TileFutureManager& futures) override;
114113
/**
115114
* @brief Performs post T2+T1 processing

0 commit comments

Comments
 (0)