Skip to content

Commit 8ae9d6a

Browse files
author
Grok Compression
committed
grk_decompress_detect_format: better error logging
1 parent 6b1ae69 commit 8ae9d6a

File tree

3 files changed

+57
-5
lines changed

3 files changed

+57
-5
lines changed

.vscode/launch.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,54 @@
3939
"ignoreFailures": true
4040
}
4141
]
42+
},
43+
{
44+
"name": "crash",
45+
"type": "cppdbg",
46+
"request": "launch",
47+
"program": "${workspaceFolder}/build/bin/grk_decompress",
48+
"args": [
49+
"-i",
50+
"~/temp/input_01",
51+
"-o",
52+
"~/temp/input_01.tif",
53+
"-v"
54+
],
55+
"stopAtEntry": true,
56+
"cwd": "${workspaceFolder}",
57+
"environment": [],
58+
"MIMode": "gdb",
59+
"setupCommands": [
60+
{
61+
"description": "Enable pretty-printing for gdb",
62+
"text": "-enable-pretty-printing",
63+
"ignoreFailures": true
64+
}
65+
]
66+
},
67+
{
68+
"name": "dump",
69+
"type": "cppdbg",
70+
"request": "launch",
71+
"program": "${workspaceFolder}/build/bin/grk_dump",
72+
"args": [
73+
"-i",
74+
"~/src/grok-test-data/input/nonregression/multi_tile_truncated_rgb.jp2",
75+
"-o",
76+
"~/temp/trunc.txt",
77+
"-v"
78+
],
79+
"stopAtEntry": true,
80+
"cwd": "${workspaceFolder}",
81+
"environment": [],
82+
"MIMode": "gdb",
83+
"setupCommands": [
84+
{
85+
"description": "Enable pretty-printing for gdb",
86+
"text": "-enable-pretty-printing",
87+
"ignoreFailures": true
88+
}
89+
]
4290
}
4391
]
4492
}

src/lib/codec/jp2/GrkDump.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,7 @@ static int parseCommandLine(int argc, char** argv, grk_decompress_parameters* pa
172172
{
173173
const char* infile = inputArg.getValue().c_str();
174174
if(!grk_decompress_detect_format(infile, &parameters->decod_format))
175-
{
176-
spdlog::error("Unknown input file format: {} \n"
177-
" Known file formats are *.j2k, *.jp2 or *.jpc",
178-
infile);
179175
return 1;
180-
}
181176
if(grk::strcpy_s(parameters->infile, sizeof(parameters->infile), infile) != 0)
182177
{
183178
spdlog::error("Path is too long");

src/lib/core/grok.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,13 +283,22 @@ bool GRK_CALLCONV grk_decompress_detect_format(const char* fileName, GRK_CODEC_F
283283

284284
auto reader = fopen(fileName, "rb");
285285
if(!reader)
286+
{
287+
Logger::logger_.error("Unable to open file {}.", fileName);
286288
return false;
289+
}
287290

288291
bytesRead = fread(buf, 1, 12, reader);
289292
if(fclose(reader))
293+
{
294+
Logger::logger_.error("Unable to close file {}.", fileName);
290295
return false;
296+
}
291297
if(bytesRead != 12)
298+
{
299+
Logger::logger_.error("Insufficient bytes to detect JPEG 2000 format in file {}.", fileName);
292300
return false;
301+
}
293302

294303
return grk_decompress_buffer_detect_format(buf, 12, fmt);
295304
}

0 commit comments

Comments
 (0)