Skip to content

Commit c059a28

Browse files
author
Grok Compression
committed
decompress: header write now executes BEFORE decompression
1 parent 34fa0d1 commit c059a28

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/lib/codec/apps/GrkDecompress.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,7 +1103,12 @@ int GrkDecompress::preProcess(grk_plugin_decompress_callback_info* info)
11031103
goto cleanup;
11041104
}
11051105
}
1106-
// decompress one particular tile
1106+
// 3a. initialize writer before decompress so it's ready for incremental output
1107+
if(!writeInit(info))
1108+
goto cleanup;
1109+
if(!writeHeader(info))
1110+
goto cleanup;
1111+
// 3b. decompress one particular tile
11071112
if(parameters->single_tile_decompress)
11081113
{
11091114
if(!grk_decompress_tile(info->codec, parameters->tile_index))
@@ -1126,10 +1131,6 @@ int GrkDecompress::preProcess(grk_plugin_decompress_callback_info* info)
11261131
failed = false;
11271132
goto cleanup;
11281133
}
1129-
if(!writeInit(info))
1130-
return false;
1131-
if(!writeHeader(info))
1132-
goto cleanup;
11331134
failed = false;
11341135
cleanup:
11351136
if(failed)

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ bool CodeStreamDecompress::readHeader(grk_header_info* headerInfo)
229229
headerImage_->num_precision = headerInfo->num_precision;
230230
}
231231
headerImage_->copyHeaderTo(multiTileComposite_.get());
232+
multiTileComposite_->postReadHeader(&cp_);
232233
multiTileComposite_->validateColourSpace();
233234
uint32_t num_threads = (uint32_t)TFSingleton::num_threads();
234235
coderPool_.makeCoders(num_threads, 6, 6, [this]() -> std::shared_ptr<t1::ICoder> {

0 commit comments

Comments
 (0)