Example #1
0
OPJ_BOOL set_ppixdata( box_param_t *cidx_box, index_param_t *jp2idx)
{
  box_param_t *ppix_box, *faix_box, *manf_box;
  manfbox_param_t *manf;     /**< manf*/
  boxheader_param_t *bh;     /**< box headers*/
  faixbox_param_t *faix;     /**< faix*/
  OPJ_OFF_T inbox_offset;
  int comp_idx;

  if( !(ppix_box = gene_boxbyType( cidx_box->fd, get_DBoxoff( cidx_box), get_DBoxlen( cidx_box), "ppix"))){
    fprintf( FCGI_stderr, "Error: ppix box not present in cidx box\n");
    return OPJ_FALSE;
  }

  inbox_offset = get_DBoxoff( ppix_box);
  if( !(manf_box = gene_boxbyType( ppix_box->fd, inbox_offset, get_DBoxlen( ppix_box), "manf"))){
    fprintf( FCGI_stderr, "Error: manf box not present in ppix box\n");
    opj_free( ppix_box);
    return OPJ_FALSE;
  }

  opj_free( ppix_box);

  manf = gene_manfbox( manf_box);
  bh = search_boxheader( "faix", manf);
  inbox_offset = manf_box->offset + (OPJ_OFF_T)manf_box->length;

  opj_free( manf_box);

  jp2idx->precpacket = (faixbox_param_t **)opj_malloc( jp2idx->SIZ.Csiz*sizeof(faixbox_param_t *));

  for( comp_idx=0; bh!=NULL; bh=bh->next, comp_idx++){
    if( jp2idx->SIZ.Csiz <= comp_idx ){
      fprintf( FCGI_stderr, "Error: num of faix boxes is not identical to num of components in ppix box\n");
      return OPJ_FALSE;
    }

    if( !(faix_box = gene_boxbyOffset( cidx_box->fd, inbox_offset))){
      fprintf( FCGI_stderr, "Error: faix box not present in ppix box\n");
      return OPJ_FALSE;
    }

    faix = gene_faixbox( faix_box);
    jp2idx->precpacket[comp_idx] = faix;

    inbox_offset = faix_box->offset + (OPJ_OFF_T)faix_box->length;
    opj_free( faix_box);
  }

  delete_manfbox( &manf);

  return OPJ_TRUE;
}
Example #2
0
boxlist_param_t * get_boxstructure( int fd, Byte8_t offset, Byte8_t length)
{
  boxlist_param_t *boxlist;
  box_param_t *box;
  int pos;
  
  boxlist = NULL;
  pos = offset;
  do{
    if(!(box = gene_boxbyOffset( fd, pos)))
      break;
    
    pos += box->length;
    
    if( !boxlist)
      boxlist = gene_boxlist();
    insert_box_into_list( box, boxlist);
  }while( pos < offset+length);

  return boxlist;
}
Example #3
0
boxlist_param_t * get_boxstructure( int fd, OPJ_OFF_T offset, OPJ_SIZE_T length)
{
  boxlist_param_t *boxlist;
  box_param_t *box;
  OPJ_OFF_T pos;
  
  boxlist = NULL;
  pos = offset;
  assert( (OPJ_OFF_T)length>=0);
  do{
    if(!(box = gene_boxbyOffset( fd, pos)))
      break;
    
    assert( (OPJ_OFF_T)box->length >= 0);
    pos += (OPJ_OFF_T)box->length;
    
    if( !boxlist)
      boxlist = gene_boxlist();
    insert_box_into_list( box, boxlist);
  }while( pos < offset+(OPJ_OFF_T)length);

  return boxlist;
}
Example #4
0
box_param_t * gene_childboxbyOffset( box_param_t *superbox, OPJ_OFF_T offset)
{
  return gene_boxbyOffset( superbox->fd, get_DBoxoff( superbox)+offset);
}
Example #5
0
box_param_t * gene_childboxbyOffset( box_param_t *superbox, Byte8_t offset)
{
  return gene_boxbyOffset( superbox->fd, get_DBoxoff( superbox)+offset);
}