Add some more errno to debug 'failed to start J2K encoding'
[openjpeg.git] / src / lib / openjp2 / j2k.c
index 2846176c355ec62ece1d610d2c410a82faee6a2c..a08fc51849c590d21ee7b8e9b4a7886996498087 100644 (file)
@@ -1878,6 +1878,7 @@ static OPJ_BOOL opj_j2k_write_soc(opj_j2k_t *p_j2k,
     opj_write_bytes(l_start_stream, J2K_MS_SOC, 2);
 
     if (opj_stream_write_data(p_stream, l_start_stream, 2, p_manager) != 2) {
+           errno = 0x61515;
         return OPJ_FALSE;
     }
 
@@ -2033,6 +2034,7 @@ static OPJ_BOOL opj_j2k_write_siz(opj_j2k_t *p_j2k,
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_size_len,
                               p_manager) != l_size_len) {
+           errno = 0x61516;
         return OPJ_FALSE;
     }
 
@@ -2503,6 +2505,7 @@ static OPJ_BOOL opj_j2k_write_com(opj_j2k_t *p_j2k,
             p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0;
             opj_event_msg(p_manager, EVT_ERROR,
                           "Not enough memory to write the COM marker\n");
+           errno = 0x61524;
             return OPJ_FALSE;
         }
         p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data;
@@ -2526,6 +2529,7 @@ static OPJ_BOOL opj_j2k_write_com(opj_j2k_t *p_j2k,
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_total_com_size,
                               p_manager) != l_total_com_size) {
+           errno = 0x61525;
         return OPJ_FALSE;
     }
 
@@ -2617,17 +2621,20 @@ static OPJ_BOOL opj_j2k_write_cod(opj_j2k_t *p_j2k,
     if (! opj_j2k_write_SPCod_SPCoc(p_j2k, p_j2k->m_current_tile_number, 0,
                                     l_current_data, &l_remaining_size, p_manager)) {
         opj_event_msg(p_manager, EVT_ERROR, "Error writing COD marker\n");
+       errno = 0x61517;
         return OPJ_FALSE;
     }
 
     if (l_remaining_size != 0) {
         opj_event_msg(p_manager, EVT_ERROR, "Error writing COD marker\n");
+       errno = 0x61518;
         return OPJ_FALSE;
     }
 
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_code_size,
                               p_manager) != l_code_size) {
+           errno = 0x61519;
         return OPJ_FALSE;
     }
 
@@ -3010,17 +3017,20 @@ static OPJ_BOOL opj_j2k_write_qcd(opj_j2k_t *p_j2k,
     if (! opj_j2k_write_SQcd_SQcc(p_j2k, p_j2k->m_current_tile_number, 0,
                                   l_current_data, &l_remaining_size, p_manager)) {
         opj_event_msg(p_manager, EVT_ERROR, "Error writing QCD marker\n");
+       errno = 0x6151a;
         return OPJ_FALSE;
     }
 
     if (l_remaining_size != 0) {
         opj_event_msg(p_manager, EVT_ERROR, "Error writing QCD marker\n");
+       errno = 0x6151b;
         return OPJ_FALSE;
     }
 
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_qcd_size,
                               p_manager) != l_qcd_size) {
+           errno = 0x6151c;
         return OPJ_FALSE;
     }
 
@@ -3292,6 +3302,7 @@ static OPJ_BOOL opj_j2k_write_poc(opj_j2k_t *p_j2k,
             p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL;
             p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0;
             opj_event_msg(p_manager, EVT_ERROR, "Not enough memory to write POC marker\n");
+           errno = 0x61521;
             return OPJ_FALSE;
         }
         p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data;
@@ -3305,6 +3316,7 @@ static OPJ_BOOL opj_j2k_write_poc(opj_j2k_t *p_j2k,
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_poc_size,
                               p_manager) != l_poc_size) {
+           errno = 0x61522;
         return OPJ_FALSE;
     }
 
@@ -4165,6 +4177,7 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k,
             p_j2k->m_specific_param.m_encoder.m_header_tile_data = NULL;
             p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = 0;
             opj_event_msg(p_manager, EVT_ERROR, "Not enough memory to write TLM marker\n");
+           errno = 0x6151f;
             return OPJ_FALSE;
         }
         p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data;
@@ -4197,6 +4210,7 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k,
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_header_tile_data, l_tlm_size,
                               p_manager) != l_tlm_size) {
+           errno = 0x61520;
         return OPJ_FALSE;
     }
 
@@ -4915,10 +4929,12 @@ static OPJ_BOOL opj_j2k_write_eoc(opj_j2k_t *p_j2k,
 
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_header_tile_data, 2, p_manager) != 2) {
+           errno = 0x61510;
         return OPJ_FALSE;
     }
 
     if (! opj_stream_flush(p_stream, p_manager)) {
+           errno = 0x61511;
         return OPJ_FALSE;
     }
 
