Mercurial > projects > dwt-win
comparison dwt/internal/image/JPEGDecoder.d @ 314:0e2b4fed7a0f
sync dwt/internal/image with dwt-linux
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Tue, 07 Oct 2008 14:44:44 +0200 |
parents | fd9c62a2998e |
children |
comparison
equal
deleted
inserted
replaced
313:fcbee1f66cc3 | 314:0e2b4fed7a0f |
---|---|
977 } | 977 } |
978 } | 978 } |
979 r = s >> 4; | 979 r = s >> 4; |
980 s &= 15; | 980 s &= 15; |
981 if (s !is 0) { | 981 if (s !is 0) { |
982 if (s !is 1) { /* size of new coef should always be 1 */ | 982 if (s !is 1) { /* size of new coef should always be 1 */ |
983 // WARNMS(cinfo, JWRN_HUFF_BAD_CODE); | 983 // WARNMS(cinfo, JWRN_HUFF_BAD_CODE); |
984 } | 984 } |
985 // CHECK_BIT_BUFFER(br_state, 1, goto undoit); | 985 // CHECK_BIT_BUFFER(br_state, 1, goto undoit); |
986 { | 986 { |
987 if (bits_left < (1)) { | 987 if (bits_left < (1)) { |
1240 } else { | 1240 } else { |
1241 if (r is 15) { /* ZRL */ | 1241 if (r is 15) { /* ZRL */ |
1242 k += 15; /* skip 15 zeroes in band */ | 1242 k += 15; /* skip 15 zeroes in band */ |
1243 } else { /* EOBr, run length is 2^r + appended bits */ | 1243 } else { /* EOBr, run length is 2^r + appended bits */ |
1244 EOBRUN = 1 << r; | 1244 EOBRUN = 1 << r; |
1245 if (r !is 0) { /* EOBr, r > 0 */ | 1245 if (r !is 0) { /* EOBr, r > 0 */ |
1246 // CHECK_BIT_BUFFER(br_state, r, return FALSE); | 1246 // CHECK_BIT_BUFFER(br_state, r, return FALSE); |
1247 { | 1247 { |
1248 if (bits_left < (r)) { | 1248 if (bits_left < (r)) { |
1249 if (! jpeg_fill_bit_buffer(br_state,get_buffer,bits_left,r)) { | 1249 if (! jpeg_fill_bit_buffer(br_state,get_buffer,bits_left,r)) { |
1250 return false; | 1250 return false; |
4446 huffval[i] = cinfo.buffer[cinfo.bytes_offset++]; | 4446 huffval[i] = cinfo.buffer[cinfo.bytes_offset++]; |
4447 } | 4447 } |
4448 | 4448 |
4449 length -= count; | 4449 length -= count; |
4450 | 4450 |
4451 if ((index & 0x10) !is 0) { /* AC table definition */ | 4451 if ((index & 0x10) !is 0) { /* AC table definition */ |
4452 index -= 0x10; | 4452 index -= 0x10; |
4453 htblptr = cinfo.ac_huff_tbl_ptrs[index] = new JHUFF_TBL(); | 4453 htblptr = cinfo.ac_huff_tbl_ptrs[index] = new JHUFF_TBL(); |
4454 } else { /* DC table definition */ | 4454 } else { /* DC table definition */ |
4455 htblptr = cinfo.dc_huff_tbl_ptrs[index] = new JHUFF_TBL(); | 4455 htblptr = cinfo.dc_huff_tbl_ptrs[index] = new JHUFF_TBL(); |
4456 } | 4456 } |
5235 if (((data[12] & 0xFF) | (data[13]) & 0xFF) !is 0) { | 5235 if (((data[12] & 0xFF) | (data[13]) & 0xFF) !is 0) { |
5236 // TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL, | 5236 // TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL, |
5237 // GETJOCTET(data[12]), GETJOCTET(data[13])); | 5237 // GETJOCTET(data[12]), GETJOCTET(data[13])); |
5238 } | 5238 } |
5239 totallen -= APP0_DATA_LEN; | 5239 totallen -= APP0_DATA_LEN; |
5240 if (totallen !is ((data[12] & 0xFF) * (data[13] & 0xFF) * 3)) { | 5240 if (totallen !is ((data[12] & 0xFF) * (data[13] & 0xFF) * 3)) { |
5241 // TRACEMS1(cinfo, 1, JTRC_JFIF_BADTHUMBNAILSIZE, cast(int) totallen); | 5241 // TRACEMS1(cinfo, 1, JTRC_JFIF_BADTHUMBNAILSIZE, cast(int) totallen); |
5242 } | 5242 } |
5243 } else if (datalen >= 6 && | 5243 } else if (datalen >= 6 && |
5244 (data[0] & 0xFF) is 0x4A && | 5244 (data[0] & 0xFF) is 0x4A && |
5245 (data[1] & 0xFF) is 0x46 && | 5245 (data[1] & 0xFF) is 0x46 && |