Example #1
0
int opj_write_phix( int coff, opj_codestream_info_t cstr_info, OPJ_BOOL EPHused, int j2klen, opj_stream_private_t *cio,
              opj_event_mgr_t * p_manager )
{
  OPJ_BYTE l_data_header [8];
  OPJ_UINT32 len, compno, i;
  opj_jp2_box_t *box;
  OPJ_OFF_T lenp = 0;

  box = (opj_jp2_box_t *)opj_calloc( (size_t)cstr_info.numcomps, sizeof(opj_jp2_box_t));
  
  for( i=0;i<2;i++){
    if (i)
      opj_stream_seek( cio, lenp, p_manager);
      
    lenp = opj_stream_tell(cio);
    opj_stream_skip(cio, 4, p_manager);         /* L [at the end]      */
    opj_write_bytes(l_data_header,JPIP_PHIX,4); /* PHIX */
    opj_stream_write_data(cio,l_data_header,4,p_manager);
      
    opj_write_manf( (int)i, cstr_info.numcomps, box, cio, p_manager );

    for( compno=0; compno<(OPJ_UINT32)cstr_info.numcomps; compno++){       
      box[compno].length = (OPJ_UINT32)opj_write_phixfaix( coff, (int)compno, cstr_info, EPHused, j2klen, cio,p_manager);
      box[compno].type = JPIP_FAIX;
    }

    len = (OPJ_UINT32)(opj_stream_tell(cio)-lenp);
    opj_stream_seek(cio, 4, p_manager);
    opj_write_bytes(l_data_header,len,4);/* L              */
    opj_stream_write_data(cio,l_data_header,4,p_manager);
    opj_stream_seek( cio, lenp+len,p_manager);
  }

  opj_free(box);

  return (int)len;
}
Example #2
0
int opj_write_cidx( int offset, opj_stream_private_t *cio, opj_codestream_info_t cstr_info, int j2klen,
              opj_event_mgr_t * p_manager )
{
  int i;
  OPJ_OFF_T lenp;
  OPJ_UINT32 len;
  opj_jp2_box_t *box;
  int num_box = 0;
  OPJ_BOOL  EPHused;
  OPJ_BYTE l_data_header [4];

  lenp = -1;
  box = (opj_jp2_box_t *)opj_calloc( 32, sizeof(opj_jp2_box_t));
  if(box == NULL){
	return 0;
  }
  for (i=0;i<2;i++){
  
    if(i)
      opj_stream_seek(cio,lenp,p_manager);


    lenp = opj_stream_tell (cio);

    opj_stream_skip(cio, 4, p_manager); /* L [at the end] */

    opj_write_bytes(l_data_header,JPIP_CIDX,4); /* CIDX */
    opj_stream_write_data(cio,l_data_header,4,p_manager);

    opj_write_cptr( offset, cstr_info.codestream_size, cio,p_manager);

    opj_write_manf( i, num_box, box, cio,p_manager);
    
    num_box = 0;
    box[num_box].length = (OPJ_UINT32)opj_write_mainmhix( offset, cstr_info, cio,p_manager);
    box[num_box].type = JPIP_MHIX;
    num_box++;

    box[num_box].length = (OPJ_UINT32)opj_write_tpix( offset, cstr_info, j2klen, cio,p_manager);
    box[num_box].type = JPIP_TPIX;
    num_box++;
      
    box[num_box].length = (OPJ_UINT32)opj_write_thix( offset, cstr_info, cio, p_manager);
    box[num_box].type = JPIP_THIX;
    num_box++;

    EPHused = opj_check_EPHuse( offset, cstr_info.marker, cstr_info.marknum, cio,p_manager);
      
    box[num_box].length = (OPJ_UINT32)opj_write_ppix( offset, cstr_info, EPHused, j2klen, cio,p_manager);
    box[num_box].type = JPIP_PPIX;
    num_box++;
    
    box[num_box].length = (OPJ_UINT32)opj_write_phix( offset, cstr_info, EPHused, j2klen, cio,p_manager);
    box[num_box].type = JPIP_PHIX;
    num_box++;
      
    len = (OPJ_UINT32) (opj_stream_tell(cio)-lenp);
    opj_stream_seek(cio, lenp,p_manager);
    opj_write_bytes(l_data_header,len,4);/* L  */
    opj_stream_write_data(cio,l_data_header,4,p_manager);
    opj_stream_seek(cio, lenp+len,p_manager);
  }

  opj_free( box);
  
  return (int)len;
}