Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions crnlib/crn_jpgd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2330,8 +2330,12 @@ void jpeg_decoder::init_frame() {
int i;

if (m_comps_in_frame == 1) {
if ((m_comp_h_samp[0] != 1) || (m_comp_v_samp[0] != 1))
stop_decoding(JPGD_UNSUPPORTED_SAMP_FACTORS);
if ((m_comp_h_samp[0] != 1) || (m_comp_v_samp[0] != 1)) {
// Some grayscale JPEGs contain non-1×1 sampling factors.
// There is no chroma plane to subsample, so normalize to the expected layout.
m_comp_h_samp[0] = 1;
m_comp_v_samp[0] = 1;
}

m_scan_type = JPGD_GRAYSCALE;
m_max_blocks_per_mcu = 1;
Expand Down
14 changes: 14 additions & 0 deletions test/checksums.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,20 @@ build/test/crunch-format-jpg-to-all/sample-black-64x64.crn 19fb840c8dbb7da96400a
build/test/crunch-format-jpg-to-all/sample-black-64x64.dds cadaf30985bb62b98cd601793d6440c70fa32e24459b780e043576d70817e2d4131f8902c703aa48cb7014b6e07f729e33ed9d989b0db0535261a2c6808805c2
build/test/crunch-format-jpg-to-all/sample-black-64x64.ktx 00e261c23642594e12152e7a0f8ad56a3ed87526bb18ee2e5e0f65f1ce21bfc288bd4e6043807a7fa642f7130645025d3e621e8731bc4304e665c46a975f1c6a
build/test/crunch-format-jpg-to-all/sample-black-64x64.jpg 4e080976a21bf93553425038f152934dbb292937e8fefaa7f9bd876b551e03d4778b54c41e64f470acabea03ff8e7ad3325daf790df1b7b9042930f48a00591a
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.tga c0c0863c373eae0936868e86e4ff9898714a78d5e1f96b972bffdce4f2e2cb3b0065477ce43f3118f256fe74e461e91c29db58e03c3bd32cac238e6e478f9300
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.bmp d6247ea2517362b1f3c98d1542cacd1c0cb429d00a7635169adf24ac253f37217446e6eec6e06820afc99c35534a907c9539c41a5b3dc0de51bc161ebe11e860
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.png 59533b55e3302cee1faa5583fe831435110933b0bc8030cf8e70380982f0704cb83abbae3a5fcdec3c20157a793f8a7908c9393373ad213559b0e0358d5471ea
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.crn 869a12414daecba28f7d4bb1f54467f21c01f356daa59b8e4ffc78ec643fb0f7a5db536c8fa8e62325c7625a718f153c2327f6ce95d6fc05f3fb26a9bac46ceb
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.dds e9ea76b8a7eaa5a227659d86db3c64703ffe09788e49b9ccf9833c392d39d8ef8626865bebb1a977f5970ba21f3156d1f7741cb5d635804e8f852f2af8b83328
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.ktx 44e1df3fa8d784d7e490d8440eba4e049b721af932b7898c317d03474290669531afe85916d3452bc1d0966a9a6d36cf53964e98eb2dfdc1cabf6d7c02afab61
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.jpg fe96bbc6e9c37ba66a981d40bd46d05ea0a385499c7feed7839915da665c376cc1257cd82721ee8d454dc2f425c1bfc16490ae4607465b3b9545fc4741ce0a2f
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.tga c0c0863c373eae0936868e86e4ff9898714a78d5e1f96b972bffdce4f2e2cb3b0065477ce43f3118f256fe74e461e91c29db58e03c3bd32cac238e6e478f9300
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.bmp d6247ea2517362b1f3c98d1542cacd1c0cb429d00a7635169adf24ac253f37217446e6eec6e06820afc99c35534a907c9539c41a5b3dc0de51bc161ebe11e860
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.png 59533b55e3302cee1faa5583fe831435110933b0bc8030cf8e70380982f0704cb83abbae3a5fcdec3c20157a793f8a7908c9393373ad213559b0e0358d5471ea
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.crn 869a12414daecba28f7d4bb1f54467f21c01f356daa59b8e4ffc78ec643fb0f7a5db536c8fa8e62325c7625a718f153c2327f6ce95d6fc05f3fb26a9bac46ceb
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.dds e9ea76b8a7eaa5a227659d86db3c64703ffe09788e49b9ccf9833c392d39d8ef8626865bebb1a977f5970ba21f3156d1f7741cb5d635804e8f852f2af8b83328
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.ktx 44e1df3fa8d784d7e490d8440eba4e049b721af932b7898c317d03474290669531afe85916d3452bc1d0966a9a6d36cf53964e98eb2dfdc1cabf6d7c02afab61
build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.jpg fe96bbc6e9c37ba66a981d40bd46d05ea0a385499c7feed7839915da665c376cc1257cd82721ee8d454dc2f425c1bfc16490ae4607465b3b9545fc4741ce0a2f
build/test/example1-icon-png-to-dds/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8
build/test/example1-icon-png-to-crn/sample-icon-unvanquished-64x64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5
build/test/example1-icon-crn-to-dds/sample-icon-unvanquished-64x64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9
Expand Down
Binary file added test/sample-grayscale-sampling1x1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added test/sample-grayscale-sampling2x2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions test/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,8 @@ def start_from(items, value):
"format": "jpg",
"samples": [
"sample-black-64x64",
"sample-grayscale-sampling1x1",
"sample-grayscale-sampling2x2",
],
},
]
Expand Down