• Home
  • Raw
  • Download

Lines Matching refs:p_j2k

55 static OPJ_BOOL opj_j2k_setup_header_reading(opj_j2k_t *p_j2k,
61 static OPJ_BOOL opj_j2k_read_header_procedure(opj_j2k_t *p_j2k,
74 static OPJ_BOOL opj_j2k_encoding_validation(opj_j2k_t * p_j2k,
87 static OPJ_BOOL opj_j2k_decoding_validation(opj_j2k_t * p_j2k,
95 static OPJ_BOOL opj_j2k_setup_encoding_validation(opj_j2k_t *p_j2k,
102 static OPJ_BOOL opj_j2k_setup_decoding_validation(opj_j2k_t *p_j2k,
109 static OPJ_BOOL opj_j2k_setup_end_compress(opj_j2k_t *p_j2k,
121 static OPJ_BOOL opj_j2k_mct_validation(opj_j2k_t * p_j2k,
128 static OPJ_BOOL opj_j2k_build_decoder(opj_j2k_t * p_j2k,
134 static OPJ_BOOL opj_j2k_build_encoder(opj_j2k_t * p_j2k,
145 static OPJ_BOOL opj_j2k_create_tcd(opj_j2k_t *p_j2k,
159 static OPJ_BOOL opj_j2k_exec(opj_j2k_t * p_j2k,
171 static OPJ_BOOL opj_j2k_update_rates(opj_j2k_t *p_j2k,
179 static OPJ_BOOL opj_j2k_copy_default_tcp_and_create_tcd(opj_j2k_t * p_j2k,
186 static OPJ_BOOL opj_j2k_destroy_header_memory(opj_j2k_t * p_j2k,
231 static OPJ_BOOL opj_j2k_compare_SPCod_SPCoc(opj_j2k_t *p_j2k,
246 static OPJ_BOOL opj_j2k_write_SPCod_SPCoc(opj_j2k_t *p_j2k,
262 static OPJ_UINT32 opj_j2k_get_SPCod_SPCoc_size(opj_j2k_t *p_j2k,
274 static OPJ_BOOL opj_j2k_read_SPCod_SPCoc(opj_j2k_t *p_j2k,
289 static OPJ_UINT32 opj_j2k_get_SQcd_SQcc_size(opj_j2k_t *p_j2k,
303 static OPJ_BOOL opj_j2k_compare_SQcd_SQcc(opj_j2k_t *p_j2k,
318 static OPJ_BOOL opj_j2k_write_SQcd_SQcc(opj_j2k_t *p_j2k,
328 static void opj_j2k_update_tlm(opj_j2k_t * p_j2k, OPJ_UINT32 p_tile_part_size);
340 static OPJ_BOOL opj_j2k_read_SQcd_SQcc(opj_j2k_t *p_j2k,
351 static void opj_j2k_copy_tile_component_parameters(opj_j2k_t *p_j2k);
358 static void opj_j2k_copy_tile_quantization_parameters(opj_j2k_t *p_j2k);
363 static OPJ_BOOL opj_j2k_decode_tiles(opj_j2k_t *p_j2k,
367 static OPJ_BOOL opj_j2k_pre_write_tile(opj_j2k_t * p_j2k,
389 static OPJ_BOOL opj_j2k_post_write_tile(opj_j2k_t * p_j2k,
397 static OPJ_BOOL opj_j2k_setup_header_writing(opj_j2k_t *p_j2k,
400 static OPJ_BOOL opj_j2k_write_first_tile_part(opj_j2k_t *p_j2k,
407 static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k,
421 static OPJ_BOOL opj_j2k_get_end_header(opj_j2k_t *p_j2k,
425 static OPJ_BOOL opj_j2k_allocate_tile_element_cstr_index(opj_j2k_t *p_j2k);
440 static OPJ_BOOL opj_j2k_write_soc(opj_j2k_t *p_j2k,
450 static OPJ_BOOL opj_j2k_read_soc(opj_j2k_t *p_j2k,
461 static OPJ_BOOL opj_j2k_write_siz(opj_j2k_t *p_j2k,
472 static OPJ_BOOL opj_j2k_read_siz(opj_j2k_t *p_j2k,
484 static OPJ_BOOL opj_j2k_write_com(opj_j2k_t *p_j2k,
495 static OPJ_BOOL opj_j2k_read_com(opj_j2k_t *p_j2k,
506 static OPJ_BOOL opj_j2k_write_cod(opj_j2k_t *p_j2k,
517 static OPJ_BOOL opj_j2k_read_cod(opj_j2k_t *p_j2k,
531 static OPJ_BOOL opj_j2k_compare_coc(opj_j2k_t *p_j2k,
542 static OPJ_BOOL opj_j2k_write_coc(opj_j2k_t *p_j2k,
556 static void opj_j2k_write_coc_in_memory(opj_j2k_t *p_j2k,
567 static OPJ_UINT32 opj_j2k_get_max_coc_size(opj_j2k_t *p_j2k);
576 static OPJ_BOOL opj_j2k_read_coc(opj_j2k_t *p_j2k,
588 static OPJ_BOOL opj_j2k_write_qcd(opj_j2k_t *p_j2k,
599 static OPJ_BOOL opj_j2k_read_qcd(opj_j2k_t *p_j2k,
613 static OPJ_BOOL opj_j2k_compare_qcc(opj_j2k_t *p_j2k,
624 static OPJ_BOOL opj_j2k_write_qcc(opj_j2k_t *p_j2k,
638 static void opj_j2k_write_qcc_in_memory(opj_j2k_t *p_j2k,
647 static OPJ_UINT32 opj_j2k_get_max_qcc_size(opj_j2k_t *p_j2k);
656 static OPJ_BOOL opj_j2k_read_qcc(opj_j2k_t *p_j2k,
667 static OPJ_BOOL opj_j2k_write_poc(opj_j2k_t *p_j2k,
678 static void opj_j2k_write_poc_in_memory(opj_j2k_t *p_j2k,
685 static OPJ_UINT32 opj_j2k_get_max_poc_size(opj_j2k_t *p_j2k);
695 static OPJ_BOOL opj_j2k_read_poc(opj_j2k_t *p_j2k,
703 static OPJ_UINT32 opj_j2k_get_max_toc_size(opj_j2k_t *p_j2k);
710 static OPJ_UINT32 opj_j2k_get_specific_header_sizes(opj_j2k_t *p_j2k);
720 static OPJ_BOOL opj_j2k_read_crg(opj_j2k_t *p_j2k,
732 static OPJ_BOOL opj_j2k_read_tlm(opj_j2k_t *p_j2k,
744 static OPJ_BOOL opj_j2k_write_updated_tlm(opj_j2k_t *p_j2k,
756 static OPJ_BOOL opj_j2k_read_plm(opj_j2k_t *p_j2k,
768 static OPJ_BOOL opj_j2k_read_plt(opj_j2k_t *p_j2k,
783 opj_j2k_t *p_j2k,
804 static OPJ_BOOL opj_j2k_read_ppt(opj_j2k_t *p_j2k,
826 static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k,
840 static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k,
875 static OPJ_BOOL opj_j2k_read_sot(opj_j2k_t *p_j2k,
890 static OPJ_BOOL opj_j2k_write_sod(opj_j2k_t *p_j2k,
905 static OPJ_BOOL opj_j2k_read_sod(opj_j2k_t *p_j2k,
909 static void opj_j2k_update_tlm(opj_j2k_t * p_j2k, OPJ_UINT32 p_tile_part_size) in opj_j2k_update_tlm() argument
911 opj_write_bytes(p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_current, in opj_j2k_update_tlm()
912 p_j2k->m_current_tile_number, 1); /* PSOT */ in opj_j2k_update_tlm()
913 ++p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_current; in opj_j2k_update_tlm()
915 opj_write_bytes(p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_current, in opj_j2k_update_tlm()
917 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_current += 4; in opj_j2k_update_tlm()
930 static OPJ_BOOL opj_j2k_write_rgn(opj_j2k_t *p_j2k,
945 static OPJ_BOOL opj_j2k_read_rgn(opj_j2k_t *p_j2k,
957 static OPJ_BOOL opj_j2k_write_eoc(opj_j2k_t *p_j2k,
969 static OPJ_BOOL opj_j2k_read_eoc(opj_j2k_t *p_j2k,
981 static OPJ_BOOL opj_j2k_write_mct_data_group(opj_j2k_t *p_j2k,
992 static OPJ_BOOL opj_j2k_init_info(opj_j2k_t *p_j2k,
1027 static OPJ_BOOL opj_j2k_read_unk(opj_j2k_t *p_j2k,
1040 static OPJ_BOOL opj_j2k_write_mct_record(opj_j2k_t *p_j2k,
1053 static OPJ_BOOL opj_j2k_read_mct(opj_j2k_t *p_j2k,
1066 static OPJ_BOOL opj_j2k_write_mcc_record(opj_j2k_t *p_j2k,
1079 static OPJ_BOOL opj_j2k_read_mcc(opj_j2k_t *p_j2k,
1091 static OPJ_BOOL opj_j2k_write_mco(opj_j2k_t *p_j2k,
1103 static OPJ_BOOL opj_j2k_read_mco(opj_j2k_t *p_j2k,
1145 static OPJ_BOOL opj_j2k_end_encoding(opj_j2k_t *p_j2k,
1156 static OPJ_BOOL opj_j2k_write_cbd(opj_j2k_t *p_j2k,
1167 static OPJ_BOOL opj_j2k_read_cbd(opj_j2k_t *p_j2k,
1180 static OPJ_BOOL opj_j2k_write_all_coc(opj_j2k_t *p_j2k,
1191 static OPJ_BOOL opj_j2k_write_all_qcc(opj_j2k_t *p_j2k,
1202 static OPJ_BOOL opj_j2k_write_regions(opj_j2k_t *p_j2k,
1213 static OPJ_BOOL opj_j2k_write_epc(opj_j2k_t *p_j2k,
1261 static OPJ_BOOL opj_j2k_calculate_tp(opj_j2k_t *p_j2k,
1267 static void opj_j2k_dump_MH_info(opj_j2k_t* p_j2k, FILE* out_stream);
1269 static void opj_j2k_dump_MH_index(opj_j2k_t* p_j2k, FILE* out_stream);
1358 OPJ_BOOL(*handler)(opj_j2k_t *p_j2k,
1779 static OPJ_BOOL opj_j2k_calculate_tp(opj_j2k_t *p_j2k, in opj_j2k_calculate_tp() argument
1794 assert(p_j2k != 00); in opj_j2k_calculate_tp()
1797 OPJ_UNUSED(p_j2k); in opj_j2k_calculate_tp()
1860 static OPJ_BOOL opj_j2k_write_soc(opj_j2k_t *p_j2k, in opj_j2k_write_soc() argument
1869 assert(p_j2k != 00); in opj_j2k_write_soc()
1872 l_start_stream = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_soc()
1900 static OPJ_BOOL opj_j2k_read_soc(opj_j2k_t *p_j2k, in opj_j2k_read_soc() argument
1909 assert(p_j2k != 00); in opj_j2k_read_soc()
1923 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_MHSIZ; in opj_j2k_read_soc()
1926 p_j2k->cstr_index->main_head_start = opj_stream_tell(p_stream) - 2; in opj_j2k_read_soc()
1929 p_j2k->cstr_index->main_head_start); in opj_j2k_read_soc()
1932 if (OPJ_FALSE == opj_j2k_add_mhmarker(p_j2k->cstr_index, J2K_MS_SOC, in opj_j2k_read_soc()
1933 p_j2k->cstr_index->main_head_start, 2)) { in opj_j2k_read_soc()
1940 static OPJ_BOOL opj_j2k_write_siz(opj_j2k_t *p_j2k, in opj_j2k_write_siz() argument
1953 assert(p_j2k != 00); in opj_j2k_write_siz()
1956 l_image = p_j2k->m_private_image; in opj_j2k_write_siz()
1957 cp = &(p_j2k->m_cp); in opj_j2k_write_siz()
1961 if (l_size_len > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_siz()
1964p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_size_len); in opj_j2k_write_siz()
1966 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_siz()
1967 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_siz()
1968 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_siz()
1972 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_siz()
1973 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_size_len; in opj_j2k_write_siz()
1976 l_current_ptr = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_siz()
2031 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_size_len, in opj_j2k_write_siz()
2046 static OPJ_BOOL opj_j2k_read_siz(opj_j2k_t *p_j2k, in opj_j2k_read_siz() argument
2065 assert(p_j2k != 00); in opj_j2k_read_siz()
2069 l_image = p_j2k->m_private_image; in opj_j2k_read_siz()
2070 l_cp = &(p_j2k->m_cp); in opj_j2k_read_siz()
2154 if (!p_j2k->dump_state) { in opj_j2k_read_siz()
2160 if (p_j2k->ihdr_w > 0 && p_j2k->ihdr_h > 0 in opj_j2k_read_siz()
2161 && (p_j2k->ihdr_w != siz_w || p_j2k->ihdr_h != siz_h)) { in opj_j2k_read_siz()
2163 … "Error with SIZ marker: IHDR w(%u) h(%u) vs. SIZ w(%u) h(%u)\n", p_j2k->ihdr_w, in opj_j2k_read_siz()
2164 p_j2k->ihdr_h, siz_w, siz_h); in opj_j2k_read_siz()
2232 if (p_j2k->dump_state == 0) { in opj_j2k_read_siz()
2321 if (p_j2k->m_specific_param.m_decoder.m_discard_tiles) { in opj_j2k_read_siz()
2322 p_j2k->m_specific_param.m_decoder.m_start_tile_x = in opj_j2k_read_siz()
2323 (p_j2k->m_specific_param.m_decoder.m_start_tile_x - l_cp->tx0) / l_cp->tdx; in opj_j2k_read_siz()
2324 p_j2k->m_specific_param.m_decoder.m_start_tile_y = in opj_j2k_read_siz()
2325 (p_j2k->m_specific_param.m_decoder.m_start_tile_y - l_cp->ty0) / l_cp->tdy; in opj_j2k_read_siz()
2326 p_j2k->m_specific_param.m_decoder.m_end_tile_x = opj_uint_ceildiv( in opj_j2k_read_siz()
2327 p_j2k->m_specific_param.m_decoder.m_end_tile_x - l_cp->tx0, l_cp->tdx); in opj_j2k_read_siz()
2328 p_j2k->m_specific_param.m_decoder.m_end_tile_y = opj_uint_ceildiv( in opj_j2k_read_siz()
2329 p_j2k->m_specific_param.m_decoder.m_end_tile_y - l_cp->ty0, l_cp->tdy); in opj_j2k_read_siz()
2331 p_j2k->m_specific_param.m_decoder.m_start_tile_x = 0; in opj_j2k_read_siz()
2332 p_j2k->m_specific_param.m_decoder.m_start_tile_y = 0; in opj_j2k_read_siz()
2333 p_j2k->m_specific_param.m_decoder.m_end_tile_x = l_cp->tw; in opj_j2k_read_siz()
2334 p_j2k->m_specific_param.m_decoder.m_end_tile_y = l_cp->th; in opj_j2k_read_siz()
2403 p_j2k->m_specific_param.m_decoder.m_default_tcp->tccps = in opj_j2k_read_siz()
2405 if (p_j2k->m_specific_param.m_decoder.m_default_tcp->tccps == 00) { in opj_j2k_read_siz()
2411 p_j2k->m_specific_param.m_decoder.m_default_tcp->m_mct_records = in opj_j2k_read_siz()
2415 if (! p_j2k->m_specific_param.m_decoder.m_default_tcp->m_mct_records) { in opj_j2k_read_siz()
2420 p_j2k->m_specific_param.m_decoder.m_default_tcp->m_nb_max_mct_records = in opj_j2k_read_siz()
2423 p_j2k->m_specific_param.m_decoder.m_default_tcp->m_mcc_records = in opj_j2k_read_siz()
2428 if (! p_j2k->m_specific_param.m_decoder.m_default_tcp->m_mcc_records) { in opj_j2k_read_siz()
2433 p_j2k->m_specific_param.m_decoder.m_default_tcp->m_nb_max_mcc_records = in opj_j2k_read_siz()
2439 p_j2k->m_specific_param.m_decoder.m_default_tcp->tccps[i].m_dc_level_shift = 1 in opj_j2k_read_siz()
2457 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_MH; in opj_j2k_read_siz()
2463 static OPJ_BOOL opj_j2k_write_com(opj_j2k_t *p_j2k, in opj_j2k_write_com() argument
2474 assert(p_j2k != 00); in opj_j2k_write_com()
2478 l_comment = p_j2k->m_cp.comment; in opj_j2k_write_com()
2483 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_com()
2485p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_total_com_size); in opj_j2k_write_com()
2487 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_com()
2488 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_com()
2489 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_com()
2494 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_com()
2495 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_total_com_size; in opj_j2k_write_com()
2498 l_current_ptr = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_com()
2513p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_total_com_size, in opj_j2k_write_com()
2528 static OPJ_BOOL opj_j2k_read_com(opj_j2k_t *p_j2k, in opj_j2k_read_com() argument
2535 assert(p_j2k != 00); in opj_j2k_read_com()
2539 OPJ_UNUSED(p_j2k); in opj_j2k_read_com()
2547 static OPJ_BOOL opj_j2k_write_cod(opj_j2k_t *p_j2k, in opj_j2k_write_cod() argument
2557 assert(p_j2k != 00); in opj_j2k_write_cod()
2561 l_cp = &(p_j2k->m_cp); in opj_j2k_write_cod()
2562 l_tcp = &l_cp->tcps[p_j2k->m_current_tile_number]; in opj_j2k_write_cod()
2563 l_code_size = 9 + opj_j2k_get_SPCod_SPCoc_size(p_j2k, in opj_j2k_write_cod()
2564 p_j2k->m_current_tile_number, 0); in opj_j2k_write_cod()
2567 if (l_code_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_cod()
2569p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_code_size); in opj_j2k_write_cod()
2571 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_cod()
2572 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_cod()
2573 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_cod()
2577 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_cod()
2578 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_code_size; in opj_j2k_write_cod()
2581 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_cod()
2603 if (! opj_j2k_write_SPCod_SPCoc(p_j2k, p_j2k->m_current_tile_number, 0, in opj_j2k_write_cod()
2615 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_code_size, in opj_j2k_write_cod()
2630 static OPJ_BOOL opj_j2k_read_cod(opj_j2k_t *p_j2k, in opj_j2k_read_cod() argument
2645 assert(p_j2k != 00); in opj_j2k_read_cod()
2648 l_image = p_j2k->m_private_image; in opj_j2k_read_cod()
2649 l_cp = &(p_j2k->m_cp); in opj_j2k_read_cod()
2652 l_tcp = (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH) ? in opj_j2k_read_cod()
2653 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_cod()
2654 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_cod()
2712 if (! opj_j2k_read_SPCod_SPCoc(p_j2k, 0, p_header_data, &p_header_size, in opj_j2k_read_cod()
2724 opj_j2k_copy_tile_component_parameters(p_j2k); in opj_j2k_read_cod()
2728 if (p_j2k->cstr_info) { in opj_j2k_read_cod()
2730 p_j2k->cstr_info->prog = l_tcp->prg; in opj_j2k_read_cod()
2731 p_j2k->cstr_info->numlayers = l_tcp->numlayers; in opj_j2k_read_cod()
2732 p_j2k->cstr_info->numdecompos = (OPJ_INT32*) opj_malloc( in opj_j2k_read_cod()
2734 if (!p_j2k->cstr_info->numdecompos) { in opj_j2k_read_cod()
2738 p_j2k->cstr_info->numdecompos[i] = l_tcp->tccps[i].numresolutions - 1; in opj_j2k_read_cod()
2746 static OPJ_BOOL opj_j2k_write_coc(opj_j2k_t *p_j2k, in opj_j2k_write_coc() argument
2755 assert(p_j2k != 00); in opj_j2k_write_coc()
2759 l_comp_room = (p_j2k->m_private_image->numcomps <= 256) ? 1 : 2; in opj_j2k_write_coc()
2761 l_coc_size = 5 + l_comp_room + opj_j2k_get_SPCod_SPCoc_size(p_j2k, in opj_j2k_write_coc()
2762 p_j2k->m_current_tile_number, p_comp_no); in opj_j2k_write_coc()
2764 if (l_coc_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_coc()
2772p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_coc_size); in opj_j2k_write_coc()
2774 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_coc()
2775 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_coc()
2776 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_coc()
2780 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_coc()
2781 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_coc_size; in opj_j2k_write_coc()
2784 opj_j2k_write_coc_in_memory(p_j2k, p_comp_no, in opj_j2k_write_coc()
2785p_j2k->m_specific_param.m_encoder.m_header_tile_data, &l_remaining_size, in opj_j2k_write_coc()
2789 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_coc_size, in opj_j2k_write_coc()
2797 static OPJ_BOOL opj_j2k_compare_coc(opj_j2k_t *p_j2k, in opj_j2k_compare_coc() argument
2804 assert(p_j2k != 00); in opj_j2k_compare_coc()
2806 l_cp = &(p_j2k->m_cp); in opj_j2k_compare_coc()
2807 l_tcp = &l_cp->tcps[p_j2k->m_current_tile_number]; in opj_j2k_compare_coc()
2814 return opj_j2k_compare_SPCod_SPCoc(p_j2k, p_j2k->m_current_tile_number, in opj_j2k_compare_coc()
2818 static void opj_j2k_write_coc_in_memory(opj_j2k_t *p_j2k, in opj_j2k_write_coc_in_memory() argument
2833 assert(p_j2k != 00); in opj_j2k_write_coc_in_memory()
2836 l_cp = &(p_j2k->m_cp); in opj_j2k_write_coc_in_memory()
2837 l_tcp = &l_cp->tcps[p_j2k->m_current_tile_number]; in opj_j2k_write_coc_in_memory()
2838 l_image = p_j2k->m_private_image; in opj_j2k_write_coc_in_memory()
2841 l_coc_size = 5 + l_comp_room + opj_j2k_get_SPCod_SPCoc_size(p_j2k, in opj_j2k_write_coc_in_memory()
2842 p_j2k->m_current_tile_number, p_comp_no); in opj_j2k_write_coc_in_memory()
2863 opj_j2k_write_SPCod_SPCoc(p_j2k, p_j2k->m_current_tile_number, 0, in opj_j2k_write_coc_in_memory()
2868 static OPJ_UINT32 opj_j2k_get_max_coc_size(opj_j2k_t *p_j2k) in opj_j2k_get_max_coc_size() argument
2877 l_nb_tiles = p_j2k->m_cp.tw * p_j2k->m_cp.th ; in opj_j2k_get_max_coc_size()
2878 l_nb_comp = p_j2k->m_private_image->numcomps; in opj_j2k_get_max_coc_size()
2882 l_max = opj_uint_max(l_max, opj_j2k_get_SPCod_SPCoc_size(p_j2k, i, j)); in opj_j2k_get_max_coc_size()
2896 static OPJ_BOOL opj_j2k_read_coc(opj_j2k_t *p_j2k, in opj_j2k_read_coc() argument
2910 assert(p_j2k != 00); in opj_j2k_read_coc()
2913 l_cp = &(p_j2k->m_cp); in opj_j2k_read_coc()
2914 l_tcp = (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH) in opj_j2k_read_coc()
2916 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_coc()
2917 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_coc()
2918 l_image = p_j2k->m_private_image; in opj_j2k_read_coc()
2942 if (! opj_j2k_read_SPCod_SPCoc(p_j2k, l_comp_no, p_header_data, &p_header_size, in opj_j2k_read_coc()
2955 static OPJ_BOOL opj_j2k_write_qcd(opj_j2k_t *p_j2k, in opj_j2k_write_qcd() argument
2964 assert(p_j2k != 00); in opj_j2k_write_qcd()
2968 l_qcd_size = 4 + opj_j2k_get_SQcd_SQcc_size(p_j2k, p_j2k->m_current_tile_number, in opj_j2k_write_qcd()
2972 if (l_qcd_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_qcd()
2974p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_qcd_size); in opj_j2k_write_qcd()
2976 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_qcd()
2977 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_qcd()
2978 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_qcd()
2982 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_qcd()
2983 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_qcd_size; in opj_j2k_write_qcd()
2986 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_qcd()
2996 if (! opj_j2k_write_SQcd_SQcc(p_j2k, p_j2k->m_current_tile_number, 0, in opj_j2k_write_qcd()
3008 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_qcd_size, in opj_j2k_write_qcd()
3023 static OPJ_BOOL opj_j2k_read_qcd(opj_j2k_t *p_j2k, in opj_j2k_read_qcd() argument
3031 assert(p_j2k != 00); in opj_j2k_read_qcd()
3034 if (! opj_j2k_read_SQcd_SQcc(p_j2k, 0, p_header_data, &p_header_size, in opj_j2k_read_qcd()
3046 opj_j2k_copy_tile_quantization_parameters(p_j2k); in opj_j2k_read_qcd()
3051 static OPJ_BOOL opj_j2k_write_qcc(opj_j2k_t *p_j2k, in opj_j2k_write_qcc() argument
3060 assert(p_j2k != 00); in opj_j2k_write_qcc()
3064 l_qcc_size = 5 + opj_j2k_get_SQcd_SQcc_size(p_j2k, p_j2k->m_current_tile_number, in opj_j2k_write_qcc()
3066 l_qcc_size += p_j2k->m_private_image->numcomps <= 256 ? 0 : 1; in opj_j2k_write_qcc()
3069 if (l_qcc_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_qcc()
3071p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_qcc_size); in opj_j2k_write_qcc()
3073 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_qcc()
3074 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_qcc()
3075 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_qcc()
3079 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_qcc()
3080 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_qcc_size; in opj_j2k_write_qcc()
3083 opj_j2k_write_qcc_in_memory(p_j2k, p_comp_no, in opj_j2k_write_qcc()
3084p_j2k->m_specific_param.m_encoder.m_header_tile_data, &l_remaining_size, in opj_j2k_write_qcc()
3088 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_qcc_size, in opj_j2k_write_qcc()
3096 static OPJ_BOOL opj_j2k_compare_qcc(opj_j2k_t *p_j2k, in opj_j2k_compare_qcc() argument
3099 return opj_j2k_compare_SQcd_SQcc(p_j2k, p_j2k->m_current_tile_number, in opj_j2k_compare_qcc()
3103 static void opj_j2k_write_qcc_in_memory(opj_j2k_t *p_j2k, in opj_j2k_write_qcc_in_memory() argument
3114 assert(p_j2k != 00); in opj_j2k_write_qcc_in_memory()
3117 l_qcc_size = 6 + opj_j2k_get_SQcd_SQcc_size(p_j2k, p_j2k->m_current_tile_number, in opj_j2k_write_qcc_in_memory()
3126 if (p_j2k->m_private_image->numcomps <= 256) { in opj_j2k_write_qcc_in_memory()
3147 opj_j2k_write_SQcd_SQcc(p_j2k, p_j2k->m_current_tile_number, p_comp_no, in opj_j2k_write_qcc_in_memory()
3153 static OPJ_UINT32 opj_j2k_get_max_qcc_size(opj_j2k_t *p_j2k) in opj_j2k_get_max_qcc_size() argument
3155 return opj_j2k_get_max_coc_size(p_j2k); in opj_j2k_get_max_qcc_size()
3165 static OPJ_BOOL opj_j2k_read_qcc(opj_j2k_t *p_j2k, in opj_j2k_read_qcc() argument
3175 assert(p_j2k != 00); in opj_j2k_read_qcc()
3178 l_num_comp = p_j2k->m_private_image->numcomps; in opj_j2k_read_qcc()
3199 if (p_j2k->m_cp.correct) { in opj_j2k_read_qcc()
3224 if (l_comp_no >= p_j2k->m_private_image->numcomps) { in opj_j2k_read_qcc()
3227 l_comp_no, p_j2k->m_private_image->numcomps); in opj_j2k_read_qcc()
3231 if (! opj_j2k_read_SQcd_SQcc(p_j2k, l_comp_no, p_header_data, &p_header_size, in opj_j2k_read_qcc()
3245 static OPJ_BOOL opj_j2k_write_poc(opj_j2k_t *p_j2k, in opj_j2k_write_poc() argument
3258 assert(p_j2k != 00); in opj_j2k_write_poc()
3262 l_tcp = &p_j2k->m_cp.tcps[p_j2k->m_current_tile_number]; in opj_j2k_write_poc()
3263 l_nb_comp = p_j2k->m_private_image->numcomps; in opj_j2k_write_poc()
3273 if (l_poc_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_poc()
3275p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_poc_size); in opj_j2k_write_poc()
3277 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_poc()
3278 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_poc()
3279 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_poc()
3283 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_poc()
3284 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_poc_size; in opj_j2k_write_poc()
3287 opj_j2k_write_poc_in_memory(p_j2k, in opj_j2k_write_poc()
3288p_j2k->m_specific_param.m_encoder.m_header_tile_data, &l_written_size, in opj_j2k_write_poc()
3292 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_poc_size, in opj_j2k_write_poc()
3300 static void opj_j2k_write_poc_in_memory(opj_j2k_t *p_j2k, in opj_j2k_write_poc_in_memory() argument
3318 assert(p_j2k != 00); in opj_j2k_write_poc_in_memory()
3323 l_tcp = &p_j2k->m_cp.tcps[p_j2k->m_current_tile_number]; in opj_j2k_write_poc_in_memory()
3325 l_image = p_j2k->m_private_image; in opj_j2k_write_poc_in_memory()
3387 static OPJ_UINT32 opj_j2k_get_max_poc_size(opj_j2k_t *p_j2k) in opj_j2k_get_max_poc_size() argument
3394 l_tcp = p_j2k->m_cp.tcps; in opj_j2k_get_max_poc_size()
3395 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; in opj_j2k_get_max_poc_size()
3407 static OPJ_UINT32 opj_j2k_get_max_toc_size(opj_j2k_t *p_j2k) in opj_j2k_get_max_toc_size() argument
3414 l_tcp = p_j2k->m_cp.tcps; in opj_j2k_get_max_toc_size()
3415 l_nb_tiles = p_j2k->m_cp.tw * p_j2k->m_cp.th ; in opj_j2k_get_max_toc_size()
3426 static OPJ_UINT32 opj_j2k_get_specific_header_sizes(opj_j2k_t *p_j2k) in opj_j2k_get_specific_header_sizes() argument
3432 l_nb_comps = p_j2k->m_private_image->numcomps - 1; in opj_j2k_get_specific_header_sizes()
3433 l_nb_bytes += opj_j2k_get_max_toc_size(p_j2k); in opj_j2k_get_specific_header_sizes()
3435 if (!(OPJ_IS_CINEMA(p_j2k->m_cp.rsiz))) { in opj_j2k_get_specific_header_sizes()
3436 l_coc_bytes = opj_j2k_get_max_coc_size(p_j2k); in opj_j2k_get_specific_header_sizes()
3439 l_qcc_bytes = opj_j2k_get_max_qcc_size(p_j2k); in opj_j2k_get_specific_header_sizes()
3443 l_nb_bytes += opj_j2k_get_max_poc_size(p_j2k); in opj_j2k_get_specific_header_sizes()
3458 static OPJ_BOOL opj_j2k_read_poc(opj_j2k_t *p_j2k, in opj_j2k_read_poc() argument
3475 assert(p_j2k != 00); in opj_j2k_read_poc()
3478 l_image = p_j2k->m_private_image; in opj_j2k_read_poc()
3494 l_cp = &(p_j2k->m_cp); in opj_j2k_read_poc()
3495 l_tcp = (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH) ? in opj_j2k_read_poc()
3496 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_poc()
3497 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_poc()
3549 static OPJ_BOOL opj_j2k_read_crg(opj_j2k_t *p_j2k, in opj_j2k_read_crg() argument
3558 assert(p_j2k != 00); in opj_j2k_read_crg()
3563 l_nb_comp = p_j2k->m_private_image->numcomps; in opj_j2k_read_crg()
3591 static OPJ_BOOL opj_j2k_read_tlm(opj_j2k_t *p_j2k, in opj_j2k_read_tlm() argument
3601 assert(p_j2k != 00); in opj_j2k_read_tlm()
3604 OPJ_UNUSED(p_j2k); in opj_j2k_read_tlm()
3652 static OPJ_BOOL opj_j2k_read_plm(opj_j2k_t *p_j2k, in opj_j2k_read_plm() argument
3660 assert(p_j2k != 00); in opj_j2k_read_plm()
3663 OPJ_UNUSED(p_j2k); in opj_j2k_read_plm()
3725 static OPJ_BOOL opj_j2k_read_plt(opj_j2k_t *p_j2k, in opj_j2k_read_plt() argument
3735 assert(p_j2k != 00); in opj_j2k_read_plt()
3738 OPJ_UNUSED(p_j2k); in opj_j2k_read_plt()
3780 opj_j2k_t *p_j2k, in opj_j2k_read_ppm() argument
3790 assert(p_j2k != 00); in opj_j2k_read_ppm()
3799 l_cp = &(p_j2k->m_cp); in opj_j2k_read_ppm()
3997 static OPJ_BOOL opj_j2k_read_ppt(opj_j2k_t *p_j2k, in opj_j2k_read_ppt() argument
4009 assert(p_j2k != 00); in opj_j2k_read_ppt()
4018 l_cp = &(p_j2k->m_cp); in opj_j2k_read_ppt()
4025 l_tcp = &(l_cp->tcps[p_j2k->m_current_tile_number]); in opj_j2k_read_ppt()
4130 static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k, in opj_j2k_write_tlm() argument
4139 assert(p_j2k != 00); in opj_j2k_write_tlm()
4143 l_tlm_size = 6 + (5 * p_j2k->m_specific_param.m_encoder.m_total_tile_parts); in opj_j2k_write_tlm()
4145 if (l_tlm_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_tlm()
4147p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_tlm_size); in opj_j2k_write_tlm()
4149 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_tlm()
4150 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_tlm()
4151 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_tlm()
4155 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_tlm()
4156 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_tlm_size; in opj_j2k_write_tlm()
4159 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_tlm()
4163 p_j2k->m_specific_param.m_encoder.m_tlm_start = opj_stream_tell(p_stream); in opj_j2k_write_tlm()
4183 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_tlm_size, in opj_j2k_write_tlm()
4191 static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, in opj_j2k_write_sot() argument
4200 assert(p_j2k != 00); in opj_j2k_write_sot()
4220 opj_write_bytes(p_data, p_j2k->m_current_tile_number, in opj_j2k_write_sot()
4228 p_j2k->m_specific_param.m_encoder.m_current_tile_part_number, in opj_j2k_write_sot()
4233 p_j2k->m_cp.tcps[p_j2k->m_current_tile_number].m_nb_tile_parts, in opj_j2k_write_sot()
4280 static OPJ_BOOL opj_j2k_read_sot(opj_j2k_t *p_j2k, in opj_j2k_read_sot() argument
4293 assert(p_j2k != 00); in opj_j2k_read_sot()
4297 … &(p_j2k->m_current_tile_number), &l_tot_len, &l_current_part, &l_num_parts, in opj_j2k_read_sot()
4304 p_j2k->m_current_tile_number, l_tot_len, l_current_part, l_num_parts); in opj_j2k_read_sot()
4307 l_cp = &(p_j2k->m_cp); in opj_j2k_read_sot()
4310 if (p_j2k->m_current_tile_number >= l_cp->tw * l_cp->th) { in opj_j2k_read_sot()
4312 p_j2k->m_current_tile_number); in opj_j2k_read_sot()
4316 l_tcp = &l_cp->tcps[p_j2k->m_current_tile_number]; in opj_j2k_read_sot()
4317 l_tile_x = p_j2k->m_current_tile_number % l_cp->tw; in opj_j2k_read_sot()
4318 l_tile_y = p_j2k->m_current_tile_number / l_cp->tw; in opj_j2k_read_sot()
4320 if (p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec < 0 || in opj_j2k_read_sot()
4321 p_j2k->m_current_tile_number == (OPJ_UINT32) in opj_j2k_read_sot()
4322 p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec) { in opj_j2k_read_sot()
4337 p_j2k->m_current_tile_number, in opj_j2k_read_sot()
4349 OPJ_UINT32 tileno = p_j2k->m_current_tile_number; in opj_j2k_read_sot()
4418 p_j2k->m_specific_param.m_decoder.m_last_tile_part = 1; in opj_j2k_read_sot()
4427 p_j2k->m_specific_param.m_decoder.m_last_tile_part = 1; in opj_j2k_read_sot()
4433 l_num_parts += p_j2k->m_specific_param.m_decoder.m_nb_tile_parts_correction; in opj_j2k_read_sot()
4442 p_j2k->m_specific_param.m_decoder.m_last_tile_part = 1; in opj_j2k_read_sot()
4451 p_j2k->m_specific_param.m_decoder.m_last_tile_part = 1; in opj_j2k_read_sot()
4460 p_j2k->m_specific_param.m_decoder.m_can_decode = in opj_j2k_read_sot()
4465 if (!p_j2k->m_specific_param.m_decoder.m_last_tile_part) { in opj_j2k_read_sot()
4467 p_j2k->m_specific_param.m_decoder.m_sot_length = l_tot_len - in opj_j2k_read_sot()
4471 p_j2k->m_specific_param.m_decoder.m_sot_length = 0; in opj_j2k_read_sot()
4474 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_TPH; in opj_j2k_read_sot()
4477 if (p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec == -1) { in opj_j2k_read_sot()
4478 p_j2k->m_specific_param.m_decoder.m_skip_data = in opj_j2k_read_sot()
4479 (l_tile_x < p_j2k->m_specific_param.m_decoder.m_start_tile_x) in opj_j2k_read_sot()
4480 || (l_tile_x >= p_j2k->m_specific_param.m_decoder.m_end_tile_x) in opj_j2k_read_sot()
4481 || (l_tile_y < p_j2k->m_specific_param.m_decoder.m_start_tile_y) in opj_j2k_read_sot()
4482 || (l_tile_y >= p_j2k->m_specific_param.m_decoder.m_end_tile_y); in opj_j2k_read_sot()
4484 assert(p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec >= 0); in opj_j2k_read_sot()
4485 p_j2k->m_specific_param.m_decoder.m_skip_data = in opj_j2k_read_sot()
4486 (p_j2k->m_current_tile_number != (OPJ_UINT32) in opj_j2k_read_sot()
4487 p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec); in opj_j2k_read_sot()
4491 if (p_j2k->cstr_index) { in opj_j2k_read_sot()
4492 assert(p_j2k->cstr_index->tile_index != 00); in opj_j2k_read_sot()
4493 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tileno = in opj_j2k_read_sot()
4494 p_j2k->m_current_tile_number; in opj_j2k_read_sot()
4495 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_tpsno = in opj_j2k_read_sot()
4499 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].nb_tps = in opj_j2k_read_sot()
4501 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps = in opj_j2k_read_sot()
4504 if (!p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index) { in opj_j2k_read_sot()
4505 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index = in opj_j2k_read_sot()
4507 if (!p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index) { in opj_j2k_read_sot()
4514p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index, in opj_j2k_read_sot()
4517 opj_free(p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index); in opj_j2k_read_sot()
4518 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index = NULL; in opj_j2k_read_sot()
4523 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index = in opj_j2k_read_sot()
4529 if (!p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index) { in opj_j2k_read_sot()
4530 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps = 10; in opj_j2k_read_sot()
4531 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index = in opj_j2k_read_sot()
4533p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps, in opj_j2k_read_sot()
4535 if (!p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index) { in opj_j2k_read_sot()
4536p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps = 0; in opj_j2k_read_sot()
4544p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps) { in opj_j2k_read_sot()
4546 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps = in opj_j2k_read_sot()
4549p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index, in opj_j2k_read_sot()
4550p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps * in opj_j2k_read_sot()
4553 … opj_free(p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index); in opj_j2k_read_sot()
4554 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index = NULL; in opj_j2k_read_sot()
4555p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].current_nb_tps = 0; in opj_j2k_read_sot()
4560 p_j2k->cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index = in opj_j2k_read_sot()
4599 static OPJ_BOOL opj_j2k_write_sod(opj_j2k_t *p_j2k, in opj_j2k_write_sod() argument
4612 assert(p_j2k != 00); in opj_j2k_write_sod()
4633 p_j2k->m_specific_param.m_encoder.m_current_poc_tile_part_number ; in opj_j2k_write_sod()
4635 p_j2k->m_specific_param.m_encoder.m_current_tile_part_number; in opj_j2k_write_sod()
4665 if (p_j2k->m_specific_param.m_encoder.m_current_tile_part_number == 0) { in opj_j2k_write_sod()
4676 if (! opj_tcd_encode_tile(p_tile_coder, p_j2k->m_current_tile_number, p_data, in opj_j2k_write_sod()
4688 static OPJ_BOOL opj_j2k_read_sod(opj_j2k_t *p_j2k, in opj_j2k_read_sod() argument
4701 assert(p_j2k != 00); in opj_j2k_read_sod()
4705 l_tcp = &(p_j2k->m_cp.tcps[p_j2k->m_current_tile_number]); in opj_j2k_read_sod()
4707 if (p_j2k->m_specific_param.m_decoder.m_last_tile_part) { in opj_j2k_read_sod()
4712 p_j2k->m_specific_param.m_decoder.m_sot_length = (OPJ_UINT32)( in opj_j2k_read_sod()
4716 if (p_j2k->m_specific_param.m_decoder.m_sot_length >= 2) { in opj_j2k_read_sod()
4717 p_j2k->m_specific_param.m_decoder.m_sot_length -= 2; in opj_j2k_read_sod()
4727 if (p_j2k->m_specific_param.m_decoder.m_sot_length) { in opj_j2k_read_sod()
4730 if ((OPJ_OFF_T)p_j2k->m_specific_param.m_decoder.m_sot_length > in opj_j2k_read_sod()
4736 if (p_j2k->m_specific_param.m_decoder.m_sot_length > in opj_j2k_read_sod()
4751p_j2k->m_specific_param.m_decoder.m_sot_length + OPJ_COMMON_CBLK_DATA_EXTRA); in opj_j2k_read_sod()
4755 p_j2k->m_specific_param.m_decoder.m_sot_length) { in opj_j2k_read_sod()
4763 *l_tile_len + p_j2k->m_specific_param.m_decoder.m_sot_length + in opj_j2k_read_sod()
4784 l_cstr_index = p_j2k->cstr_index; in opj_j2k_read_sod()
4789 l_cstr_index->tile_index[p_j2k->m_current_tile_number].current_tpsno; in opj_j2k_read_sod()
4790 … l_cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index[l_current_tile_part].end_header in opj_j2k_read_sod()
4793 l_cstr_index->tile_index[p_j2k->m_current_tile_number].tp_index[l_current_tile_part].end_pos in opj_j2k_read_sod()
4795 l_current_pos + p_j2k->m_specific_param.m_decoder.m_sot_length + 2; in opj_j2k_read_sod()
4797 if (OPJ_FALSE == opj_j2k_add_tlmarker(p_j2k->m_current_tile_number, in opj_j2k_read_sod()
4801 p_j2k->m_specific_param.m_decoder.m_sot_length + 2)) { in opj_j2k_read_sod()
4814 p_j2k->m_specific_param.m_decoder.m_sot_length, in opj_j2k_read_sod()
4820 if (l_current_read_size != p_j2k->m_specific_param.m_decoder.m_sot_length) { in opj_j2k_read_sod()
4821 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_NEOC; in opj_j2k_read_sod()
4823 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_TPHSOT; in opj_j2k_read_sod()
4831 static OPJ_BOOL opj_j2k_write_rgn(opj_j2k_t *p_j2k, in opj_j2k_write_rgn() argument
4847 assert(p_j2k != 00); in opj_j2k_write_rgn()
4851 l_cp = &(p_j2k->m_cp); in opj_j2k_write_rgn()
4863 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_rgn()
4886 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_rgn_size, in opj_j2k_write_rgn()
4894 static OPJ_BOOL opj_j2k_write_eoc(opj_j2k_t *p_j2k, in opj_j2k_write_eoc() argument
4900 assert(p_j2k != 00); in opj_j2k_write_eoc()
4904 opj_write_bytes(p_j2k->m_specific_param.m_encoder.m_header_tile_data, in opj_j2k_write_eoc()
4916p_j2k->m_specific_param.m_encoder.m_header_tile_data, 2, p_manager) != 2) { in opj_j2k_write_eoc()
4935 static OPJ_BOOL opj_j2k_read_rgn(opj_j2k_t *p_j2k, in opj_j2k_read_rgn() argument
4950 assert(p_j2k != 00); in opj_j2k_read_rgn()
4953 l_image = p_j2k->m_private_image; in opj_j2k_read_rgn()
4967 l_cp = &(p_j2k->m_cp); in opj_j2k_read_rgn()
4968 l_tcp = (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH) ? in opj_j2k_read_rgn()
4969 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_rgn()
4970 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_rgn()
5020 static OPJ_BOOL opj_j2k_update_rates(opj_j2k_t *p_j2k, in opj_j2k_update_rates() argument
5039 assert(p_j2k != 00); in opj_j2k_update_rates()
5045 l_cp = &(p_j2k->m_cp); in opj_j2k_update_rates()
5046 l_image = p_j2k->m_private_image; in opj_j2k_update_rates()
5178 l_tile_size += opj_j2k_get_specific_header_sizes(p_j2k); in opj_j2k_update_rates()
5180 p_j2k->m_specific_param.m_encoder.m_encoded_tile_size = l_tile_size; in opj_j2k_update_rates()
5181 p_j2k->m_specific_param.m_encoder.m_encoded_tile_data = in opj_j2k_update_rates()
5182 (OPJ_BYTE *) opj_malloc(p_j2k->m_specific_param.m_encoder.m_encoded_tile_size); in opj_j2k_update_rates()
5183 if (p_j2k->m_specific_param.m_encoder.m_encoded_tile_data == 00) { in opj_j2k_update_rates()
5188 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer = in opj_j2k_update_rates()
5190 p_j2k->m_specific_param.m_encoder.m_total_tile_parts); in opj_j2k_update_rates()
5191 if (! p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer) { in opj_j2k_update_rates()
5195 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_current = in opj_j2k_update_rates()
5196 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer; in opj_j2k_update_rates()
5203 static OPJ_BOOL opj_j2k_read_eoc(opj_j2k_t *p_j2k,
5214 assert(p_j2k != 00);
5218 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw;
5219 l_tcp = p_j2k->m_cp.tcps;
5236 p_j2k->cstr_index);
5240 p_j2k->m_specific_param.m_decoder.m_state |= J2K_STATE_ERR;
5254 static OPJ_BOOL opj_j2k_get_end_header(opj_j2k_t *p_j2k, in opj_j2k_get_end_header() argument
5259 assert(p_j2k != 00); in opj_j2k_get_end_header()
5265 p_j2k->cstr_index->main_head_end = opj_stream_tell(p_stream); in opj_j2k_get_end_header()
5270 static OPJ_BOOL opj_j2k_write_mct_data_group(opj_j2k_t *p_j2k, in opj_j2k_write_mct_data_group() argument
5280 assert(p_j2k != 00); in opj_j2k_write_mct_data_group()
5284 if (! opj_j2k_write_cbd(p_j2k, p_stream, p_manager)) { in opj_j2k_write_mct_data_group()
5288 l_tcp = &(p_j2k->m_cp.tcps[p_j2k->m_current_tile_number]); in opj_j2k_write_mct_data_group()
5293 if (! opj_j2k_write_mct_record(p_j2k, l_mct_record, p_stream, p_manager)) { in opj_j2k_write_mct_data_group()
5304 if (! opj_j2k_write_mcc_record(p_j2k, l_mcc_record, p_stream, p_manager)) { in opj_j2k_write_mct_data_group()
5311 if (! opj_j2k_write_mco(p_j2k, p_stream, p_manager)) { in opj_j2k_write_mct_data_group()
5319 opj_j2k_t *p_j2k, in opj_j2k_write_all_coc() argument
5326 assert(p_j2k != 00); in opj_j2k_write_all_coc()
5330 for (compno = 1; compno < p_j2k->m_private_image->numcomps; ++compno) { in opj_j2k_write_all_coc()
5332 if (! opj_j2k_compare_coc(p_j2k, 0, compno)) { in opj_j2k_write_all_coc()
5333 if (! opj_j2k_write_coc(p_j2k, compno, p_stream, p_manager)) { in opj_j2k_write_all_coc()
5343 opj_j2k_t *p_j2k, in opj_j2k_write_all_qcc() argument
5350 assert(p_j2k != 00); in opj_j2k_write_all_qcc()
5354 for (compno = 1; compno < p_j2k->m_private_image->numcomps; ++compno) { in opj_j2k_write_all_qcc()
5356 if (! opj_j2k_compare_qcc(p_j2k, 0, compno)) { in opj_j2k_write_all_qcc()
5357 if (! opj_j2k_write_qcc(p_j2k, compno, p_stream, p_manager)) { in opj_j2k_write_all_qcc()
5365 static OPJ_BOOL opj_j2k_write_regions(opj_j2k_t *p_j2k, in opj_j2k_write_regions() argument
5373 assert(p_j2k != 00); in opj_j2k_write_regions()
5377 l_tccp = p_j2k->m_cp.tcps->tccps; in opj_j2k_write_regions()
5379 for (compno = 0; compno < p_j2k->m_private_image->numcomps; ++compno) { in opj_j2k_write_regions()
5382 if (! opj_j2k_write_rgn(p_j2k, 0, compno, p_j2k->m_private_image->numcomps, in opj_j2k_write_regions()
5394 static OPJ_BOOL opj_j2k_write_epc(opj_j2k_t *p_j2k, in opj_j2k_write_epc() argument
5401 assert(p_j2k != 00); in opj_j2k_write_epc()
5407 l_cstr_index = p_j2k->cstr_index; in opj_j2k_write_epc()
5424 jpwl_encode(p_j2k, p_stream, image); in opj_j2k_write_epc()
5434 static OPJ_BOOL opj_j2k_read_unk(opj_j2k_t *p_j2k, in opj_j2k_read_unk() argument
5445 assert(p_j2k != 00); in opj_j2k_read_unk()
5454p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_unk()
5460 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, in opj_j2k_read_unk()
5468 if (!(p_j2k->m_specific_param.m_decoder.m_state & l_marker_handler->states)) { in opj_j2k_read_unk()
5476 OPJ_BOOL res = opj_j2k_add_mhmarker(p_j2k->cstr_index, J2K_MS_UNK, in opj_j2k_read_unk()
5497 static OPJ_BOOL opj_j2k_write_mct_record(opj_j2k_t *p_j2k, in opj_j2k_write_mct_record() argument
5507 assert(p_j2k != 00); in opj_j2k_write_mct_record()
5513 if (l_mct_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_mct_record()
5515p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_mct_size); in opj_j2k_write_mct_record()
5517 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_mct_record()
5518 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_mct_record()
5519 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_mct_record()
5523 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_mct_record()
5524 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_mct_size; in opj_j2k_write_mct_record()
5527 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_mct_record()
5555 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_mct_size, in opj_j2k_write_mct_record()
5571 static OPJ_BOOL opj_j2k_read_mct(opj_j2k_t *p_j2k, in opj_j2k_read_mct() argument
5586 assert(p_j2k != 00); in opj_j2k_read_mct()
5588 l_tcp = p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH ? in opj_j2k_read_mct()
5589 &p_j2k->m_cp.tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_mct()
5590 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_mct()
5708 static OPJ_BOOL opj_j2k_write_mcc_record(opj_j2k_t *p_j2k, in opj_j2k_write_mcc_record() argument
5721 assert(p_j2k != 00); in opj_j2k_write_mcc_record()
5734 if (l_mcc_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_mcc_record()
5736p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_mcc_size); in opj_j2k_write_mcc_record()
5738 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_mcc_record()
5739 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_mcc_record()
5740 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_mcc_record()
5744 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_mcc_record()
5745 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_mcc_size; in opj_j2k_write_mcc_record()
5748 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_mcc_record()
5815 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_mcc_size, in opj_j2k_write_mcc_record()
5823 static OPJ_BOOL opj_j2k_read_mcc(opj_j2k_t *p_j2k, in opj_j2k_read_mcc() argument
5841 assert(p_j2k != 00); in opj_j2k_read_mcc()
5844 l_tcp = p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH ? in opj_j2k_read_mcc()
5845 &p_j2k->m_cp.tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_mcc()
5846 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_mcc()
6056 static OPJ_BOOL opj_j2k_write_mco(opj_j2k_t *p_j2k, in opj_j2k_write_mco() argument
6068 assert(p_j2k != 00); in opj_j2k_write_mco()
6072 l_tcp = &(p_j2k->m_cp.tcps[p_j2k->m_current_tile_number]); in opj_j2k_write_mco()
6075 if (l_mco_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_mco()
6078p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_mco_size); in opj_j2k_write_mco()
6080 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_mco()
6081 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_mco()
6082 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_mco()
6086 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_mco()
6087 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_mco_size; in opj_j2k_write_mco()
6089 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_mco()
6111 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_mco_size, in opj_j2k_write_mco()
6127 static OPJ_BOOL opj_j2k_read_mco(opj_j2k_t *p_j2k, in opj_j2k_read_mco() argument
6141 assert(p_j2k != 00); in opj_j2k_read_mco()
6144 l_image = p_j2k->m_private_image; in opj_j2k_read_mco()
6145 l_tcp = p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH ? in opj_j2k_read_mco()
6146 &p_j2k->m_cp.tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_mco()
6147 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_mco()
6185 if (! opj_j2k_add_mct(l_tcp, p_j2k->m_private_image, l_tmp)) { in opj_j2k_read_mco()
6280 static OPJ_BOOL opj_j2k_write_cbd(opj_j2k_t *p_j2k, in opj_j2k_write_cbd() argument
6291 assert(p_j2k != 00); in opj_j2k_write_cbd()
6295 l_image = p_j2k->m_private_image; in opj_j2k_write_cbd()
6296 l_cbd_size = 6 + p_j2k->m_private_image->numcomps; in opj_j2k_write_cbd()
6298 if (l_cbd_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { in opj_j2k_write_cbd()
6300p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_cbd_size); in opj_j2k_write_cbd()
6302 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_write_cbd()
6303 p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL; in opj_j2k_write_cbd()
6304 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_write_cbd()
6308 p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; in opj_j2k_write_cbd()
6309 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_cbd_size; in opj_j2k_write_cbd()
6312 l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; in opj_j2k_write_cbd()
6334 p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_cbd_size, in opj_j2k_write_cbd()
6349 static OPJ_BOOL opj_j2k_read_cbd(opj_j2k_t *p_j2k, in opj_j2k_read_cbd() argument
6362 assert(p_j2k != 00); in opj_j2k_read_cbd()
6365 l_num_comp = p_j2k->m_private_image->numcomps; in opj_j2k_read_cbd()
6367 if (p_header_size != (p_j2k->m_private_image->numcomps + 2)) { in opj_j2k_read_cbd()
6381 l_comp = p_j2k->m_private_image->comps; in opj_j2k_read_cbd()
6743 OPJ_BOOL opj_j2k_setup_encoder(opj_j2k_t *p_j2k, in opj_j2k_setup_encoder() argument
6752 if (!p_j2k || !parameters || ! image) { in opj_j2k_setup_encoder()
6797 cp = &(p_j2k->m_cp); in opj_j2k_setup_encoder()
7465 OPJ_BOOL opj_j2k_end_decompress(opj_j2k_t *p_j2k, in opj_j2k_end_decompress() argument
7470 (void)p_j2k; in opj_j2k_end_decompress()
7477 opj_j2k_t* p_j2k, in opj_j2k_read_header() argument
7482 assert(p_j2k != 00); in opj_j2k_read_header()
7487 p_j2k->m_private_image = opj_image_create0(); in opj_j2k_read_header()
7488 if (! p_j2k->m_private_image) { in opj_j2k_read_header()
7493 if (! opj_j2k_setup_decoding_validation(p_j2k, p_manager)) { in opj_j2k_read_header()
7494 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_read_header()
7495 p_j2k->m_private_image = NULL; in opj_j2k_read_header()
7500 if (! opj_j2k_exec(p_j2k, p_j2k->m_validation_list, p_stream, p_manager)) { in opj_j2k_read_header()
7501 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_read_header()
7502 p_j2k->m_private_image = NULL; in opj_j2k_read_header()
7507 if (! opj_j2k_setup_header_reading(p_j2k, p_manager)) { in opj_j2k_read_header()
7508 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_read_header()
7509 p_j2k->m_private_image = NULL; in opj_j2k_read_header()
7514 if (! opj_j2k_exec(p_j2k, p_j2k->m_procedure_list, p_stream, p_manager)) { in opj_j2k_read_header()
7515 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_read_header()
7516 p_j2k->m_private_image = NULL; in opj_j2k_read_header()
7526 opj_copy_image_header(p_j2k->m_private_image, *p_image); in opj_j2k_read_header()
7529 if (!opj_j2k_allocate_tile_element_cstr_index(p_j2k)) { in opj_j2k_read_header()
7536 static OPJ_BOOL opj_j2k_setup_header_reading(opj_j2k_t *p_j2k, in opj_j2k_setup_header_reading() argument
7540 assert(p_j2k != 00); in opj_j2k_setup_header_reading()
7543 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_reading()
7549 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_reading()
7557 static OPJ_BOOL opj_j2k_setup_decoding_validation(opj_j2k_t *p_j2k, in opj_j2k_setup_decoding_validation() argument
7561 assert(p_j2k != 00); in opj_j2k_setup_decoding_validation()
7564 if (! opj_procedure_list_add_procedure(p_j2k->m_validation_list, in opj_j2k_setup_decoding_validation()
7568 if (! opj_procedure_list_add_procedure(p_j2k->m_validation_list, in opj_j2k_setup_decoding_validation()
7577 static OPJ_BOOL opj_j2k_mct_validation(opj_j2k_t * p_j2k, in opj_j2k_mct_validation() argument
7585 assert(p_j2k != 00); in opj_j2k_mct_validation()
7592 if ((p_j2k->m_cp.rsiz & 0x8200) == 0x8200) { in opj_j2k_mct_validation()
7593 OPJ_UINT32 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; in opj_j2k_mct_validation()
7594 opj_tcp_t * l_tcp = p_j2k->m_cp.tcps; in opj_j2k_mct_validation()
7601 for (j = 0; j < p_j2k->m_private_image->numcomps; ++j) { in opj_j2k_mct_validation()
7776 static OPJ_BOOL opj_j2k_build_decoder(opj_j2k_t * p_j2k, in opj_j2k_build_decoder() argument
7782 (void)p_j2k; in opj_j2k_build_decoder()
7788 static OPJ_BOOL opj_j2k_build_encoder(opj_j2k_t * p_j2k, in opj_j2k_build_encoder() argument
7794 (void)p_j2k; in opj_j2k_build_encoder()
7800 static OPJ_BOOL opj_j2k_encoding_validation(opj_j2k_t * p_j2k, in opj_j2k_encoding_validation() argument
7807 assert(p_j2k != 00); in opj_j2k_encoding_validation()
7815 l_is_valid &= (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_NONE); in opj_j2k_encoding_validation()
7819 l_is_valid &= (p_j2k->m_procedure_list != 00); in opj_j2k_encoding_validation()
7821 l_is_valid &= (p_j2k->m_validation_list != 00); in opj_j2k_encoding_validation()
7826 if ((p_j2k->m_cp.tcps->tccps->numresolutions <= 0) || in opj_j2k_encoding_validation()
7827 (p_j2k->m_cp.tcps->tccps->numresolutions > 32)) { in opj_j2k_encoding_validation()
7833 if ((p_j2k->m_cp.tdx) < (OPJ_UINT32)(1 << in opj_j2k_encoding_validation()
7834 (p_j2k->m_cp.tcps->tccps->numresolutions - 1U))) { in opj_j2k_encoding_validation()
7840 if ((p_j2k->m_cp.tdy) < (OPJ_UINT32)(1 << in opj_j2k_encoding_validation()
7841 (p_j2k->m_cp.tcps->tccps->numresolutions - 1U))) { in opj_j2k_encoding_validation()
7851 static OPJ_BOOL opj_j2k_decoding_validation(opj_j2k_t *p_j2k, in opj_j2k_decoding_validation() argument
7859 assert(p_j2k != 00); in opj_j2k_decoding_validation()
7869 l_is_valid &= (p_j2k->m_specific_param.m_decoder.m_state == J2K_DEC_STATE_NONE); in opj_j2k_decoding_validation()
7871 l_is_valid &= (p_j2k->m_specific_param.m_decoder.m_state == 0x0000); in opj_j2k_decoding_validation()
7876 l_is_valid &= (p_j2k->m_procedure_list != 00); in opj_j2k_decoding_validation()
7878 l_is_valid &= (p_j2k->m_validation_list != 00); in opj_j2k_decoding_validation()
7884 static OPJ_BOOL opj_j2k_read_header_procedure(opj_j2k_t *p_j2k, in opj_j2k_read_header_procedure() argument
7897 assert(p_j2k != 00); in opj_j2k_read_header_procedure()
7901 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_MHSOC; in opj_j2k_read_header_procedure()
7904 if (! opj_j2k_read_soc(p_j2k, p_stream, p_manager)) { in opj_j2k_read_header_procedure()
7911 p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_header_procedure()
7917 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, in opj_j2k_read_header_procedure()
7935 if (! opj_j2k_read_unk(p_j2k, p_stream, &l_current_marker, p_manager)) { in opj_j2k_read_header_procedure()
7962 if (!(p_j2k->m_specific_param.m_decoder.m_state & l_marker_handler->states)) { in opj_j2k_read_header_procedure()
7970p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_header_procedure()
7976 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, &l_marker_size, in opj_j2k_read_header_procedure()
7985 if (l_marker_size > p_j2k->m_specific_param.m_decoder.m_header_data_size) { in opj_j2k_read_header_procedure()
7987p_j2k->m_specific_param.m_decoder.m_header_data, l_marker_size); in opj_j2k_read_header_procedure()
7989 opj_free(p_j2k->m_specific_param.m_decoder.m_header_data); in opj_j2k_read_header_procedure()
7990 p_j2k->m_specific_param.m_decoder.m_header_data = NULL; in opj_j2k_read_header_procedure()
7991 p_j2k->m_specific_param.m_decoder.m_header_data_size = 0; in opj_j2k_read_header_procedure()
7995 p_j2k->m_specific_param.m_decoder.m_header_data = new_header_data; in opj_j2k_read_header_procedure()
7996 p_j2k->m_specific_param.m_decoder.m_header_data_size = l_marker_size; in opj_j2k_read_header_procedure()
8001 p_j2k->m_specific_param.m_decoder.m_header_data, l_marker_size, in opj_j2k_read_header_procedure()
8008 if (!(*(l_marker_handler->handler))(p_j2k, in opj_j2k_read_header_procedure()
8009p_j2k->m_specific_param.m_decoder.m_header_data, l_marker_size, p_manager)) { in opj_j2k_read_header_procedure()
8017 p_j2k->cstr_index, in opj_j2k_read_header_procedure()
8027p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_header_procedure()
8033 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, in opj_j2k_read_header_procedure()
8053 if (! opj_j2k_merge_ppm(&(p_j2k->m_cp), p_manager)) { in opj_j2k_read_header_procedure()
8061 p_j2k->cstr_index->main_head_end = (OPJ_UINT32) opj_stream_tell(p_stream) - 2; in opj_j2k_read_header_procedure()
8064 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_TPHSOT; in opj_j2k_read_header_procedure()
8069 static OPJ_BOOL opj_j2k_exec(opj_j2k_t * p_j2k, in opj_j2k_exec() argument
8081 assert(p_j2k != 00); in opj_j2k_exec()
8090 l_result = l_result && ((*l_procedure)(p_j2k, p_stream, p_manager)); in opj_j2k_exec()
8100 static OPJ_BOOL opj_j2k_copy_default_tcp_and_create_tcd(opj_j2k_t * p_j2k, in opj_j2k_copy_default_tcp_and_create_tcd() argument
8119 assert(p_j2k != 00); in opj_j2k_copy_default_tcp_and_create_tcd()
8125 l_image = p_j2k->m_private_image; in opj_j2k_copy_default_tcp_and_create_tcd()
8126 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; in opj_j2k_copy_default_tcp_and_create_tcd()
8127 l_tcp = p_j2k->m_cp.tcps; in opj_j2k_copy_default_tcp_and_create_tcd()
8129 l_default_tcp = p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_copy_default_tcp_and_create_tcd()
8235 p_j2k->m_tcd = opj_tcd_create(OPJ_TRUE); in opj_j2k_copy_default_tcp_and_create_tcd()
8236 if (! p_j2k->m_tcd) { in opj_j2k_copy_default_tcp_and_create_tcd()
8240 if (!opj_tcd_init(p_j2k->m_tcd, l_image, &(p_j2k->m_cp), p_j2k->m_tp)) { in opj_j2k_copy_default_tcp_and_create_tcd()
8241 opj_tcd_destroy(p_j2k->m_tcd); in opj_j2k_copy_default_tcp_and_create_tcd()
8242 p_j2k->m_tcd = 00; in opj_j2k_copy_default_tcp_and_create_tcd()
8262 void opj_j2k_destroy(opj_j2k_t *p_j2k) in opj_j2k_destroy() argument
8264 if (p_j2k == 00) { in opj_j2k_destroy()
8268 if (p_j2k->m_is_decoder) { in opj_j2k_destroy()
8270 if (p_j2k->m_specific_param.m_decoder.m_default_tcp != 00) { in opj_j2k_destroy()
8271 opj_j2k_tcp_destroy(p_j2k->m_specific_param.m_decoder.m_default_tcp); in opj_j2k_destroy()
8272 opj_free(p_j2k->m_specific_param.m_decoder.m_default_tcp); in opj_j2k_destroy()
8273 p_j2k->m_specific_param.m_decoder.m_default_tcp = 00; in opj_j2k_destroy()
8276 if (p_j2k->m_specific_param.m_decoder.m_header_data != 00) { in opj_j2k_destroy()
8277 opj_free(p_j2k->m_specific_param.m_decoder.m_header_data); in opj_j2k_destroy()
8278 p_j2k->m_specific_param.m_decoder.m_header_data = 00; in opj_j2k_destroy()
8279 p_j2k->m_specific_param.m_decoder.m_header_data_size = 0; in opj_j2k_destroy()
8282 opj_free(p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode); in opj_j2k_destroy()
8283 p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode = 00; in opj_j2k_destroy()
8284 p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode = 0; in opj_j2k_destroy()
8288 if (p_j2k->m_specific_param.m_encoder.m_encoded_tile_data) { in opj_j2k_destroy()
8289 opj_free(p_j2k->m_specific_param.m_encoder.m_encoded_tile_data); in opj_j2k_destroy()
8290 p_j2k->m_specific_param.m_encoder.m_encoded_tile_data = 00; in opj_j2k_destroy()
8293 if (p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer) { in opj_j2k_destroy()
8294 opj_free(p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer); in opj_j2k_destroy()
8295 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer = 00; in opj_j2k_destroy()
8296 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_current = 00; in opj_j2k_destroy()
8299 if (p_j2k->m_specific_param.m_encoder.m_header_tile_data) { in opj_j2k_destroy()
8300 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_destroy()
8301 p_j2k->m_specific_param.m_encoder.m_header_tile_data = 00; in opj_j2k_destroy()
8302 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_destroy()
8306 opj_tcd_destroy(p_j2k->m_tcd); in opj_j2k_destroy()
8308 opj_j2k_cp_destroy(&(p_j2k->m_cp)); in opj_j2k_destroy()
8309 memset(&(p_j2k->m_cp), 0, sizeof(opj_cp_t)); in opj_j2k_destroy()
8311 opj_procedure_list_destroy(p_j2k->m_procedure_list); in opj_j2k_destroy()
8312 p_j2k->m_procedure_list = 00; in opj_j2k_destroy()
8314 opj_procedure_list_destroy(p_j2k->m_validation_list); in opj_j2k_destroy()
8315 p_j2k->m_procedure_list = 00; in opj_j2k_destroy()
8317 j2k_destroy_cstr_index(p_j2k->cstr_index); in opj_j2k_destroy()
8318 p_j2k->cstr_index = NULL; in opj_j2k_destroy()
8320 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_destroy()
8321 p_j2k->m_private_image = NULL; in opj_j2k_destroy()
8323 opj_image_destroy(p_j2k->m_output_image); in opj_j2k_destroy()
8324 p_j2k->m_output_image = NULL; in opj_j2k_destroy()
8326 opj_thread_pool_destroy(p_j2k->m_tp); in opj_j2k_destroy()
8327 p_j2k->m_tp = NULL; in opj_j2k_destroy()
8329 opj_free(p_j2k); in opj_j2k_destroy()
8602 OPJ_BOOL opj_j2k_read_tile_header(opj_j2k_t * p_j2k, in opj_j2k_read_tile_header() argument
8619 assert(p_j2k != 00); in opj_j2k_read_tile_header()
8623 if (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_EOC) { in opj_j2k_read_tile_header()
8627 else if (p_j2k->m_specific_param.m_decoder.m_state != J2K_STATE_TPHSOT) { in opj_j2k_read_tile_header()
8632 while ((!p_j2k->m_specific_param.m_decoder.m_can_decode) && in opj_j2k_read_tile_header()
8639 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_NEOC; in opj_j2k_read_tile_header()
8645p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_tile_header()
8651 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, &l_marker_size, in opj_j2k_read_tile_header()
8663 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_NEOC; in opj_j2k_read_tile_header()
8668 if (p_j2k->m_specific_param.m_decoder.m_state & J2K_STATE_TPH) { in opj_j2k_read_tile_header()
8669 p_j2k->m_specific_param.m_decoder.m_sot_length -= (l_marker_size + 2); in opj_j2k_read_tile_header()
8677 if (!(p_j2k->m_specific_param.m_decoder.m_state & l_marker_handler->states)) { in opj_j2k_read_tile_header()
8685 if (l_marker_size > p_j2k->m_specific_param.m_decoder.m_header_data_size) { in opj_j2k_read_tile_header()
8695p_j2k->m_specific_param.m_decoder.m_header_data, l_marker_size); in opj_j2k_read_tile_header()
8697 opj_free(p_j2k->m_specific_param.m_decoder.m_header_data); in opj_j2k_read_tile_header()
8698 p_j2k->m_specific_param.m_decoder.m_header_data = NULL; in opj_j2k_read_tile_header()
8699 p_j2k->m_specific_param.m_decoder.m_header_data_size = 0; in opj_j2k_read_tile_header()
8703 p_j2k->m_specific_param.m_decoder.m_header_data = new_header_data; in opj_j2k_read_tile_header()
8704 p_j2k->m_specific_param.m_decoder.m_header_data_size = l_marker_size; in opj_j2k_read_tile_header()
8709 p_j2k->m_specific_param.m_decoder.m_header_data, l_marker_size, in opj_j2k_read_tile_header()
8721 if (!(*(l_marker_handler->handler))(p_j2k, in opj_j2k_read_tile_header()
8722p_j2k->m_specific_param.m_decoder.m_header_data, l_marker_size, p_manager)) { in opj_j2k_read_tile_header()
8729 if (OPJ_FALSE == opj_j2k_add_tlmarker(p_j2k->m_current_tile_number, in opj_j2k_read_tile_header()
8730 p_j2k->cstr_index, in opj_j2k_read_tile_header()
8742 if (sot_pos > p_j2k->m_specific_param.m_decoder.m_last_sot_read_pos) { in opj_j2k_read_tile_header()
8743 p_j2k->m_specific_param.m_decoder.m_last_sot_read_pos = sot_pos; in opj_j2k_read_tile_header()
8747 if (p_j2k->m_specific_param.m_decoder.m_skip_data) { in opj_j2k_read_tile_header()
8749 if (opj_stream_skip(p_stream, p_j2k->m_specific_param.m_decoder.m_sot_length, in opj_j2k_read_tile_header()
8750 p_manager) != p_j2k->m_specific_param.m_decoder.m_sot_length) { in opj_j2k_read_tile_header()
8758p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_tile_header()
8763 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, in opj_j2k_read_tile_header()
8768 && p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_NEOC) { in opj_j2k_read_tile_header()
8773 if (! p_j2k->m_specific_param.m_decoder.m_skip_data) { in opj_j2k_read_tile_header()
8775 if (! opj_j2k_read_sod(p_j2k, p_stream, p_manager)) { in opj_j2k_read_tile_header()
8778 if (p_j2k->m_specific_param.m_decoder.m_can_decode && in opj_j2k_read_tile_header()
8779 !p_j2k->m_specific_param.m_decoder.m_nb_tile_parts_correction_checked) { in opj_j2k_read_tile_header()
8783 p_j2k->m_specific_param.m_decoder.m_nb_tile_parts_correction_checked = 1; in opj_j2k_read_tile_header()
8785 p_j2k->m_current_tile_number, &l_correction_needed, p_manager)) { in opj_j2k_read_tile_header()
8791 OPJ_UINT32 l_nb_tiles = p_j2k->m_cp.tw * p_j2k->m_cp.th; in opj_j2k_read_tile_header()
8794 p_j2k->m_specific_param.m_decoder.m_can_decode = 0; in opj_j2k_read_tile_header()
8795 p_j2k->m_specific_param.m_decoder.m_nb_tile_parts_correction = 1; in opj_j2k_read_tile_header()
8798 if (p_j2k->m_cp.tcps[l_tile_no].m_nb_tile_parts != 0U) { in opj_j2k_read_tile_header()
8799 p_j2k->m_cp.tcps[l_tile_no].m_nb_tile_parts += 1; in opj_j2k_read_tile_header()
8806 if (! p_j2k->m_specific_param.m_decoder.m_can_decode) { in opj_j2k_read_tile_header()
8809p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_tile_header()
8815 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, in opj_j2k_read_tile_header()
8820 p_j2k->m_specific_param.m_decoder.m_skip_data = 0; in opj_j2k_read_tile_header()
8821 p_j2k->m_specific_param.m_decoder.m_can_decode = 0; in opj_j2k_read_tile_header()
8822 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_TPHSOT; in opj_j2k_read_tile_header()
8826p_j2k->m_specific_param.m_decoder.m_header_data, 2, p_manager) != 2) { in opj_j2k_read_tile_header()
8832 opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data, in opj_j2k_read_tile_header()
8839 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_EOC; in opj_j2k_read_tile_header()
8843 if (! p_j2k->m_specific_param.m_decoder.m_can_decode) { in opj_j2k_read_tile_header()
8844 OPJ_UINT32 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; in opj_j2k_read_tile_header()
8845 l_tcp = p_j2k->m_cp.tcps + p_j2k->m_current_tile_number; in opj_j2k_read_tile_header()
8847 while ((p_j2k->m_current_tile_number < l_nb_tiles) && (l_tcp->m_data == 00)) { in opj_j2k_read_tile_header()
8848 ++p_j2k->m_current_tile_number; in opj_j2k_read_tile_header()
8852 if (p_j2k->m_current_tile_number == l_nb_tiles) { in opj_j2k_read_tile_header()
8858 if (! opj_j2k_merge_ppt(p_j2k->m_cp.tcps + p_j2k->m_current_tile_number, in opj_j2k_read_tile_header()
8864 if (! opj_tcd_init_decode_tile(p_j2k->m_tcd, p_j2k->m_current_tile_number, in opj_j2k_read_tile_header()
8871 p_j2k->m_current_tile_number + 1, (p_j2k->m_cp.th * p_j2k->m_cp.tw)); in opj_j2k_read_tile_header()
8873 *p_tile_index = p_j2k->m_current_tile_number; in opj_j2k_read_tile_header()
8878 *p_data_size = opj_tcd_get_decoded_tile_size(p_j2k->m_tcd, OPJ_FALSE); in opj_j2k_read_tile_header()
8883 *p_tile_x0 = p_j2k->m_tcd->tcd_image->tiles->x0; in opj_j2k_read_tile_header()
8884 *p_tile_y0 = p_j2k->m_tcd->tcd_image->tiles->y0; in opj_j2k_read_tile_header()
8885 *p_tile_x1 = p_j2k->m_tcd->tcd_image->tiles->x1; in opj_j2k_read_tile_header()
8886 *p_tile_y1 = p_j2k->m_tcd->tcd_image->tiles->y1; in opj_j2k_read_tile_header()
8887 *p_nb_comps = p_j2k->m_tcd->tcd_image->tiles->numcomps; in opj_j2k_read_tile_header()
8889 p_j2k->m_specific_param.m_decoder.m_state |= J2K_STATE_DATA; in opj_j2k_read_tile_header()
8894 OPJ_BOOL opj_j2k_decode_tile(opj_j2k_t * p_j2k, in opj_j2k_decode_tile() argument
8908 assert(p_j2k != 00); in opj_j2k_decode_tile()
8911 if (!(p_j2k->m_specific_param.m_decoder.m_state & J2K_STATE_DATA) in opj_j2k_decode_tile()
8912 || (p_tile_index != p_j2k->m_current_tile_number)) { in opj_j2k_decode_tile()
8916 l_tcp = &(p_j2k->m_cp.tcps[p_tile_index]); in opj_j2k_decode_tile()
8927 l_image_for_bounds = p_j2k->m_output_image ? p_j2k->m_output_image : in opj_j2k_decode_tile()
8928 p_j2k->m_private_image; in opj_j2k_decode_tile()
8929 if (! opj_tcd_decode_tile(p_j2k->m_tcd, in opj_j2k_decode_tile()
8934 p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode, in opj_j2k_decode_tile()
8935 p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode, in opj_j2k_decode_tile()
8939 p_j2k->cstr_index, p_manager)) { in opj_j2k_decode_tile()
8941 p_j2k->m_specific_param.m_decoder.m_state |= J2K_STATE_ERR; in opj_j2k_decode_tile()
8950 if (! opj_tcd_update_tile_data(p_j2k->m_tcd, p_data, p_data_size)) { in opj_j2k_decode_tile()
8961 p_j2k->m_specific_param.m_decoder.m_can_decode = 0; in opj_j2k_decode_tile()
8962 p_j2k->m_specific_param.m_decoder.m_state &= (~(OPJ_UINT32)J2K_STATE_DATA); in opj_j2k_decode_tile()
8965 && p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_NEOC) { in opj_j2k_decode_tile()
8969 if (p_j2k->m_specific_param.m_decoder.m_state != J2K_STATE_EOC) { in opj_j2k_decode_tile()
8978 p_j2k->m_current_tile_number = 0; in opj_j2k_decode_tile()
8979 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_EOC; in opj_j2k_decode_tile()
8982 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_NEOC; in opj_j2k_decode_tile()
9257 OPJ_BOOL opj_j2k_set_decoded_components(opj_j2k_t *p_j2k, in opj_j2k_set_decoded_components() argument
9265 if (p_j2k->m_private_image == NULL) { in opj_j2k_set_decoded_components()
9273 p_j2k->m_private_image->numcomps); in opj_j2k_set_decoded_components()
9279 if (comps_indices[i] >= p_j2k->m_private_image->numcomps) { in opj_j2k_set_decoded_components()
9297 opj_free(p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode); in opj_j2k_set_decoded_components()
9299 p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode = in opj_j2k_set_decoded_components()
9301 if (p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode == NULL) { in opj_j2k_set_decoded_components()
9302 p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode = 0; in opj_j2k_set_decoded_components()
9305 memcpy(p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode, in opj_j2k_set_decoded_components()
9309 p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode = NULL; in opj_j2k_set_decoded_components()
9311 p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode = numcomps; in opj_j2k_set_decoded_components()
9317 OPJ_BOOL opj_j2k_set_decode_area(opj_j2k_t *p_j2k, in opj_j2k_set_decode_area() argument
9323 opj_cp_t * l_cp = &(p_j2k->m_cp); in opj_j2k_set_decode_area()
9324 opj_image_t * l_image = p_j2k->m_private_image; in opj_j2k_set_decode_area()
9328 if (p_j2k->m_cp.tw == 1 && p_j2k->m_cp.th == 1 && in opj_j2k_set_decode_area()
9329 p_j2k->m_cp.tcps[0].m_data != NULL) { in opj_j2k_set_decode_area()
9334 else if (p_j2k->m_specific_param.m_decoder.m_state != J2K_STATE_TPHSOT) { in opj_j2k_set_decode_area()
9343 p_image->comps[it_comp].factor = p_j2k->m_cp.m_specific_param.m_dec.m_reduce; in opj_j2k_set_decode_area()
9350 p_j2k->m_specific_param.m_decoder.m_start_tile_x = 0; in opj_j2k_set_decode_area()
9351 p_j2k->m_specific_param.m_decoder.m_start_tile_y = 0; in opj_j2k_set_decode_area()
9352 p_j2k->m_specific_param.m_decoder.m_end_tile_x = l_cp->tw; in opj_j2k_set_decode_area()
9353 p_j2k->m_specific_param.m_decoder.m_end_tile_y = l_cp->th; in opj_j2k_set_decode_area()
9381 p_j2k->m_specific_param.m_decoder.m_start_tile_x = 0; in opj_j2k_set_decode_area()
9384 p_j2k->m_specific_param.m_decoder.m_start_tile_x = ((OPJ_UINT32)p_start_x - in opj_j2k_set_decode_area()
9404 p_j2k->m_specific_param.m_decoder.m_start_tile_y = 0; in opj_j2k_set_decode_area()
9407 p_j2k->m_specific_param.m_decoder.m_start_tile_y = ((OPJ_UINT32)p_start_y - in opj_j2k_set_decode_area()
9427 p_j2k->m_specific_param.m_decoder.m_end_tile_x = l_cp->tw; in opj_j2k_set_decode_area()
9430 p_j2k->m_specific_param.m_decoder.m_end_tile_x = (OPJ_UINT32)opj_int_ceildiv( in opj_j2k_set_decode_area()
9451 p_j2k->m_specific_param.m_decoder.m_end_tile_y = l_cp->th; in opj_j2k_set_decode_area()
9454 p_j2k->m_specific_param.m_decoder.m_end_tile_y = (OPJ_UINT32)opj_int_ceildiv( in opj_j2k_set_decode_area()
9460 p_j2k->m_specific_param.m_decoder.m_discard_tiles = 1; in opj_j2k_set_decode_area()
9565 static OPJ_UINT32 opj_j2k_get_SPCod_SPCoc_size(opj_j2k_t *p_j2k, in opj_j2k_get_SPCod_SPCoc_size() argument
9574 assert(p_j2k != 00); in opj_j2k_get_SPCod_SPCoc_size()
9576 l_cp = &(p_j2k->m_cp); in opj_j2k_get_SPCod_SPCoc_size()
9582 assert(p_comp_no < p_j2k->m_private_image->numcomps); in opj_j2k_get_SPCod_SPCoc_size()
9591 static OPJ_BOOL opj_j2k_compare_SPCod_SPCoc(opj_j2k_t *p_j2k, in opj_j2k_compare_SPCod_SPCoc() argument
9601 assert(p_j2k != 00); in opj_j2k_compare_SPCod_SPCoc()
9603 l_cp = &(p_j2k->m_cp); in opj_j2k_compare_SPCod_SPCoc()
9638 static OPJ_BOOL opj_j2k_write_SPCod_SPCoc(opj_j2k_t *p_j2k, in opj_j2k_write_SPCod_SPCoc() argument
9651 assert(p_j2k != 00); in opj_j2k_write_SPCod_SPCoc()
9656 l_cp = &(p_j2k->m_cp); in opj_j2k_write_SPCod_SPCoc()
9662 assert(p_comp_no < (p_j2k->m_private_image->numcomps)); in opj_j2k_write_SPCod_SPCoc()
9707 static OPJ_BOOL opj_j2k_read_SPCod_SPCoc(opj_j2k_t *p_j2k, in opj_j2k_read_SPCod_SPCoc() argument
9720 assert(p_j2k != 00); in opj_j2k_read_SPCod_SPCoc()
9724 l_cp = &(p_j2k->m_cp); in opj_j2k_read_SPCod_SPCoc()
9725 l_tcp = (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH) ? in opj_j2k_read_SPCod_SPCoc()
9726 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_SPCod_SPCoc()
9727 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_SPCod_SPCoc()
9730 if (compno >= p_j2k->m_private_image->numcomps) { in opj_j2k_read_SPCod_SPCoc()
9734 assert(compno < p_j2k->m_private_image->numcomps); in opj_j2k_read_SPCod_SPCoc()
9763 p_j2k->m_specific_param.m_decoder.m_state |= in opj_j2k_read_SPCod_SPCoc()
9827 if (p_j2k->cstr_info && compno == 0) { in opj_j2k_read_SPCod_SPCoc()
9830 p_j2k->cstr_info->tile[p_j2k->m_current_tile_number].tccp_info[compno].cblkh = in opj_j2k_read_SPCod_SPCoc()
9832 p_j2k->cstr_info->tile[p_j2k->m_current_tile_number].tccp_info[compno].cblkw = in opj_j2k_read_SPCod_SPCoc()
9834 p_j2k->cstr_info->tile[p_j2k->m_current_tile_number].tccp_info[compno].numresolutions in opj_j2k_read_SPCod_SPCoc()
9836 p_j2k->cstr_info->tile[p_j2k->m_current_tile_number].tccp_info[compno].cblksty = in opj_j2k_read_SPCod_SPCoc()
9838 p_j2k->cstr_info->tile[p_j2k->m_current_tile_number].tccp_info[compno].qmfbid = in opj_j2k_read_SPCod_SPCoc()
9841 memcpy(p_j2k->cstr_info->tile[p_j2k->m_current_tile_number].pdx, l_tccp->prcw, in opj_j2k_read_SPCod_SPCoc()
9843 memcpy(p_j2k->cstr_info->tile[p_j2k->m_current_tile_number].pdy, l_tccp->prch, in opj_j2k_read_SPCod_SPCoc()
9852 static void opj_j2k_copy_tile_component_parameters(opj_j2k_t *p_j2k) in opj_j2k_copy_tile_component_parameters() argument
9862 assert(p_j2k != 00); in opj_j2k_copy_tile_component_parameters()
9864 l_cp = &(p_j2k->m_cp); in opj_j2k_copy_tile_component_parameters()
9865 l_tcp = (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH) in opj_j2k_copy_tile_component_parameters()
9867 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_copy_tile_component_parameters()
9868 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_copy_tile_component_parameters()
9874 for (i = 1; i < p_j2k->m_private_image->numcomps; ++i) { in opj_j2k_copy_tile_component_parameters()
9886 static OPJ_UINT32 opj_j2k_get_SQcd_SQcc_size(opj_j2k_t *p_j2k, in opj_j2k_get_SQcd_SQcc_size() argument
9897 assert(p_j2k != 00); in opj_j2k_get_SQcd_SQcc_size()
9899 l_cp = &(p_j2k->m_cp); in opj_j2k_get_SQcd_SQcc_size()
9905 assert(p_comp_no < p_j2k->m_private_image->numcomps); in opj_j2k_get_SQcd_SQcc_size()
9917 static OPJ_BOOL opj_j2k_compare_SQcd_SQcc(opj_j2k_t *p_j2k, in opj_j2k_compare_SQcd_SQcc() argument
9927 assert(p_j2k != 00); in opj_j2k_compare_SQcd_SQcc()
9929 l_cp = &(p_j2k->m_cp); in opj_j2k_compare_SQcd_SQcc()
9965 static OPJ_BOOL opj_j2k_write_SQcd_SQcc(opj_j2k_t *p_j2k, in opj_j2k_write_SQcd_SQcc() argument
9981 assert(p_j2k != 00); in opj_j2k_write_SQcd_SQcc()
9986 l_cp = &(p_j2k->m_cp); in opj_j2k_write_SQcd_SQcc()
9992 assert(p_comp_no < p_j2k->m_private_image->numcomps); in opj_j2k_write_SQcd_SQcc()
10040 static OPJ_BOOL opj_j2k_read_SQcd_SQcc(opj_j2k_t *p_j2k, in opj_j2k_read_SQcd_SQcc() argument
10056 assert(p_j2k != 00); in opj_j2k_read_SQcd_SQcc()
10060 l_cp = &(p_j2k->m_cp); in opj_j2k_read_SQcd_SQcc()
10062 l_tcp = (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH) in opj_j2k_read_SQcd_SQcc()
10064 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_read_SQcd_SQcc()
10065 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_read_SQcd_SQcc()
10068 if (p_comp_no >= p_j2k->m_private_image->numcomps) { in opj_j2k_read_SQcd_SQcc()
10161 static void opj_j2k_copy_tile_quantization_parameters(opj_j2k_t *p_j2k) in opj_j2k_copy_tile_quantization_parameters() argument
10171 assert(p_j2k != 00); in opj_j2k_copy_tile_quantization_parameters()
10173 l_cp = &(p_j2k->m_cp); in opj_j2k_copy_tile_quantization_parameters()
10174 l_tcp = p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_TPH ? in opj_j2k_copy_tile_quantization_parameters()
10175 &l_cp->tcps[p_j2k->m_current_tile_number] : in opj_j2k_copy_tile_quantization_parameters()
10176 p_j2k->m_specific_param.m_decoder.m_default_tcp; in opj_j2k_copy_tile_quantization_parameters()
10182 for (i = 1; i < p_j2k->m_private_image->numcomps; ++i) { in opj_j2k_copy_tile_quantization_parameters()
10243 void j2k_dump(opj_j2k_t* p_j2k, OPJ_INT32 flag, FILE* out_stream) in j2k_dump() argument
10253 if (p_j2k->m_private_image) { in j2k_dump()
10254 j2k_dump_image_header(p_j2k->m_private_image, 0, out_stream); in j2k_dump()
10260 if (p_j2k->m_private_image) { in j2k_dump()
10261 opj_j2k_dump_MH_info(p_j2k, out_stream); in j2k_dump()
10266 OPJ_UINT32 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; in j2k_dump()
10268 opj_tcp_t * l_tcp = p_j2k->m_cp.tcps; in j2k_dump()
10269 if (p_j2k->m_private_image) { in j2k_dump()
10271 opj_j2k_dump_tile_info(l_tcp, (OPJ_INT32)p_j2k->m_private_image->numcomps, in j2k_dump()
10285 opj_j2k_dump_MH_index(p_j2k, out_stream); in j2k_dump()
10295 static void opj_j2k_dump_MH_index(opj_j2k_t* p_j2k, FILE* out_stream) in opj_j2k_dump_MH_index() argument
10297 opj_codestream_index_t* cstr_index = p_j2k->cstr_index; in opj_j2k_dump_MH_index()
10366 static void opj_j2k_dump_MH_info(opj_j2k_t* p_j2k, FILE* out_stream) in opj_j2k_dump_MH_info() argument
10371 fprintf(out_stream, "\t tx0=%d, ty0=%d\n", p_j2k->m_cp.tx0, p_j2k->m_cp.ty0); in opj_j2k_dump_MH_info()
10372 fprintf(out_stream, "\t tdx=%d, tdy=%d\n", p_j2k->m_cp.tdx, p_j2k->m_cp.tdy); in opj_j2k_dump_MH_info()
10373 fprintf(out_stream, "\t tw=%d, th=%d\n", p_j2k->m_cp.tw, p_j2k->m_cp.th); in opj_j2k_dump_MH_info()
10374 opj_j2k_dump_tile_info(p_j2k->m_specific_param.m_decoder.m_default_tcp, in opj_j2k_dump_MH_info()
10375 (OPJ_INT32)p_j2k->m_private_image->numcomps, out_stream); in opj_j2k_dump_MH_info()
10434 opj_codestream_info_v2_t* j2k_get_cstr_info(opj_j2k_t* p_j2k) in j2k_get_cstr_info() argument
10437 OPJ_UINT32 numcomps = p_j2k->m_private_image->numcomps; in j2k_get_cstr_info()
10445 cstr_info->nbcomps = p_j2k->m_private_image->numcomps; in j2k_get_cstr_info()
10447 cstr_info->tx0 = p_j2k->m_cp.tx0; in j2k_get_cstr_info()
10448 cstr_info->ty0 = p_j2k->m_cp.ty0; in j2k_get_cstr_info()
10449 cstr_info->tdx = p_j2k->m_cp.tdx; in j2k_get_cstr_info()
10450 cstr_info->tdy = p_j2k->m_cp.tdy; in j2k_get_cstr_info()
10451 cstr_info->tw = p_j2k->m_cp.tw; in j2k_get_cstr_info()
10452 cstr_info->th = p_j2k->m_cp.th; in j2k_get_cstr_info()
10456 l_default_tile = p_j2k->m_specific_param.m_decoder.m_default_tcp; in j2k_get_cstr_info()
10510 opj_codestream_index_t* j2k_get_cstr_index(opj_j2k_t* p_j2k) in j2k_get_cstr_index() argument
10518 l_cstr_index->main_head_start = p_j2k->cstr_index->main_head_start; in j2k_get_cstr_index()
10519 l_cstr_index->main_head_end = p_j2k->cstr_index->main_head_end; in j2k_get_cstr_index()
10520 l_cstr_index->codestream_size = p_j2k->cstr_index->codestream_size; in j2k_get_cstr_index()
10522 l_cstr_index->marknum = p_j2k->cstr_index->marknum; in j2k_get_cstr_index()
10530 if (p_j2k->cstr_index->marker) { in j2k_get_cstr_index()
10531 memcpy(l_cstr_index->marker, p_j2k->cstr_index->marker, in j2k_get_cstr_index()
10538 l_cstr_index->nb_of_tiles = p_j2k->cstr_index->nb_of_tiles; in j2k_get_cstr_index()
10547 if (!p_j2k->cstr_index->tile_index) { in j2k_get_cstr_index()
10556 p_j2k->cstr_index->tile_index[it_tile].marknum; in j2k_get_cstr_index()
10575 if (p_j2k->cstr_index->tile_index[it_tile].marker) in j2k_get_cstr_index()
10577 p_j2k->cstr_index->tile_index[it_tile].marker, in j2k_get_cstr_index()
10586 p_j2k->cstr_index->tile_index[it_tile].nb_tps; in j2k_get_cstr_index()
10606 if (p_j2k->cstr_index->tile_index[it_tile].tp_index) { in j2k_get_cstr_index()
10608 p_j2k->cstr_index->tile_index[it_tile].tp_index, in j2k_get_cstr_index()
10625 static OPJ_BOOL opj_j2k_allocate_tile_element_cstr_index(opj_j2k_t *p_j2k) in opj_j2k_allocate_tile_element_cstr_index() argument
10629 p_j2k->cstr_index->nb_of_tiles = p_j2k->m_cp.tw * p_j2k->m_cp.th; in opj_j2k_allocate_tile_element_cstr_index()
10630 p_j2k->cstr_index->tile_index = (opj_tile_index_t*)opj_calloc( in opj_j2k_allocate_tile_element_cstr_index()
10631 p_j2k->cstr_index->nb_of_tiles, sizeof(opj_tile_index_t)); in opj_j2k_allocate_tile_element_cstr_index()
10632 if (!p_j2k->cstr_index->tile_index) { in opj_j2k_allocate_tile_element_cstr_index()
10636 for (it_tile = 0; it_tile < p_j2k->cstr_index->nb_of_tiles; it_tile++) { in opj_j2k_allocate_tile_element_cstr_index()
10637 p_j2k->cstr_index->tile_index[it_tile].maxmarknum = 100; in opj_j2k_allocate_tile_element_cstr_index()
10638 p_j2k->cstr_index->tile_index[it_tile].marknum = 0; in opj_j2k_allocate_tile_element_cstr_index()
10639 p_j2k->cstr_index->tile_index[it_tile].marker = (opj_marker_info_t*) in opj_j2k_allocate_tile_element_cstr_index()
10640 opj_calloc(p_j2k->cstr_index->tile_index[it_tile].maxmarknum, in opj_j2k_allocate_tile_element_cstr_index()
10642 if (!p_j2k->cstr_index->tile_index[it_tile].marker) { in opj_j2k_allocate_tile_element_cstr_index()
10650 static OPJ_BOOL opj_j2k_decode_tiles(opj_j2k_t *p_j2k, in opj_j2k_decode_tiles() argument
10662 if (p_j2k->m_cp.tw == 1 && p_j2k->m_cp.th == 1 && in opj_j2k_decode_tiles()
10663 p_j2k->m_cp.tx0 == 0 && p_j2k->m_cp.ty0 == 0 && in opj_j2k_decode_tiles()
10664 p_j2k->m_output_image->x0 == 0 && in opj_j2k_decode_tiles()
10665 p_j2k->m_output_image->y0 == 0 && in opj_j2k_decode_tiles()
10666 p_j2k->m_output_image->x1 == p_j2k->m_cp.tdx && in opj_j2k_decode_tiles()
10667 p_j2k->m_output_image->y1 == p_j2k->m_cp.tdy) { in opj_j2k_decode_tiles()
10669 if (! opj_j2k_read_tile_header(p_j2k, in opj_j2k_decode_tiles()
10681 if (! opj_j2k_decode_tile(p_j2k, l_current_tile_no, NULL, 0, in opj_j2k_decode_tiles()
10688 for (i = 0; i < p_j2k->m_output_image->numcomps; i++) { in opj_j2k_decode_tiles()
10689 opj_image_data_free(p_j2k->m_output_image->comps[i].data); in opj_j2k_decode_tiles()
10690 p_j2k->m_output_image->comps[i].data = in opj_j2k_decode_tiles()
10691 p_j2k->m_tcd->tcd_image->tiles->comps[i].data; in opj_j2k_decode_tiles()
10692 p_j2k->m_output_image->comps[i].resno_decoded = in opj_j2k_decode_tiles()
10693 p_j2k->m_tcd->image->comps[i].resno_decoded; in opj_j2k_decode_tiles()
10694 p_j2k->m_tcd->tcd_image->tiles->comps[i].data = NULL; in opj_j2k_decode_tiles()
10701 if (p_j2k->m_cp.tw == 1 && p_j2k->m_cp.th == 1 && in opj_j2k_decode_tiles()
10702 p_j2k->m_cp.tcps[0].m_data != NULL) { in opj_j2k_decode_tiles()
10704 p_j2k->m_current_tile_number = 0; in opj_j2k_decode_tiles()
10705 p_j2k->m_specific_param.m_decoder.m_state |= J2K_STATE_DATA; in opj_j2k_decode_tiles()
10707 if (! opj_j2k_read_tile_header(p_j2k, in opj_j2k_decode_tiles()
10724 if (! opj_j2k_decode_tile(p_j2k, l_current_tile_no, NULL, 0, in opj_j2k_decode_tiles()
10727 l_current_tile_no + 1, p_j2k->m_cp.th * p_j2k->m_cp.tw); in opj_j2k_decode_tiles()
10732 l_current_tile_no + 1, p_j2k->m_cp.th * p_j2k->m_cp.tw); in opj_j2k_decode_tiles()
10734 if (! opj_j2k_update_image_data(p_j2k->m_tcd, in opj_j2k_decode_tiles()
10735 p_j2k->m_output_image)) { in opj_j2k_decode_tiles()
10739 if (p_j2k->m_cp.tw == 1 && p_j2k->m_cp.th == 1 && in opj_j2k_decode_tiles()
10740 !(p_j2k->m_output_image->x0 == p_j2k->m_private_image->x0 && in opj_j2k_decode_tiles()
10741 p_j2k->m_output_image->y0 == p_j2k->m_private_image->y0 && in opj_j2k_decode_tiles()
10742 p_j2k->m_output_image->x1 == p_j2k->m_private_image->x1 && in opj_j2k_decode_tiles()
10743 p_j2k->m_output_image->y1 == p_j2k->m_private_image->y1)) { in opj_j2k_decode_tiles()
10746 opj_j2k_tcp_data_destroy(&p_j2k->m_cp.tcps[l_current_tile_no]); in opj_j2k_decode_tiles()
10753 && p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_NEOC) { in opj_j2k_decode_tiles()
10756 if (++nr_tiles == p_j2k->m_cp.th * p_j2k->m_cp.tw) { in opj_j2k_decode_tiles()
10767 static OPJ_BOOL opj_j2k_setup_decoding(opj_j2k_t *p_j2k, in opj_j2k_setup_decoding() argument
10771 assert(p_j2k != 00); in opj_j2k_setup_decoding()
10774 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_decoding()
10786 static OPJ_BOOL opj_j2k_decode_one_tile(opj_j2k_t *p_j2k, in opj_j2k_decode_one_tile() argument
10799 if (!p_j2k->cstr_index->tile_index) { in opj_j2k_decode_one_tile()
10800 if (!opj_j2k_allocate_tile_element_cstr_index(p_j2k)) { in opj_j2k_decode_one_tile()
10806 p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec; in opj_j2k_decode_one_tile()
10807 if (p_j2k->cstr_index->tile_index) in opj_j2k_decode_one_tile()
10808 if (p_j2k->cstr_index->tile_index->tp_index) { in opj_j2k_decode_one_tile()
10809 if (! p_j2k->cstr_index->tile_index[l_tile_no_to_dec].nb_tps) { in opj_j2k_decode_one_tile()
10813p_j2k->m_specific_param.m_decoder.m_last_sot_read_pos + 2, p_manager))) { in opj_j2k_decode_one_tile()
10819p_j2k->cstr_index->tile_index[l_tile_no_to_dec].tp_index[0].start_pos + 2, in opj_j2k_decode_one_tile()
10826 if (p_j2k->m_specific_param.m_decoder.m_state == J2K_STATE_EOC) { in opj_j2k_decode_one_tile()
10827 p_j2k->m_specific_param.m_decoder.m_state = J2K_STATE_TPHSOT; in opj_j2k_decode_one_tile()
10835 l_nb_tiles = p_j2k->m_cp.tw * p_j2k->m_cp.th; in opj_j2k_decode_one_tile()
10837 p_j2k->m_cp.tcps[i].m_current_tile_part_number = -1; in opj_j2k_decode_one_tile()
10841 if (! opj_j2k_read_tile_header(p_j2k, in opj_j2k_decode_one_tile()
10857 if (! opj_j2k_decode_tile(p_j2k, l_current_tile_no, NULL, 0, in opj_j2k_decode_one_tile()
10862 l_current_tile_no + 1, p_j2k->m_cp.th * p_j2k->m_cp.tw); in opj_j2k_decode_one_tile()
10864 if (! opj_j2k_update_image_data(p_j2k->m_tcd, in opj_j2k_decode_one_tile()
10865 p_j2k->m_output_image)) { in opj_j2k_decode_one_tile()
10868 opj_j2k_tcp_data_destroy(&p_j2k->m_cp.tcps[l_current_tile_no]); in opj_j2k_decode_one_tile()
10875 if (!(opj_stream_read_seek(p_stream, p_j2k->cstr_index->main_head_end + 2, in opj_j2k_decode_one_tile()
10895 static OPJ_BOOL opj_j2k_setup_decoding_tile(opj_j2k_t *p_j2k, in opj_j2k_setup_decoding_tile() argument
10899 assert(p_j2k != 00); in opj_j2k_setup_decoding_tile()
10902 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_decoding_tile()
10911 static OPJ_BOOL opj_j2k_move_data_from_codec_to_output_image(opj_j2k_t * p_j2k, in opj_j2k_move_data_from_codec_to_output_image() argument
10917 if (p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode > 0) { in opj_j2k_move_data_from_codec_to_output_image()
10920 p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode * in opj_j2k_move_data_from_codec_to_output_image()
10923 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_move_data_from_codec_to_output_image()
10924 p_j2k->m_private_image = NULL; in opj_j2k_move_data_from_codec_to_output_image()
10932 compno < p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode; compno++) { in opj_j2k_move_data_from_codec_to_output_image()
10934 p_j2k->m_specific_param.m_decoder.m_comps_indices_to_decode[compno]; in opj_j2k_move_data_from_codec_to_output_image()
10936 &(p_j2k->m_output_image->comps[src_compno]), in opj_j2k_move_data_from_codec_to_output_image()
10939 p_j2k->m_output_image->comps[src_compno].resno_decoded; in opj_j2k_move_data_from_codec_to_output_image()
10940 newcomps[compno].data = p_j2k->m_output_image->comps[src_compno].data; in opj_j2k_move_data_from_codec_to_output_image()
10941 p_j2k->m_output_image->comps[src_compno].data = NULL; in opj_j2k_move_data_from_codec_to_output_image()
10944 assert(p_j2k->m_output_image->comps[compno].data == NULL); in opj_j2k_move_data_from_codec_to_output_image()
10945 opj_image_data_free(p_j2k->m_output_image->comps[compno].data); in opj_j2k_move_data_from_codec_to_output_image()
10946 p_j2k->m_output_image->comps[compno].data = NULL; in opj_j2k_move_data_from_codec_to_output_image()
10948 p_image->numcomps = p_j2k->m_specific_param.m_decoder.m_numcomps_to_decode; in opj_j2k_move_data_from_codec_to_output_image()
10954 p_j2k->m_output_image->comps[compno].resno_decoded; in opj_j2k_move_data_from_codec_to_output_image()
10956 p_image->comps[compno].data = p_j2k->m_output_image->comps[compno].data; in opj_j2k_move_data_from_codec_to_output_image()
10965 p_j2k->m_output_image->comps[compno].data = NULL; in opj_j2k_move_data_from_codec_to_output_image()
10971 OPJ_BOOL opj_j2k_decode(opj_j2k_t * p_j2k, in opj_j2k_decode() argument
10984 if (p_j2k->m_cp.m_specific_param.m_dec.m_reduce > 0 && in opj_j2k_decode()
10985 p_j2k->m_private_image != NULL && in opj_j2k_decode()
10986 p_j2k->m_private_image->numcomps > 0 && in opj_j2k_decode()
10987 p_j2k->m_private_image->comps[0].factor == in opj_j2k_decode()
10988 p_j2k->m_cp.m_specific_param.m_dec.m_reduce && in opj_j2k_decode()
10998 p_image->comps[it_comp].factor = p_j2k->m_cp.m_specific_param.m_dec.m_reduce; in opj_j2k_decode()
11005 if (p_j2k->m_output_image == NULL) { in opj_j2k_decode()
11006 p_j2k->m_output_image = opj_image_create0(); in opj_j2k_decode()
11007 if (!(p_j2k->m_output_image)) { in opj_j2k_decode()
11011 opj_copy_image_header(p_image, p_j2k->m_output_image); in opj_j2k_decode()
11014 if (!opj_j2k_setup_decoding(p_j2k, p_manager)) { in opj_j2k_decode()
11019 if (! opj_j2k_exec(p_j2k, p_j2k->m_procedure_list, p_stream, p_manager)) { in opj_j2k_decode()
11020 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_decode()
11021 p_j2k->m_private_image = NULL; in opj_j2k_decode()
11026 return opj_j2k_move_data_from_codec_to_output_image(p_j2k, p_image); in opj_j2k_decode()
11029 OPJ_BOOL opj_j2k_get_tile(opj_j2k_t *p_j2k, in opj_j2k_get_tile() argument
11044 if (p_image->numcomps < p_j2k->m_private_image->numcomps) { in opj_j2k_get_tile()
11050 if (/*(tile_index < 0) &&*/ (tile_index >= p_j2k->m_cp.tw * p_j2k->m_cp.th)) { in opj_j2k_get_tile()
11053 (p_j2k->m_cp.tw * p_j2k->m_cp.th) - 1); in opj_j2k_get_tile()
11058 l_tile_x = tile_index % p_j2k->m_cp.tw; in opj_j2k_get_tile()
11059 l_tile_y = tile_index / p_j2k->m_cp.tw; in opj_j2k_get_tile()
11061 p_image->x0 = l_tile_x * p_j2k->m_cp.tdx + p_j2k->m_cp.tx0; in opj_j2k_get_tile()
11062 if (p_image->x0 < p_j2k->m_private_image->x0) { in opj_j2k_get_tile()
11063 p_image->x0 = p_j2k->m_private_image->x0; in opj_j2k_get_tile()
11065 p_image->x1 = (l_tile_x + 1) * p_j2k->m_cp.tdx + p_j2k->m_cp.tx0; in opj_j2k_get_tile()
11066 if (p_image->x1 > p_j2k->m_private_image->x1) { in opj_j2k_get_tile()
11067 p_image->x1 = p_j2k->m_private_image->x1; in opj_j2k_get_tile()
11070 p_image->y0 = l_tile_y * p_j2k->m_cp.tdy + p_j2k->m_cp.ty0; in opj_j2k_get_tile()
11071 if (p_image->y0 < p_j2k->m_private_image->y0) { in opj_j2k_get_tile()
11072 p_image->y0 = p_j2k->m_private_image->y0; in opj_j2k_get_tile()
11074 p_image->y1 = (l_tile_y + 1) * p_j2k->m_cp.tdy + p_j2k->m_cp.ty0; in opj_j2k_get_tile()
11075 if (p_image->y1 > p_j2k->m_private_image->y1) { in opj_j2k_get_tile()
11076 p_image->y1 = p_j2k->m_private_image->y1; in opj_j2k_get_tile()
11080 for (compno = 0; compno < p_j2k->m_private_image->numcomps; ++compno) { in opj_j2k_get_tile()
11083 l_img_comp->factor = p_j2k->m_private_image->comps[compno].factor; in opj_j2k_get_tile()
11100 if (p_image->numcomps > p_j2k->m_private_image->numcomps) { in opj_j2k_get_tile()
11104 for (compno = p_j2k->m_private_image->numcomps; compno < p_image->numcomps; in opj_j2k_get_tile()
11109 p_image->numcomps = p_j2k->m_private_image->numcomps; in opj_j2k_get_tile()
11113 if (p_j2k->m_output_image) { in opj_j2k_get_tile()
11114 opj_image_destroy(p_j2k->m_output_image); in opj_j2k_get_tile()
11118 p_j2k->m_output_image = opj_image_create0(); in opj_j2k_get_tile()
11119 if (!(p_j2k->m_output_image)) { in opj_j2k_get_tile()
11122 opj_copy_image_header(p_image, p_j2k->m_output_image); in opj_j2k_get_tile()
11124 p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec = (OPJ_INT32)tile_index; in opj_j2k_get_tile()
11127 if (!opj_j2k_setup_decoding_tile(p_j2k, p_manager)) { in opj_j2k_get_tile()
11132 if (! opj_j2k_exec(p_j2k, p_j2k->m_procedure_list, p_stream, p_manager)) { in opj_j2k_get_tile()
11133 opj_image_destroy(p_j2k->m_private_image); in opj_j2k_get_tile()
11134 p_j2k->m_private_image = NULL; in opj_j2k_get_tile()
11139 return opj_j2k_move_data_from_codec_to_output_image(p_j2k, p_image); in opj_j2k_get_tile()
11142 OPJ_BOOL opj_j2k_set_decoded_resolution_factor(opj_j2k_t *p_j2k, in opj_j2k_set_decoded_resolution_factor() argument
11148 p_j2k->m_cp.m_specific_param.m_dec.m_reduce = res_factor; in opj_j2k_set_decoded_resolution_factor()
11150 if (p_j2k->m_private_image) { in opj_j2k_set_decoded_resolution_factor()
11151 if (p_j2k->m_private_image->comps) { in opj_j2k_set_decoded_resolution_factor()
11152 if (p_j2k->m_specific_param.m_decoder.m_default_tcp) { in opj_j2k_set_decoded_resolution_factor()
11153 if (p_j2k->m_specific_param.m_decoder.m_default_tcp->tccps) { in opj_j2k_set_decoded_resolution_factor()
11154 for (it_comp = 0 ; it_comp < p_j2k->m_private_image->numcomps; it_comp++) { in opj_j2k_set_decoded_resolution_factor()
11156p_j2k->m_specific_param.m_decoder.m_default_tcp->tccps[it_comp].numresolutions; in opj_j2k_set_decoded_resolution_factor()
11162 p_j2k->m_private_image->comps[it_comp].factor = res_factor; in opj_j2k_set_decoded_resolution_factor()
11173 OPJ_BOOL opj_j2k_encode(opj_j2k_t * p_j2k, in opj_j2k_encode() argument
11185 assert(p_j2k != 00); in opj_j2k_encode()
11189 p_tcd = p_j2k->m_tcd; in opj_j2k_encode()
11191 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; in opj_j2k_encode()
11195 for (j = 0; j < p_j2k->m_tcd->image->numcomps; ++j) { in opj_j2k_encode()
11205 if (! opj_j2k_pre_write_tile(p_j2k, i, p_stream, p_manager)) { in opj_j2k_encode()
11214 for (j = 0; j < p_j2k->m_tcd->image->numcomps; ++j) { in opj_j2k_encode()
11230 l_current_tile_size = opj_tcd_get_encoded_tile_size(p_j2k->m_tcd); in opj_j2k_encode()
11255 opj_j2k_get_tile_data(p_j2k->m_tcd, l_current_data); in opj_j2k_encode()
11258 if (! opj_tcd_copy_tile_data(p_j2k->m_tcd, l_current_data, in opj_j2k_encode()
11267 if (! opj_j2k_post_write_tile(p_j2k, p_stream, p_manager)) { in opj_j2k_encode()
11281 OPJ_BOOL opj_j2k_end_compress(opj_j2k_t *p_j2k, in opj_j2k_end_compress() argument
11286 if (! opj_j2k_setup_end_compress(p_j2k, p_manager)) { in opj_j2k_end_compress()
11290 if (! opj_j2k_exec(p_j2k, p_j2k->m_procedure_list, p_stream, p_manager)) { in opj_j2k_end_compress()
11297 OPJ_BOOL opj_j2k_start_compress(opj_j2k_t *p_j2k, in opj_j2k_start_compress() argument
11303 assert(p_j2k != 00); in opj_j2k_start_compress()
11307 p_j2k->m_private_image = opj_image_create0(); in opj_j2k_start_compress()
11308 if (! p_j2k->m_private_image) { in opj_j2k_start_compress()
11312 opj_copy_image_header(p_image, p_j2k->m_private_image); in opj_j2k_start_compress()
11319 p_j2k->m_private_image->comps[it_comp].data = p_image->comps[it_comp].data; in opj_j2k_start_compress()
11327 if (! opj_j2k_setup_encoding_validation(p_j2k, p_manager)) { in opj_j2k_start_compress()
11332 if (! opj_j2k_exec(p_j2k, p_j2k->m_validation_list, p_stream, p_manager)) { in opj_j2k_start_compress()
11337 if (! opj_j2k_setup_header_writing(p_j2k, p_manager)) { in opj_j2k_start_compress()
11342 if (! opj_j2k_exec(p_j2k, p_j2k->m_procedure_list, p_stream, p_manager)) { in opj_j2k_start_compress()
11349 static OPJ_BOOL opj_j2k_pre_write_tile(opj_j2k_t * p_j2k, in opj_j2k_pre_write_tile() argument
11355 if (p_tile_index != p_j2k->m_current_tile_number) { in opj_j2k_pre_write_tile()
11361 p_j2k->m_current_tile_number + 1, p_j2k->m_cp.tw * p_j2k->m_cp.th); in opj_j2k_pre_write_tile()
11363 p_j2k->m_specific_param.m_encoder.m_current_tile_part_number = 0; in opj_j2k_pre_write_tile()
11364 p_j2k->m_tcd->cur_totnum_tp = p_j2k->m_cp.tcps[p_tile_index].m_nb_tile_parts; in opj_j2k_pre_write_tile()
11365 p_j2k->m_specific_param.m_encoder.m_current_poc_tile_part_number = 0; in opj_j2k_pre_write_tile()
11368 if (! opj_tcd_init_encode_tile(p_j2k->m_tcd, p_j2k->m_current_tile_number, in opj_j2k_pre_write_tile()
11499 static OPJ_BOOL opj_j2k_post_write_tile(opj_j2k_t * p_j2k, in opj_j2k_post_write_tile() argument
11509 assert(p_j2k->m_specific_param.m_encoder.m_encoded_tile_data); in opj_j2k_post_write_tile()
11511 l_tile_size = p_j2k->m_specific_param.m_encoder.m_encoded_tile_size; in opj_j2k_post_write_tile()
11513 l_current_data = p_j2k->m_specific_param.m_encoder.m_encoded_tile_data; in opj_j2k_post_write_tile()
11516 if (! opj_j2k_write_first_tile_part(p_j2k, l_current_data, &l_nb_bytes_written, in opj_j2k_post_write_tile()
11524 if (! opj_j2k_write_all_tile_parts(p_j2k, l_current_data, &l_nb_bytes_written, in opj_j2k_post_write_tile()
11533 p_j2k->m_specific_param.m_encoder.m_encoded_tile_data, in opj_j2k_post_write_tile()
11538 ++p_j2k->m_current_tile_number; in opj_j2k_post_write_tile()
11543 static OPJ_BOOL opj_j2k_setup_end_compress(opj_j2k_t *p_j2k, in opj_j2k_setup_end_compress() argument
11547 assert(p_j2k != 00); in opj_j2k_setup_end_compress()
11551 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_end_compress()
11556 if (OPJ_IS_CINEMA(p_j2k->m_cp.rsiz)) { in opj_j2k_setup_end_compress()
11557 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_end_compress()
11563 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_end_compress()
11567 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_end_compress()
11571 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_end_compress()
11578 static OPJ_BOOL opj_j2k_setup_encoding_validation(opj_j2k_t *p_j2k, in opj_j2k_setup_encoding_validation() argument
11582 assert(p_j2k != 00); in opj_j2k_setup_encoding_validation()
11585 if (! opj_procedure_list_add_procedure(p_j2k->m_validation_list, in opj_j2k_setup_encoding_validation()
11589 if (! opj_procedure_list_add_procedure(p_j2k->m_validation_list, in opj_j2k_setup_encoding_validation()
11595 if (! opj_procedure_list_add_procedure(p_j2k->m_validation_list, in opj_j2k_setup_encoding_validation()
11603 static OPJ_BOOL opj_j2k_setup_header_writing(opj_j2k_t *p_j2k, in opj_j2k_setup_header_writing() argument
11607 assert(p_j2k != 00); in opj_j2k_setup_header_writing()
11610 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11614 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11618 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11622 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11626 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11630 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11634 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11639 if (OPJ_IS_CINEMA(p_j2k->m_cp.rsiz)) { in opj_j2k_setup_header_writing()
11640 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11645 if (p_j2k->m_cp.rsiz == OPJ_PROFILE_CINEMA_4K) { in opj_j2k_setup_header_writing()
11646 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11653 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11658 if (p_j2k->m_cp.comment != 00) { in opj_j2k_setup_header_writing()
11659 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11666 if (p_j2k->m_cp.rsiz & OPJ_EXTENSION_MCT) { in opj_j2k_setup_header_writing()
11667 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11674 if (p_j2k->cstr_index) { in opj_j2k_setup_header_writing()
11675 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11681 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11685 if (! opj_procedure_list_add_procedure(p_j2k->m_procedure_list, in opj_j2k_setup_header_writing()
11693 static OPJ_BOOL opj_j2k_write_first_tile_part(opj_j2k_t *p_j2k, in opj_j2k_write_first_tile_part() argument
11707 l_tcd = p_j2k->m_tcd; in opj_j2k_write_first_tile_part()
11708 l_cp = &(p_j2k->m_cp); in opj_j2k_write_first_tile_part()
11713 p_j2k->m_specific_param.m_encoder.m_current_poc_tile_part_number = 0; in opj_j2k_write_first_tile_part()
11720 if (! opj_j2k_write_sot(p_j2k, p_data, p_total_data_size, in opj_j2k_write_first_tile_part()
11732 for (compno = 1; compno < p_j2k->m_private_image->numcomps; compno++) { in opj_j2k_write_first_tile_part()
11734 opj_j2k_write_coc_in_memory(p_j2k, compno, p_data, &l_current_nb_bytes_written, in opj_j2k_write_first_tile_part()
11741 opj_j2k_write_qcc_in_memory(p_j2k, compno, p_data, &l_current_nb_bytes_written, in opj_j2k_write_first_tile_part()
11748 if (l_cp->tcps[p_j2k->m_current_tile_number].numpocs) { in opj_j2k_write_first_tile_part()
11750 opj_j2k_write_poc_in_memory(p_j2k, p_data, &l_current_nb_bytes_written, in opj_j2k_write_first_tile_part()
11759 if (! opj_j2k_write_sod(p_j2k, l_tcd, p_data, &l_current_nb_bytes_written, in opj_j2k_write_first_tile_part()
11772 opj_j2k_update_tlm(p_j2k, l_nb_bytes_written); in opj_j2k_write_first_tile_part()
11778 static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k, in opj_j2k_write_all_tile_parts() argument
11798 l_tcd = p_j2k->m_tcd; in opj_j2k_write_all_tile_parts()
11799 l_cp = &(p_j2k->m_cp); in opj_j2k_write_all_tile_parts()
11800 l_tcp = l_cp->tcps + p_j2k->m_current_tile_number; in opj_j2k_write_all_tile_parts()
11803 tot_num_tp = opj_j2k_get_num_tp(l_cp, 0, p_j2k->m_current_tile_number); in opj_j2k_write_all_tile_parts()
11806 ++p_j2k->m_specific_param.m_encoder.m_current_tile_part_number; in opj_j2k_write_all_tile_parts()
11808 p_j2k->m_specific_param.m_encoder.m_current_poc_tile_part_number = tilepartno; in opj_j2k_write_all_tile_parts()
11813 if (! opj_j2k_write_sot(p_j2k, p_data, in opj_j2k_write_all_tile_parts()
11827 if (! opj_j2k_write_sod(p_j2k, l_tcd, p_data, &l_current_nb_bytes_written, in opj_j2k_write_all_tile_parts()
11842 opj_j2k_update_tlm(p_j2k, l_part_tile_size); in opj_j2k_write_all_tile_parts()
11845 ++p_j2k->m_specific_param.m_encoder.m_current_tile_part_number; in opj_j2k_write_all_tile_parts()
11852 tot_num_tp = opj_j2k_get_num_tp(l_cp, pino, p_j2k->m_current_tile_number); in opj_j2k_write_all_tile_parts()
11854 p_j2k->m_specific_param.m_encoder.m_current_poc_tile_part_number = tilepartno; in opj_j2k_write_all_tile_parts()
11859 if (! opj_j2k_write_sot(p_j2k, p_data, in opj_j2k_write_all_tile_parts()
11873 if (! opj_j2k_write_sod(p_j2k, l_tcd, p_data, &l_current_nb_bytes_written, in opj_j2k_write_all_tile_parts()
11888 opj_j2k_update_tlm(p_j2k, l_part_tile_size); in opj_j2k_write_all_tile_parts()
11891 ++p_j2k->m_specific_param.m_encoder.m_current_tile_part_number; in opj_j2k_write_all_tile_parts()
11900 static OPJ_BOOL opj_j2k_write_updated_tlm(opj_j2k_t *p_j2k, in opj_j2k_write_updated_tlm() argument
11908 assert(p_j2k != 00); in opj_j2k_write_updated_tlm()
11912 l_tlm_size = 5 * p_j2k->m_specific_param.m_encoder.m_total_tile_parts; in opj_j2k_write_updated_tlm()
11913 l_tlm_position = 6 + p_j2k->m_specific_param.m_encoder.m_tlm_start; in opj_j2k_write_updated_tlm()
11921p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer, l_tlm_size, in opj_j2k_write_updated_tlm()
11933 static OPJ_BOOL opj_j2k_end_encoding(opj_j2k_t *p_j2k, in opj_j2k_end_encoding() argument
11938 assert(p_j2k != 00); in opj_j2k_end_encoding()
11945 opj_tcd_destroy(p_j2k->m_tcd); in opj_j2k_end_encoding()
11946 p_j2k->m_tcd = 00; in opj_j2k_end_encoding()
11948 if (p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer) { in opj_j2k_end_encoding()
11949 opj_free(p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer); in opj_j2k_end_encoding()
11950 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer = 0; in opj_j2k_end_encoding()
11951 p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_current = 0; in opj_j2k_end_encoding()
11954 if (p_j2k->m_specific_param.m_encoder.m_encoded_tile_data) { in opj_j2k_end_encoding()
11955 opj_free(p_j2k->m_specific_param.m_encoder.m_encoded_tile_data); in opj_j2k_end_encoding()
11956 p_j2k->m_specific_param.m_encoder.m_encoded_tile_data = 0; in opj_j2k_end_encoding()
11959 p_j2k->m_specific_param.m_encoder.m_encoded_tile_size = 0; in opj_j2k_end_encoding()
11967 static OPJ_BOOL opj_j2k_destroy_header_memory(opj_j2k_t * p_j2k, in opj_j2k_destroy_header_memory() argument
11973 assert(p_j2k != 00); in opj_j2k_destroy_header_memory()
11980 if (p_j2k->m_specific_param.m_encoder.m_header_tile_data) { in opj_j2k_destroy_header_memory()
11981 opj_free(p_j2k->m_specific_param.m_encoder.m_header_tile_data); in opj_j2k_destroy_header_memory()
11982 p_j2k->m_specific_param.m_encoder.m_header_tile_data = 0; in opj_j2k_destroy_header_memory()
11985 p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0; in opj_j2k_destroy_header_memory()
11990 static OPJ_BOOL opj_j2k_init_info(opj_j2k_t *p_j2k, in opj_j2k_init_info() argument
11997 assert(p_j2k != 00); in opj_j2k_init_info()
12043 return opj_j2k_calculate_tp(p_j2k, &(p_j2k->m_cp), in opj_j2k_init_info()
12044 … &p_j2k->m_specific_param.m_encoder.m_total_tile_parts, p_j2k->m_private_image, in opj_j2k_init_info()
12055 static OPJ_BOOL opj_j2k_create_tcd(opj_j2k_t *p_j2k, in opj_j2k_create_tcd() argument
12061 assert(p_j2k != 00); in opj_j2k_create_tcd()
12067 p_j2k->m_tcd = opj_tcd_create(OPJ_FALSE); in opj_j2k_create_tcd()
12069 if (! p_j2k->m_tcd) { in opj_j2k_create_tcd()
12074 if (!opj_tcd_init(p_j2k->m_tcd, p_j2k->m_private_image, &p_j2k->m_cp, in opj_j2k_create_tcd()
12075 p_j2k->m_tp)) { in opj_j2k_create_tcd()
12076 opj_tcd_destroy(p_j2k->m_tcd); in opj_j2k_create_tcd()
12077 p_j2k->m_tcd = 00; in opj_j2k_create_tcd()
12084 OPJ_BOOL opj_j2k_write_tile(opj_j2k_t * p_j2k, in opj_j2k_write_tile() argument
12091 if (! opj_j2k_pre_write_tile(p_j2k, p_tile_index, p_stream, p_manager)) { in opj_j2k_write_tile()
12098 for (j = 0; j < p_j2k->m_tcd->image->numcomps; ++j) { in opj_j2k_write_tile()
12099 opj_tcd_tilecomp_t* l_tilec = p_j2k->m_tcd->tcd_image->tiles->comps + j; in opj_j2k_write_tile()
12108 if (! opj_tcd_copy_tile_data(p_j2k->m_tcd, p_data, p_data_size)) { in opj_j2k_write_tile()
12113 if (! opj_j2k_post_write_tile(p_j2k, p_stream, p_manager)) { in opj_j2k_write_tile()