@@ -5182,6 +5198,7 @@ static OPJ_BOOL opj_j2k_update_rates(opj_j2k_t *p_j2k,
     p_j2k->m_specific_param.m_encoder.m_encoded_tile_data =
         (OPJ_BYTE *) opj_malloc(p_j2k->m_specific_param.m_encoder.m_encoded_tile_size);
     if (p_j2k->m_specific_param.m_encoder.m_encoded_tile_data == 00) {
+           errno = 0x6152c;
         return OPJ_FALSE;
     }
 
@@ -5190,6 +5207,7 @@ static OPJ_BOOL opj_j2k_update_rates(opj_j2k_t *p_j2k,
             (OPJ_BYTE *) opj_malloc(5 *
                                     p_j2k->m_specific_param.m_encoder.m_total_tile_parts);
         if (! p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer) {
+               errno = 0x6152d;
             return OPJ_FALSE;
         }
 
@@ -5283,6 +5301,7 @@ static OPJ_BOOL opj_j2k_write_mct_data_group(opj_j2k_t *p_j2k,
     assert(p_manager != 00);
 
     if (! opj_j2k_write_cbd(p_j2k, p_stream, p_manager)) {
+           errno = 0x61526;
         return OPJ_FALSE;
     }
 
@@ -5292,6 +5311,7 @@ static OPJ_BOOL opj_j2k_write_mct_data_group(opj_j2k_t *p_j2k,
     for (i = 0; i < l_tcp->m_nb_mct_records; ++i) {
 
         if (! opj_j2k_write_mct_record(p_j2k, l_mct_record, p_stream, p_manager)) {
+           errno = 0x61527;
             return OPJ_FALSE;
         }
 
@@ -5303,6 +5323,7 @@ static OPJ_BOOL opj_j2k_write_mct_data_group(opj_j2k_t *p_j2k,
     for (i = 0; i < l_tcp->m_nb_mcc_records; ++i) {
 
         if (! opj_j2k_write_mcc_record(p_j2k, l_mcc_record, p_stream, p_manager)) {
+           errno = 0x61528;
             return OPJ_FALSE;
         }
 
@@ -5310,6 +5331,7 @@ static OPJ_BOOL opj_j2k_write_mct_data_group(opj_j2k_t *p_j2k,
     }
 
     if (! opj_j2k_write_mco(p_j2k, p_stream, p_manager)) {
+           errno = 0x61529;
         return OPJ_FALSE;
     }
 
@@ -5332,6 +5354,7 @@ static OPJ_BOOL opj_j2k_write_all_coc(
         /* cod is first component of first tile */
         if (! opj_j2k_compare_coc(p_j2k, 0, compno)) {
             if (! opj_j2k_write_coc(p_j2k, compno, p_stream, p_manager)) {
+                   errno = 0x6151d;
                 return OPJ_FALSE;
             }
         }
@@ -5356,6 +5379,7 @@ static OPJ_BOOL opj_j2k_write_all_qcc(
         /* qcd is first component of first tile */
         if (! opj_j2k_compare_qcc(p_j2k, 0, compno)) {
             if (! opj_j2k_write_qcc(p_j2k, compno, p_stream, p_manager)) {
+                   errno = 0x6151e;
                 return OPJ_FALSE;
             }
         }
@@ -5382,6 +5406,7 @@ static OPJ_BOOL opj_j2k_write_regions(opj_j2k_t *p_j2k,
 
             if (! opj_j2k_write_rgn(p_j2k, 0, compno, p_j2k->m_private_image->numcomps,
                                     p_stream, p_manager)) {
+                   errno = 0x61523;
                 return OPJ_FALSE;
             }
         }
@@ -11255,7 +11280,6 @@ OPJ_BOOL opj_j2k_start_compress(opj_j2k_t *p_j2k,
 
     /* write header */
     if (! opj_j2k_exec(p_j2k, p_j2k->m_procedure_list, p_stream, p_manager)) {
-                errno = 0x61504;
         return OPJ_FALSE;
     }
 
@@ -11832,16 +11856,19 @@ static OPJ_BOOL opj_j2k_write_updated_tlm(opj_j2k_t *p_j2k,
     l_current_position = opj_stream_tell(p_stream);
 
     if (! opj_stream_seek(p_stream, l_tlm_position, p_manager)) {
+           errno = 0x61512;
         return OPJ_FALSE;
     }
 
     if (opj_stream_write_data(p_stream,
                               p_j2k->m_specific_param.m_encoder.m_tlm_sot_offsets_buffer, l_tlm_size,
                               p_manager) != l_tlm_size) {
+           errno = 0x61513;
         return OPJ_FALSE;
     }
 
     if (! opj_stream_seek(p_stream, l_current_position, p_manager)) {
+           errno = 0x61514;
         return OPJ_FALSE;
     }
 
@@ -11986,6 +12013,7 @@ static OPJ_BOOL opj_j2k_create_tcd(opj_j2k_t *p_j2k,
 
     if (! p_j2k->m_tcd) {
         opj_event_msg(p_manager, EVT_ERROR, "Not enough memory to create Tile Coder\n");
+       errno = 0x6152a;
         return OPJ_FALSE;
     }
 
@@ -11993,6 +12021,7 @@ static OPJ_BOOL opj_j2k_create_tcd(opj_j2k_t *p_j2k,
                       p_j2k->m_tp)) {
         opj_tcd_destroy(p_j2k->m_tcd);
         p_j2k->m_tcd = 00;
+       errno = 0x6152b;
         return OPJ_FALSE;
     }