| OLD | NEW |
| 1 /* | 1 /* |
| 2 * The copyright in this software is being made available under the 2-clauses | 2 * The copyright in this software is being made available under the 2-clauses |
| 3 * BSD License, included below. This software may be subject to other third | 3 * BSD License, included below. This software may be subject to other third |
| 4 * party and contributor rights, including patent rights, and no such rights | 4 * party and contributor rights, including patent rights, and no such rights |
| 5 * are granted under this license. | 5 * are granted under this license. |
| 6 * | 6 * |
| 7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium | 7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium |
| 8 * Copyright (c) 2002-2014, Professor Benoit Macq | 8 * Copyright (c) 2002-2014, Professor Benoit Macq |
| 9 * Copyright (c) 2001-2003, David Janssens | 9 * Copyright (c) 2001-2003, David Janssens |
| 10 * Copyright (c) 2002-2003, Yannick Verschueren | 10 * Copyright (c) 2002-2003, Yannick Verschueren |
| (...skipping 1901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1912 OPJ_BYTE * p_header_data, | 1912 OPJ_BYTE * p_header_data, |
| 1913 OPJ_UINT32 p_header_size, | 1913 OPJ_UINT32 p_header_size, |
| 1914 opj_event_mgr_t * p_manager | 1914 opj_event_mgr_t * p_manager |
| 1915 ) | 1915 ) |
| 1916 { | 1916 { |
| 1917 OPJ_UINT32 i; | 1917 OPJ_UINT32 i; |
| 1918 OPJ_UINT32 l_nb_comp; | 1918 OPJ_UINT32 l_nb_comp; |
| 1919 OPJ_UINT32 l_nb_comp_remain; | 1919 OPJ_UINT32 l_nb_comp_remain; |
| 1920 OPJ_UINT32 l_remaining_size; | 1920 OPJ_UINT32 l_remaining_size; |
| 1921 OPJ_UINT32 l_nb_tiles; | 1921 OPJ_UINT32 l_nb_tiles; |
| 1922 OPJ_UINT32 l_tmp; | 1922 OPJ_UINT32 l_tmp, l_tx1, l_ty1; |
| 1923 opj_image_t *l_image = 00; | 1923 opj_image_t *l_image = 00; |
| 1924 opj_cp_t *l_cp = 00; | 1924 opj_cp_t *l_cp = 00; |
| 1925 opj_image_comp_t * l_img_comp = 00; | 1925 opj_image_comp_t * l_img_comp = 00; |
| 1926 opj_tcp_t * l_current_tile_param = 00; | 1926 opj_tcp_t * l_current_tile_param = 00; |
| 1927 | 1927 |
| 1928 /* preconditions */ | 1928 /* preconditions */ |
| 1929 assert(p_j2k != 00); | 1929 assert(p_j2k != 00); |
| 1930 assert(p_manager != 00); | 1930 assert(p_manager != 00); |
| 1931 assert(p_header_data != 00); | 1931 assert(p_header_data != 00); |
| 1932 | 1932 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1974 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: numb
er of component is illegal -> %d\n", l_tmp); | 1974 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: numb
er of component is illegal -> %d\n", l_tmp); |
| 1975 return OPJ_FALSE; | 1975 return OPJ_FALSE; |
| 1976 } | 1976 } |
| 1977 | 1977 |
| 1978 if (l_image->numcomps != l_nb_comp) { | 1978 if (l_image->numcomps != l_nb_comp) { |
| 1979 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: numb
er of component is not compatible with the remaining number of parameters ( %d v
s %d)\n", l_image->numcomps, l_nb_comp); | 1979 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: numb
er of component is not compatible with the remaining number of parameters ( %d v
s %d)\n", l_image->numcomps, l_nb_comp); |
| 1980 return OPJ_FALSE; | 1980 return OPJ_FALSE; |
| 1981 } | 1981 } |
| 1982 | 1982 |
| 1983 /* testcase 4035.pdf.SIGSEGV.d8b.3375 */ | 1983 /* testcase 4035.pdf.SIGSEGV.d8b.3375 */ |
| 1984 if (l_image->x0 > l_image->x1 || l_image->y0 > l_image->y1) { | 1984 /* testcase issue427-null-image-size.jp2 */ |
| 1985 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: nega
tive image size (%d x %d)\n", l_image->x1 - l_image->x0, l_image->y1 - l_image->
y0); | 1985 if ((l_image->x0 >= l_image->x1) || (l_image->y0 >= l_image->y1)) { |
| 1986 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: nega
tive or zero image size (%d x %d)\n", l_image->x1 - l_image->x0, l_image->y1 - l
_image->y0); |
| 1986 return OPJ_FALSE; | 1987 return OPJ_FALSE; |
| 1987 } | 1988 } |
| 1988 /* testcase 2539.pdf.SIGFPE.706.1712 (also 3622.pdf.SIGFPE.706.2916 and
4008.pdf.SIGFPE.706.3345 and maybe more) */ | 1989 /* testcase 2539.pdf.SIGFPE.706.1712 (also 3622.pdf.SIGFPE.706.2916 and
4008.pdf.SIGFPE.706.3345 and maybe more) */ |
| 1989 if (!(l_cp->tdx * l_cp->tdy)) { | 1990 if (!(l_cp->tdx * l_cp->tdy)) { |
| 1990 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: inva
lid tile size (tdx: %d, tdy: %d)\n", l_cp->tdx, l_cp->tdy); | 1991 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: inva
lid tile size (tdx: %d, tdy: %d)\n", l_cp->tdx, l_cp->tdy); |
| 1991 return OPJ_FALSE; | 1992 return OPJ_FALSE; |
| 1992 } | 1993 } |
| 1993 | 1994 |
| 1994 /* testcase 1610.pdf.SIGSEGV.59c.681 */ | 1995 /* testcase 1610.pdf.SIGSEGV.59c.681 */ |
| 1995 if (((OPJ_UINT64)l_image->x1) * ((OPJ_UINT64)l_image->y1) != (l_image->x
1 * l_image->y1)) { | 1996 if (((OPJ_UINT64)l_image->x1) * ((OPJ_UINT64)l_image->y1) != (l_image->x
1 * l_image->y1)) { |
| 1996 opj_event_msg(p_manager, EVT_ERROR, "Prevent buffer overflow (x1
: %d, y1: %d)\n", l_image->x1, l_image->y1); | 1997 opj_event_msg(p_manager, EVT_ERROR, "Prevent buffer overflow (x1
: %d, y1: %d)\n", l_image->x1, l_image->y1); |
| 1997 return OPJ_FALSE; | 1998 return OPJ_FALSE; |
| 1998 } | 1999 } |
| 1999 | 2000 |
| 2001 /* testcase issue427-illegal-tile-offset.jp2 */ |
| 2002 l_tx1 = l_cp->tx0 + l_cp->tdx; |
| 2003 if (l_tx1 < l_cp->tx0) { /* manage overflow */ |
| 2004 l_tx1 = 0xFFFFFFFFU; |
| 2005 } |
| 2006 l_ty1 = l_cp->ty0 + l_cp->tdy; |
| 2007 if (l_ty1 < l_cp->ty0) { /* manage overflow */ |
| 2008 l_ty1 = 0xFFFFFFFFU; |
| 2009 } |
| 2010 if ((l_cp->tx0 > l_image->x0) || (l_cp->ty0 > l_image->y0) || (l_tx1 <=
l_image->x0) || (l_ty1 <= l_image->y0) ) { |
| 2011 opj_event_msg(p_manager, EVT_ERROR, "Error with SIZ marker: ille
gal tile offset\n"); |
| 2012 return OPJ_FALSE; |
| 2013 } |
| 2014 |
| 2000 #ifdef USE_JPWL | 2015 #ifdef USE_JPWL |
| 2001 if (l_cp->correct) { | 2016 if (l_cp->correct) { |
| 2002 /* if JPWL is on, we check whether TX errors have damaged | 2017 /* if JPWL is on, we check whether TX errors have damaged |
| 2003 too much the SIZ parameters */ | 2018 too much the SIZ parameters */ |
| 2004 if (!(l_image->x1 * l_image->y1)) { | 2019 if (!(l_image->x1 * l_image->y1)) { |
| 2005 opj_event_msg(p_manager, EVT_ERROR, | 2020 opj_event_msg(p_manager, EVT_ERROR, |
| 2006 "JPWL: bad image size (%d x %d)\n", | 2021 "JPWL: bad image size (%d x %d)\n", |
| 2007 l_image->x1, l_image->y1); | 2022 l_image->x1, l_image->y1); |
| 2008 if (!JPWL_ASSUME || JPWL_ASSUME) { | 2023 if (!JPWL_ASSUME || JPWL_ASSUME) { |
| 2009 opj_event_msg(p_manager, EVT_ERROR, "JPWL: givin
g up\n"); | 2024 opj_event_msg(p_manager, EVT_ERROR, "JPWL: givin
g up\n"); |
| (...skipping 3204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5214 l_tcp->m_nb_mct_records = 0; | 5229 l_tcp->m_nb_mct_records = 0; |
| 5215 opj_event_msg(p_manager, EVT_ERROR, "Not enough
memory to read MCT marker\n"); | 5230 opj_event_msg(p_manager, EVT_ERROR, "Not enough
memory to read MCT marker\n"); |
| 5216 return OPJ_FALSE; | 5231 return OPJ_FALSE; |
| 5217 } | 5232 } |
| 5218 l_tcp->m_mct_records = new_mct_records; | 5233 l_tcp->m_mct_records = new_mct_records; |
| 5219 l_mct_data = l_tcp->m_mct_records + l_tcp->m_nb_mct_reco
rds; | 5234 l_mct_data = l_tcp->m_mct_records + l_tcp->m_nb_mct_reco
rds; |
| 5220 memset(l_mct_data ,0,(l_tcp->m_nb_max_mct_records - l_tc
p->m_nb_mct_records) * sizeof(opj_mct_data_t)); | 5235 memset(l_mct_data ,0,(l_tcp->m_nb_max_mct_records - l_tc
p->m_nb_mct_records) * sizeof(opj_mct_data_t)); |
| 5221 } | 5236 } |
| 5222 | 5237 |
| 5223 l_mct_data = l_tcp->m_mct_records + l_tcp->m_nb_mct_records; | 5238 l_mct_data = l_tcp->m_mct_records + l_tcp->m_nb_mct_records; |
| 5239 ++l_tcp->m_nb_mct_records; |
| 5224 } | 5240 } |
| 5225 | 5241 |
| 5226 if (l_mct_data->m_data) { | 5242 if (l_mct_data->m_data) { |
| 5227 opj_free(l_mct_data->m_data); | 5243 opj_free(l_mct_data->m_data); |
| 5228 l_mct_data->m_data = 00; | 5244 l_mct_data->m_data = 00; |
| 5229 } | 5245 } |
| 5230 | 5246 |
| 5231 l_mct_data->m_index = l_indix; | 5247 l_mct_data->m_index = l_indix; |
| 5232 l_mct_data->m_array_type = (J2K_MCT_ARRAY_TYPE)((l_tmp >> 8) & 3); | 5248 l_mct_data->m_array_type = (J2K_MCT_ARRAY_TYPE)((l_tmp >> 8) & 3); |
| 5233 l_mct_data->m_element_type = (J2K_MCT_ELEMENT_TYPE)((l_tmp >> 10) & 3); | 5249 l_mct_data->m_element_type = (J2K_MCT_ELEMENT_TYPE)((l_tmp >> 10) & 3); |
| 5234 | 5250 |
| 5235 opj_read_bytes(p_header_data,&l_tmp,2); /* Ymct
*/ | 5251 opj_read_bytes(p_header_data,&l_tmp,2); /* Ymct
*/ |
| 5236 p_header_data+=2; | 5252 p_header_data+=2; |
| 5237 if (l_tmp != 0) { | 5253 if (l_tmp != 0) { |
| 5238 opj_event_msg(p_manager, EVT_WARNING, "Cannot take in charge mul
tiple MCT markers\n"); | 5254 opj_event_msg(p_manager, EVT_WARNING, "Cannot take in charge mul
tiple MCT markers\n"); |
| 5239 return OPJ_TRUE; | 5255 return OPJ_TRUE; |
| 5240 } | 5256 } |
| 5241 | 5257 |
| 5242 p_header_size -= 6; | 5258 p_header_size -= 6; |
| 5243 | 5259 |
| 5244 l_mct_data->m_data = (OPJ_BYTE*)opj_malloc(p_header_size); | 5260 l_mct_data->m_data = (OPJ_BYTE*)opj_malloc(p_header_size); |
| 5245 if (! l_mct_data->m_data) { | 5261 if (! l_mct_data->m_data) { |
| 5246 opj_event_msg(p_manager, EVT_ERROR, "Error reading MCT marker\n"
); | 5262 opj_event_msg(p_manager, EVT_ERROR, "Error reading MCT marker\n"
); |
| 5247 return OPJ_FALSE; | 5263 return OPJ_FALSE; |
| 5248 } | 5264 } |
| 5249 memcpy(l_mct_data->m_data,p_header_data,p_header_size); | 5265 memcpy(l_mct_data->m_data,p_header_data,p_header_size); |
| 5250 | 5266 |
| 5251 l_mct_data->m_data_size = p_header_size; | 5267 l_mct_data->m_data_size = p_header_size; |
| 5252 ++l_tcp->m_nb_mct_records; | |
| 5253 | 5268 |
| 5254 return OPJ_TRUE; | 5269 return OPJ_TRUE; |
| 5255 } | 5270 } |
| 5256 | 5271 |
| 5257 OPJ_BOOL opj_j2k_write_mcc_record( opj_j2k_t *p_j2k, | 5272 OPJ_BOOL opj_j2k_write_mcc_record( opj_j2k_t *p_j2k, |
| 5258 struct opj_simpl
e_mcc_decorrelation_data * p_mcc_record, | 5273 struct opj_simpl
e_mcc_decorrelation_data * p_mcc_record, |
| 5259 struct opj_strea
m_private *p_stream, | 5274 struct opj_strea
m_private *p_stream, |
| 5260 struct opj_event
_mgr * p_manager ) | 5275 struct opj_event
_mgr * p_manager ) |
| 5261 { | 5276 { |
| 5262 OPJ_UINT32 i; | 5277 OPJ_UINT32 i; |
| (...skipping 1301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6564 tccp->m_dc_level_shift = l_dc_shift[i]; | 6579 tccp->m_dc_level_shift = l_dc_shift[i]; |
| 6565 } | 6580 } |
| 6566 | 6581 |
| 6567 if (opj_j2k_setup_mct_encoding(tcp,image) == OPJ_FALSE) { | 6582 if (opj_j2k_setup_mct_encoding(tcp,image) == OPJ_FALSE) { |
| 6568 /* free will be handled by opj_j2k_destroy */ | 6583 /* free will be handled by opj_j2k_destroy */ |
| 6569
opj_event_msg(p_manager, EVT_ERROR, "Failed to setup j2k mct enc
oding\n"); | 6584
opj_event_msg(p_manager, EVT_ERROR, "Failed to setup j2k mct enc
oding\n"); |
| 6570 return OPJ_FALSE; | 6585 return OPJ_FALSE; |
| 6571 } | 6586 } |
| 6572 } | 6587 } |
| 6573 else { | 6588 else { |
| 6574 if(tcp->mct==1 && image->numcomps == 3) { /* RGB->YCC MCT is
enabled */ | 6589 if(tcp->mct==1 && image->numcomps >= 3) { /* RGB->YCC MCT is
enabled */ |
| 6575 if ((image->comps[0].dx != image->comps[1].dx) || | 6590 if ((image->comps[0].dx != image->comps[1].dx) || |
| 6576 (image->comps[0].dx != image->comps[2].dx) || | 6591 (image->comps[0].dx != image->comps[2].dx) || |
| 6577 (image->comps[0].dy != image->comps[1].dy) || | 6592 (image->comps[0].dy != image->comps[1].dy) || |
| 6578 (image->comps[0].dy != image->comps[2].dy)) { | 6593 (image->comps[0].dy != image->comps[2].dy)) { |
| 6579 opj_event_msg(p_manager, EVT_WARNING, "Cannot perfor
m MCT on components with different sizes. Disabling MCT.\n"); | 6594 opj_event_msg(p_manager, EVT_WARNING, "Cannot perfor
m MCT on components with different sizes. Disabling MCT.\n"); |
| 6580 tcp->mct = 0; | 6595 tcp->mct = 0; |
| 6581 } | 6596 } |
| 6582 } | 6597 } |
| 6583 for (i = 0; i < image->numcomps; i++) { | 6598 for (i = 0; i < image->numcomps; i++) { |
| 6584 opj_tccp_t *tccp = &tcp->tccps[i]; | 6599 opj_tccp_t *tccp = &tcp->tccps[i]; |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7052 /* STATE checking */ | 7067 /* STATE checking */ |
| 7053 /* make sure the state is at 0 */ | 7068 /* make sure the state is at 0 */ |
| 7054 l_is_valid &= (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_NO
NE); | 7069 l_is_valid &= (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_NO
NE); |
| 7055 | 7070 |
| 7056 /* POINTER validation */ | 7071 /* POINTER validation */ |
| 7057 /* make sure a p_j2k codec is present */ | 7072 /* make sure a p_j2k codec is present */ |
| 7058 l_is_valid &= (p_j2k->m_procedure_list != 00); | 7073 l_is_valid &= (p_j2k->m_procedure_list != 00); |
| 7059 /* make sure a validation list is present */ | 7074 /* make sure a validation list is present */ |
| 7060 l_is_valid &= (p_j2k->m_validation_list != 00); | 7075 l_is_valid &= (p_j2k->m_validation_list != 00); |
| 7061 | 7076 |
| 7062 » /* ISO 15444-1:2004 states between 1 & 33 (0 -> 32) */ | 7077 /* ISO 15444-1:2004 states between 1 & 33 (0 -> 32) */ |
| 7063 » /* 33 (32) would always fail the 2 checks below (if a cast to 64bi
ts was done) */ | 7078 /* 33 (32) would always fail the check below (if a cast to 64bits was do
ne) */ |
| 7064 » /* 32 (31) would always fail the 2 checks below (if a cast to 64bi
ts was done) */ | 7079 /* FIXME Shall we change OPJ_J2K_MAXRLVLS to 32 ? */ |
| 7065 /* FIXME Shall we change OPJ_J2K_MAXRLVLS to 31 ? */ | 7080 if ((p_j2k->m_cp.tcps->tccps->numresolutions <= 0) || (p_j2k->m_cp.tcps-
>tccps->numresolutions > 32)) { |
| 7066 if ((p_j2k->m_cp.tcps->tccps->numresolutions <= 0) || (p_j2k->m_cp.tcps-
>tccps->numresolutions > 31)) { | |
| 7067 opj_event_msg(p_manager, EVT_ERROR, "Number of resolutions is to
o high in comparison to the size of tiles\n"); | 7081 opj_event_msg(p_manager, EVT_ERROR, "Number of resolutions is to
o high in comparison to the size of tiles\n"); |
| 7068 return OPJ_FALSE; | 7082 return OPJ_FALSE; |
| 7069 } | 7083 } |
| 7070 | 7084 |
| 7071 if ((p_j2k->m_cp.tdx) < (OPJ_UINT32) (1 << p_j2k->m_cp.tcps->tccps->numr
esolutions)) { | 7085 if ((p_j2k->m_cp.tdx) < (OPJ_UINT32) (1 << (p_j2k->m_cp.tcps->tccps->num
resolutions - 1U))) { |
| 7072 opj_event_msg(p_manager, EVT_ERROR, "Number of resolutions is to
o high in comparison to the size of tiles\n"); | 7086 opj_event_msg(p_manager, EVT_ERROR, "Number of resolutions is to
o high in comparison to the size of tiles\n"); |
| 7073 return OPJ_FALSE; | 7087 return OPJ_FALSE; |
| 7074 } | 7088 } |
| 7075 | 7089 |
| 7076 if ((p_j2k->m_cp.tdy) < (OPJ_UINT32) (1 << p_j2k->m_cp.tcps->tccps->numr
esolutions)) { | 7090 if ((p_j2k->m_cp.tdy) < (OPJ_UINT32) (1 << (p_j2k->m_cp.tcps->tccps->num
resolutions - 1U))) { |
| 7077 opj_event_msg(p_manager, EVT_ERROR, "Number of resolutions is to
o high in comparison to the size of tiles\n"); | 7091 opj_event_msg(p_manager, EVT_ERROR, "Number of resolutions is to
o high in comparison to the size of tiles\n"); |
| 7078 return OPJ_FALSE; | 7092 return OPJ_FALSE; |
| 7079 } | 7093 } |
| 7080 | 7094 |
| 7081 /* PARAMETER VALIDATION */ | 7095 /* PARAMETER VALIDATION */ |
| 7082 return l_is_valid; | 7096 return l_is_valid; |
| 7083 } | 7097 } |
| 7084 | 7098 |
| 7085 OPJ_BOOL opj_j2k_decoding_validation ( opj_j2k_t *p_j2k, | 7099 OPJ_BOOL opj_j2k_decoding_validation ( opj_j2k_t *p_j2k, |
| 7086 opj_stream_private_t *p_stream, | 7100 opj_stream_private_t *p_stream, |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7144 } | 7158 } |
| 7145 | 7159 |
| 7146 /* Read 2 bytes as the new marker ID */ | 7160 /* Read 2 bytes as the new marker ID */ |
| 7147 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data,&l_curren
t_marker,2); | 7161 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data,&l_curren
t_marker,2); |
| 7148 | 7162 |
| 7149 /* Try to read until the SOT is detected */ | 7163 /* Try to read until the SOT is detected */ |
| 7150 while (l_current_marker != J2K_MS_SOT) { | 7164 while (l_current_marker != J2K_MS_SOT) { |
| 7151 | 7165 |
| 7152 /* Check if the current marker ID is valid */ | 7166 /* Check if the current marker ID is valid */ |
| 7153 if (l_current_marker < 0xff00) { | 7167 if (l_current_marker < 0xff00) { |
| 7154 opj_event_msg(p_manager, EVT_ERROR, "We expected read a
marker ID (0xff--) instead of %.8x\n", l_current_marker); | 7168 opj_event_msg(p_manager, EVT_ERROR, "A marker ID was exp
ected (0xff--) instead of %.8x\n", l_current_marker); |
| 7155 return OPJ_FALSE; | 7169 return OPJ_FALSE; |
| 7156 } | 7170 } |
| 7157 | 7171 |
| 7158 /* Get the marker handler from the marker ID */ | 7172 /* Get the marker handler from the marker ID */ |
| 7159 l_marker_handler = opj_j2k_get_marker_handler(l_current_marker); | 7173 l_marker_handler = opj_j2k_get_marker_handler(l_current_marker); |
| 7160 | 7174 |
| 7161 /* Manage case where marker is unknown */ | 7175 /* Manage case where marker is unknown */ |
| 7162 if (l_marker_handler->id == J2K_MS_UNK) { | 7176 if (l_marker_handler->id == J2K_MS_UNK) { |
| 7163 if (! opj_j2k_read_unk(p_j2k, p_stream, &l_current_marke
r, p_manager)){ | 7177 if (! opj_j2k_read_unk(p_j2k, p_stream, &l_current_marke
r, p_manager)){ |
| 7164 opj_event_msg(p_manager, EVT_ERROR, "Unknow mark
er have been detected and generated error.\n"); | 7178 opj_event_msg(p_manager, EVT_ERROR, "Unknow mark
er have been detected and generated error.\n"); |
| (...skipping 2604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9769 OPJ_UINT32 i, j; | 9783 OPJ_UINT32 i, j; |
| 9770 OPJ_UINT32 l_nb_tiles; | 9784 OPJ_UINT32 l_nb_tiles; |
| 9771 OPJ_UINT32 l_max_tile_size = 0, l_current_tile_size; | 9785 OPJ_UINT32 l_max_tile_size = 0, l_current_tile_size; |
| 9772 OPJ_BYTE * l_current_data = 00; | 9786 OPJ_BYTE * l_current_data = 00; |
| 9773 opj_tcd_t* p_tcd = 00; | 9787 opj_tcd_t* p_tcd = 00; |
| 9774 | 9788 |
| 9775 /* preconditions */ | 9789 /* preconditions */ |
| 9776 assert(p_j2k != 00); | 9790 assert(p_j2k != 00); |
| 9777 assert(p_stream != 00); | 9791 assert(p_stream != 00); |
| 9778 assert(p_manager != 00); | 9792 assert(p_manager != 00); |
| 9779 | 9793 » |
| 9780 p_tcd = p_j2k->m_tcd; | 9794 p_tcd = p_j2k->m_tcd; |
| 9781 | 9795 |
| 9782 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; | 9796 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; |
| 9783 for (i=0;i<l_nb_tiles;++i) { | 9797 for (i=0;i<l_nb_tiles;++i) { |
| 9784 if (! opj_j2k_pre_write_tile(p_j2k,i,p_stream,p_manager)) { | 9798 if (! opj_j2k_pre_write_tile(p_j2k,i,p_stream,p_manager)) { |
| 9785 if (l_current_data) { | 9799 if (l_current_data) { |
| 9786 opj_free(l_current_data); | 9800 opj_free(l_current_data); |
| 9787 } | 9801 } |
| 9788 return OPJ_FALSE; | 9802 return OPJ_FALSE; |
| 9789 } | 9803 } |
| (...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10560 return OPJ_FALSE; | 10574 return OPJ_FALSE; |
| 10561 } | 10575 } |
| 10562 if (! opj_j2k_post_write_tile(p_j2k,p_stream,p_manager)) { | 10576 if (! opj_j2k_post_write_tile(p_j2k,p_stream,p_manager)) { |
| 10563 opj_event_msg(p_manager, EVT_ERROR, "Error while opj_j2k
_post_write_tile with tile index = %d\n", p_tile_index); | 10577 opj_event_msg(p_manager, EVT_ERROR, "Error while opj_j2k
_post_write_tile with tile index = %d\n", p_tile_index); |
| 10564 return OPJ_FALSE; | 10578 return OPJ_FALSE; |
| 10565 } | 10579 } |
| 10566 } | 10580 } |
| 10567 | 10581 |
| 10568 return OPJ_TRUE; | 10582 return OPJ_TRUE; |
| 10569 } | 10583 } |
| OLD | NEW |