Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/j2k.c

Issue 758593002: Update to openjpeg r2944 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: tab Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * The copyright in this software is being made available under the 2-clauses 2 * The copyright in this software is being made available under the 2-clauses
3 * BSD License, included below. This software may be subject to other third 3 * BSD License, included below. This software may be subject to other third
4 * party and contributor rights, including patent rights, and no such rights 4 * party and contributor rights, including patent rights, and no such rights
5 * are granted under this license. 5 * are granted under this license.
6 * 6 *
7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium 7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
8 * Copyright (c) 2002-2014, Professor Benoit Macq 8 * Copyright (c) 2002-2014, Professor Benoit Macq
9 * Copyright (c) 2001-2003, David Janssens 9 * Copyright (c) 2001-2003, David Janssens
10 * Copyright (c) 2002-2003, Yannick Verschueren 10 * Copyright (c) 2002-2003, Yannick Verschueren
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 opj_stream_private_t *p_stream, 331 opj_stream_private_t *p_stream,
332 opj_event_mgr_t * p_manager); 332 opj_event_mgr_t * p_manager);
333 333
334 static OPJ_BOOL opj_j2k_pre_write_tile ( opj_j2k_t * p_j2k, 334 static OPJ_BOOL opj_j2k_pre_write_tile ( opj_j2k_t * p_j2k,
335 OPJ _UINT32 p_tile_index, 335 OPJ _UINT32 p_tile_index,
336 opj _stream_private_t *p_stream, 336 opj _stream_private_t *p_stream,
337 opj _event_mgr_t * p_manager ); 337 opj _event_mgr_t * p_manager );
338 338
339 static OPJ_BOOL opj_j2k_update_image_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data, opj_image_t* p_output_image); 339 static OPJ_BOOL opj_j2k_update_image_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data, opj_image_t* p_output_image);
340 340
341 static void opj_get_tile_dimensions(opj_image_t * l_image,
342 opj_tcd_tilecomp _t * l_tilec,
343 opj_image_comp_t * l_img_comp,
344 OPJ_UINT32* l_si ze_comp,
345 OPJ_UINT32* l_wi dth,
346 OPJ_UINT32* l_he ight,
347 OPJ_UINT32* l_of fset_x,
348 OPJ_UINT32* l_of fset_y,
349 OPJ_UINT32* l_im age_width,
350 OPJ_UINT32* l_st ride,
351 OPJ_UINT32* l_ti le_offset);
352
341 static void opj_j2k_get_tile_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data); 353 static void opj_j2k_get_tile_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data);
342 354
343 static OPJ_BOOL opj_j2k_post_write_tile (opj_j2k_t * p_j2k, 355 static OPJ_BOOL opj_j2k_post_write_tile (opj_j2k_t * p_j2k,
344 OPJ _BYTE * p_data,
345 OPJ _UINT32 p_data_size,
346 opj _stream_private_t *p_stream, 356 opj _stream_private_t *p_stream,
347 opj _event_mgr_t * p_manager ); 357 opj _event_mgr_t * p_manager );
348 358
349 /** 359 /**
350 * Sets up the procedures to do on writing header. 360 * Sets up the procedures to do on writing header.
351 * Developers wanting to extend the library can add their own writing procedures . 361 * Developers wanting to extend the library can add their own writing procedures .
352 */ 362 */
353 static void opj_j2k_setup_header_writing (opj_j2k_t *p_j2k); 363 static void opj_j2k_setup_header_writing (opj_j2k_t *p_j2k);
354 364
355 static OPJ_BOOL opj_j2k_write_first_tile_part( opj_j2k_t *p_j2k, 365 static OPJ_BOOL opj_j2k_write_first_tile_part( opj_j2k_t *p_j2k,
(...skipping 9393 matching lines...) Expand 10 before | Expand all | Expand 10 after
9749 } 9759 }
9750 } 9760 }
9751 9761
9752 return OPJ_FALSE; 9762 return OPJ_FALSE;
9753 } 9763 }
9754 9764
9755 OPJ_BOOL opj_j2k_encode(opj_j2k_t * p_j2k, 9765 OPJ_BOOL opj_j2k_encode(opj_j2k_t * p_j2k,
9756 opj_stream_private_t *p_stream, 9766 opj_stream_private_t *p_stream,
9757 opj_event_mgr_t * p_manager ) 9767 opj_event_mgr_t * p_manager )
9758 { 9768 {
9759 OPJ_UINT32 i; 9769 OPJ_UINT32 i, j;
9760 OPJ_UINT32 l_nb_tiles; 9770 OPJ_UINT32 l_nb_tiles;
9761 OPJ_UINT32 l_max_tile_size, l_current_tile_size; 9771 OPJ_UINT32 l_max_tile_size = 0, l_current_tile_size;
9762 OPJ_BYTE * l_current_data; 9772 OPJ_BYTE * l_current_data = 00;
9773 opj_tcd_t* p_tcd = 00;
9763 9774
9764 /* preconditions */ 9775 /* preconditions */
9765 assert(p_j2k != 00); 9776 assert(p_j2k != 00);
9766 assert(p_stream != 00); 9777 assert(p_stream != 00);
9767 assert(p_manager != 00); 9778 assert(p_manager != 00);
9768 9779
9769 l_current_data = (OPJ_BYTE*)opj_malloc(1000); 9780 p_tcd = p_j2k->m_tcd;
9770 if (! l_current_data) {
9771 opj_event_msg(p_manager, EVT_ERROR, "Not enough memory to encode all tiles\n");
9772 return OPJ_FALSE;
9773 }
9774 l_max_tile_size = 1000;
9775 9781
9776 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw; 9782 l_nb_tiles = p_j2k->m_cp.th * p_j2k->m_cp.tw;
9777 for (i=0;i<l_nb_tiles;++i) { 9783 for (i=0;i<l_nb_tiles;++i) {
9778 if (! opj_j2k_pre_write_tile(p_j2k,i,p_stream,p_manager)) { 9784 if (! opj_j2k_pre_write_tile(p_j2k,i,p_stream,p_manager)) {
9779 opj_free(l_current_data); 9785 if (l_current_data) {
9786 opj_free(l_current_data);
9787 }
9780 return OPJ_FALSE; 9788 return OPJ_FALSE;
9781 } 9789 }
9782 9790
9791 /* if we only have one tile, then simply set tile component data equal to image component data */
9792 /* otherwise, allocate the data */
9793 for (j=0;j<p_j2k->m_tcd->image->numcomps;++j) {
9794 opj_tcd_tilecomp_t* l_tilec = p_tcd->tcd_image->tiles->c omps + j;
9795 if (l_nb_tiles == 1) {
9796 opj_image_comp_t * l_img_comp = p_tcd->image->comps + j;
9797 l_tilec->data = l_img_comp->data;
9798 l_tilec->ownsData = OPJ_FALSE;
9799 } else {
9800 if(! opj_alloc_tile_component_data(l_tilec)) {
9801 opj_event_msg(p_manager, EVT_ERROR, "Error alloc ating tile component data." );
9802 if (l_current_data) {
9803 opj_free(l_current_data);
9804 }
9805 return OPJ_FALSE;
9806 }
9807 opj_alloc_tile_component_data(l_tilec);
9808 }
9809 }
9783 l_current_tile_size = opj_tcd_get_encoded_tile_size(p_j2k->m_tcd ); 9810 l_current_tile_size = opj_tcd_get_encoded_tile_size(p_j2k->m_tcd );
9784 if (l_current_tile_size > l_max_tile_size) { 9811 if (l_nb_tiles > 1) {
9785 OPJ_BYTE *l_new_current_data = (OPJ_BYTE *) opj_realloc( l_current_data, l_current_tile_size); 9812 if (l_current_tile_size > l_max_tile_size) {
9786 if (! l_new_current_data) { 9813 » » » » » » » » » » » » OPJ_BYTE *l_new_current_data = (OPJ_BYTE *) opj_realloc( l_current_data, l_current_tile_size);
9787 opj_free(l_current_data); 9814 » » » » » » » » » » » » if (! l_new_current_data) {
9788 opj_event_msg(p_manager, EVT_ERROR, "Not enough memory to encode all tiles\n"); 9815 » » » » » » » » » » » » if (l_current_data) {
9789 return OPJ_FALSE; 9816 » » » » » » » » » » » » opj_free(l_current_data);
9817 » » » » » » » » » » » » }
9818 » » » » » » » » » » » » opj_event_msg(p_manager, EVT_ERROR, "Not enough memory to encode all tiles\n");
9819 » » » » » » » » » » » » return OPJ_FALSE;
9820 » » » » » » » » » » » » » » » » }
9821 » » » » » » » » » » » » » » » » l_current_data = l_new_current_d ata;
9822 » » » » » » » » » » » » » » » » l_max_tile_size = l_current_tile _size;
9790 } 9823 }
9791 l_current_data = l_new_current_data; 9824
9792 l_max_tile_size = l_current_tile_size; 9825 /* copy image data (32 bit) to l_current_data as contigu ous, all-component, zero offset buffer */
9826 /* 32 bit components @ 8 bit precision get converted to 8 bit */
9827 /* 32 bit components @ 16 bit precision get converted to 16 bit */
9828 opj_j2k_get_tile_data(p_j2k->m_tcd,l_current_data);
9829
9830 /* now copy this data into the tile component */
9831 if (! opj_tcd_copy_tile_data(p_j2k->m_tcd,l_current_data ,l_current_tile_size)) {
9832 » » » » » » » » » » » » » » » » opj_event_msg(p_manager, EVT_ERR OR, "Size mismatch between tile data and sent data." );
9833 » » » » » » » » » » » » » » » » return OPJ_FALSE;
9834 }
9793 } 9835 }
9794 9836
9795 opj_j2k_get_tile_data(p_j2k->m_tcd,l_current_data); 9837 if (! opj_j2k_post_write_tile (p_j2k,p_stream,p_manager)) {
9796
9797 if (! opj_j2k_post_write_tile (p_j2k,l_current_data,l_current_ti le_size,p_stream,p_manager)) {
9798 return OPJ_FALSE; 9838 return OPJ_FALSE;
9799 } 9839 }
9800 } 9840 }
9801 9841
9802 opj_free(l_current_data); 9842 if (l_current_data) {
9843 opj_free(l_current_data);
9844 }
9803 return OPJ_TRUE; 9845 return OPJ_TRUE;
9804 } 9846 }
9805 9847
9806 OPJ_BOOL opj_j2k_end_compress( opj_j2k_t *p_j2k, 9848 OPJ_BOOL opj_j2k_end_compress( opj_j2k_t *p_j2k,
9807 opj_stream_private_t *p_ stream, 9849 opj_stream_private_t *p_ stream,
9808 opj_event_mgr_t * p_mana ger) 9850 opj_event_mgr_t * p_mana ger)
9809 { 9851 {
9810 /* customization of the encoding */ 9852 /* customization of the encoding */
9811 opj_j2k_setup_end_compress(p_j2k); 9853 opj_j2k_setup_end_compress(p_j2k);
9812 9854
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
9884 p_j2k->m_specific_param.m_encoder.m_current_poc_tile_part_number = 0; 9926 p_j2k->m_specific_param.m_encoder.m_current_poc_tile_part_number = 0;
9885 9927
9886 /* initialisation before tile encoding */ 9928 /* initialisation before tile encoding */
9887 if (! opj_tcd_init_encode_tile(p_j2k->m_tcd, p_j2k->m_current_tile_numbe r)) { 9929 if (! opj_tcd_init_encode_tile(p_j2k->m_tcd, p_j2k->m_current_tile_numbe r)) {
9888 return OPJ_FALSE; 9930 return OPJ_FALSE;
9889 } 9931 }
9890 9932
9891 return OPJ_TRUE; 9933 return OPJ_TRUE;
9892 } 9934 }
9893 9935
9936 void opj_get_tile_dimensions(opj_image_t * l_image,
9937 opj_tcd_tilecomp_t * l_tilec,
9938 opj_image_comp_t * l_img_comp,
9939 OPJ_UINT32* l_size_comp,
9940 OPJ_UINT32* l_width,
9941 OPJ_UINT32* l_height,
9942 OPJ_UINT32* l_offset_x,
9943 OPJ_UINT32* l_offset_y,
9944 OPJ_UINT32* l_image_width,
9945 OPJ_UINT32* l_stride,
9946 OPJ_UINT32* l_tile_offset) {
9947 OPJ_UINT32 l_remaining;
9948 *l_size_comp = l_img_comp->prec >> 3; /* (/8) */
9949 l_remaining = l_img_comp->prec & 7; /* (%8) */
9950 if (l_remaining) {
9951 *l_size_comp += 1;
9952 }
9953
9954 if (*l_size_comp == 3) {
9955 *l_size_comp = 4;
9956 }
9957
9958 *l_width = (OPJ_UINT32)(l_tilec->x1 - l_tilec->x0);
9959 *l_height = (OPJ_UINT32)(l_tilec->y1 - l_tilec->y0);
9960 *l_offset_x = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)l_image->x0, (OPJ_I NT32)l_img_comp->dx);
9961 *l_offset_y = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)l_image->y0, (OPJ_I NT32)l_img_comp->dy);
9962 *l_image_width = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)l_image->x1 - (O PJ_INT32)l_image->x0, (OPJ_INT32)l_img_comp->dx);
9963 *l_stride = *l_image_width - *l_width;
9964 *l_tile_offset = ((OPJ_UINT32)l_tilec->x0 - *l_offset_x) + ((OPJ_UINT32) l_tilec->y0 - *l_offset_y) * *l_image_width;
9965 }
9966
9894 void opj_j2k_get_tile_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data) 9967 void opj_j2k_get_tile_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data)
9895 { 9968 {
9896 OPJ_UINT32 i,j,k = 0; 9969 OPJ_UINT32 i,j,k = 0;
9897 OPJ_UINT32 l_width,l_height,l_stride, l_offset_x,l_offset_y, l_image_wid th;
9898 opj_image_comp_t * l_img_comp = 00;
9899 opj_tcd_tilecomp_t * l_tilec = 00;
9900 opj_image_t * l_image = 00;
9901 OPJ_UINT32 l_size_comp, l_remaining;
9902 OPJ_INT32 * l_src_ptr;
9903 l_tilec = p_tcd->tcd_image->tiles->comps;
9904 l_image = p_tcd->image;
9905 l_img_comp = l_image->comps;
9906 9970
9907 for (i=0;i<p_tcd->image->numcomps;++i) { 9971 for (i=0;i<p_tcd->image->numcomps;++i) {
9908 l_size_comp = l_img_comp->prec >> 3; /* (/8) */ 9972 opj_image_t * l_image = p_tcd->image;
9909 l_remaining = l_img_comp->prec & 7; /* (%8) */ 9973 OPJ_INT32 * l_src_ptr;
9910 if (l_remaining) { 9974 opj_tcd_tilecomp_t * l_tilec = p_tcd->tcd_image->tiles->comps + i;
9911 ++l_size_comp; 9975 opj_image_comp_t * l_img_comp = l_image->comps + i;
9912 } 9976 OPJ_UINT32 l_size_comp,l_width,l_height,l_offset_x,l_offset_y, l _image_width,l_stride,l_tile_offset;
9913 9977
9914 if (l_size_comp == 3) { 9978 opj_get_tile_dimensions(l_image,
9915 l_size_comp = 4; 9979 l_tilec,
9916 } 9980 l_img_comp,
9981 &l_size_comp,
9982 &l_width,
9983 &l_height,
9984 &l_offset_x,
9985 &l_offset_y,
9986 &l_image_width,
9987 &l_stride,
9988 &l_tile_offset);
9917 9989
9918 l_width = (OPJ_UINT32)(l_tilec->x1 - l_tilec->x0); 9990 l_src_ptr = l_img_comp->data + l_tile_offset;
9919 l_height = (OPJ_UINT32)(l_tilec->y1 - l_tilec->y0);
9920 l_offset_x = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)l_image->x0, (OPJ_INT32)l_img_comp->dx);
9921 l_offset_y = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)l_image->y0, (OPJ_INT32)l_img_comp->dy);
9922 l_image_width = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)l_image-> x1 - (OPJ_INT32)l_image->x0, (OPJ_INT32)l_img_comp->dx);
9923 l_stride = l_image_width - l_width;
9924 l_src_ptr = l_img_comp->data + ((OPJ_UINT32)l_tilec->x0 - l_offs et_x) + ((OPJ_UINT32)l_tilec->y0 - l_offset_y) * l_image_width;
9925 9991
9926 switch (l_size_comp) { 9992 switch (l_size_comp) {
9927 case 1: 9993 case 1:
9928 { 9994 {
9929 OPJ_CHAR * l_dest_ptr = (OPJ_CHAR*) p_da ta; 9995 OPJ_CHAR * l_dest_ptr = (OPJ_CHAR*) p_da ta;
9930 if (l_img_comp->sgnd) { 9996 if (l_img_comp->sgnd) {
9931 for (j=0;j<l_height;++j) { 9997 for (j=0;j<l_height;++j) {
9932 for (k=0;k<l_width;++k) { 9998 for (k=0;k<l_width;++k) {
9933 *(l_dest_ptr) = (OPJ_CHAR) (*l_src_ptr); 9999 *(l_dest_ptr) = (OPJ_CHAR) (*l_src_ptr);
9934 ++l_dest_ptr; 10000 ++l_dest_ptr;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
9981 for (k=0;k<l_width;++k) { 10047 for (k=0;k<l_width;++k) {
9982 *(l_dest_ptr++) = *(l_sr c_ptr++); 10048 *(l_dest_ptr++) = *(l_sr c_ptr++);
9983 } 10049 }
9984 l_src_ptr += l_stride; 10050 l_src_ptr += l_stride;
9985 } 10051 }
9986 10052
9987 p_data = (OPJ_BYTE*) l_dest_ptr; 10053 p_data = (OPJ_BYTE*) l_dest_ptr;
9988 } 10054 }
9989 break; 10055 break;
9990 } 10056 }
9991
9992 ++l_img_comp;
9993 ++l_tilec;
9994 } 10057 }
9995 } 10058 }
9996 10059
9997 OPJ_BOOL opj_j2k_post_write_tile ( opj_j2k_t * p_j2k, 10060 OPJ_BOOL opj_j2k_post_write_tile ( opj_j2k_t * p_j2k,
9998 OPJ_BYTE * p_dat a,
9999 OPJ_UINT32 p_dat a_size,
10000 opj_stream_priva te_t *p_stream, 10061 opj_stream_priva te_t *p_stream,
10001 opj_event_mgr_t * p_manager ) 10062 opj_event_mgr_t * p_manager )
10002 { 10063 {
10003 opj_tcd_t * l_tcd = 00;
10004 OPJ_UINT32 l_nb_bytes_written; 10064 OPJ_UINT32 l_nb_bytes_written;
10005 OPJ_BYTE * l_current_data = 00; 10065 OPJ_BYTE * l_current_data = 00;
10006 OPJ_UINT32 l_tile_size = 0; 10066 OPJ_UINT32 l_tile_size = 0;
10007 OPJ_UINT32 l_available_data; 10067 OPJ_UINT32 l_available_data;
10008 10068
10009 /* preconditions */ 10069 /* preconditions */
10010 assert(p_j2k->m_specific_param.m_encoder.m_encoded_tile_data); 10070 assert(p_j2k->m_specific_param.m_encoder.m_encoded_tile_data);
10011 10071
10012 l_tcd = p_j2k->m_tcd;
10013
10014 l_tile_size = p_j2k->m_specific_param.m_encoder.m_encoded_tile_size; 10072 l_tile_size = p_j2k->m_specific_param.m_encoder.m_encoded_tile_size;
10015 l_available_data = l_tile_size; 10073 l_available_data = l_tile_size;
10016 l_current_data = p_j2k->m_specific_param.m_encoder.m_encoded_tile_data; 10074 l_current_data = p_j2k->m_specific_param.m_encoder.m_encoded_tile_data;
10017 10075
10018 if (! opj_tcd_copy_tile_data(l_tcd,p_data,p_data_size)) {
10019 opj_event_msg(p_manager, EVT_ERROR, "Size mismatch between tile data and sent data." );
10020 return OPJ_FALSE;
10021 }
10022
10023 l_nb_bytes_written = 0; 10076 l_nb_bytes_written = 0;
10024 if (! opj_j2k_write_first_tile_part(p_j2k,l_current_data,&l_nb_bytes_wri tten,l_available_data,p_stream,p_manager)) { 10077 if (! opj_j2k_write_first_tile_part(p_j2k,l_current_data,&l_nb_bytes_wri tten,l_available_data,p_stream,p_manager)) {
10025 return OPJ_FALSE; 10078 return OPJ_FALSE;
10026 } 10079 }
10027 l_current_data += l_nb_bytes_written; 10080 l_current_data += l_nb_bytes_written;
10028 l_available_data -= l_nb_bytes_written; 10081 l_available_data -= l_nb_bytes_written;
10029 10082
10030 l_nb_bytes_written = 0; 10083 l_nb_bytes_written = 0;
10031 if (! opj_j2k_write_all_tile_parts(p_j2k,l_current_data,&l_nb_bytes_writ ten,l_available_data,p_stream,p_manager)) { 10084 if (! opj_j2k_write_all_tile_parts(p_j2k,l_current_data,&l_nb_bytes_writ ten,l_available_data,p_stream,p_manager)) {
10032 return OPJ_FALSE; 10085 return OPJ_FALSE;
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
10483 OPJ_BYTE * p_data, 10536 OPJ_BYTE * p_data,
10484 OPJ_UINT32 p_data_size, 10537 OPJ_UINT32 p_data_size,
10485 opj_stream_private_t *p_stream, 10538 opj_stream_private_t *p_stream,
10486 opj_event_mgr_t * p_manager ) 10539 opj_event_mgr_t * p_manager )
10487 { 10540 {
10488 if (! opj_j2k_pre_write_tile(p_j2k,p_tile_index,p_stream,p_manager)) { 10541 if (! opj_j2k_pre_write_tile(p_j2k,p_tile_index,p_stream,p_manager)) {
10489 opj_event_msg(p_manager, EVT_ERROR, "Error while opj_j2k_pre_wri te_tile with tile index = %d\n", p_tile_index); 10542 opj_event_msg(p_manager, EVT_ERROR, "Error while opj_j2k_pre_wri te_tile with tile index = %d\n", p_tile_index);
10490 return OPJ_FALSE; 10543 return OPJ_FALSE;
10491 } 10544 }
10492 else { 10545 else {
10493 if (! opj_j2k_post_write_tile(p_j2k,p_data,p_data_size,p_stream, p_manager)) { 10546 OPJ_UINT32 j;
10547 /* Allocate data */
10548 for (j=0;j<p_j2k->m_tcd->image->numcomps;++j) {
10549 opj_tcd_tilecomp_t* l_tilec = p_j2k->m_tcd->tcd_image->t iles->comps + j;
10550
10551 if(! opj_alloc_tile_component_data(l_tilec)) {
10552 » » » » » » » » » » » » opj_event_msg(p_manager, EVT_ERROR, "Error allocating ti le component data." );
10553 return OPJ_FALSE;
10554 }
10555 }
10556
10557 /* now copy data into the the tile component */
10558 if (! opj_tcd_copy_tile_data(p_j2k->m_tcd,p_data,p_data_size)) {
10559 opj_event_msg(p_manager, EVT_ERROR, "Size mismatch betwe en tile data and sent data." );
10560 return OPJ_FALSE;
10561 }
10562 if (! opj_j2k_post_write_tile(p_j2k,p_stream,p_manager)) {
10494 opj_event_msg(p_manager, EVT_ERROR, "Error while opj_j2k _post_write_tile with tile index = %d\n", p_tile_index); 10563 opj_event_msg(p_manager, EVT_ERROR, "Error while opj_j2k _post_write_tile with tile index = %d\n", p_tile_index);
10495 return OPJ_FALSE; 10564 return OPJ_FALSE;
10496 } 10565 }
10497 } 10566 }
10498 10567
10499 return OPJ_TRUE; 10568 return OPJ_TRUE;
10500 } 10569 }
OLDNEW
« no previous file with comments | « core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/CMakeLists.txt ('k') | core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/jp2.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698