[trunk] continue work on getting API to use off_t instead of long toward LFS support in JPIP (index_manager)

This commit is contained in:
Mathieu Malaterre 2012-03-26 13:34:16 +00:00
parent cc47b5a78c
commit 50a68d7d59
3 changed files with 20 additions and 20 deletions

View File

@ -79,7 +79,7 @@ index_param_t * parse_jp2file( int fd)
boxlist_param_t *toplev_boxlist; boxlist_param_t *toplev_boxlist;
Byte8_t filesize; Byte8_t filesize;
if( !(filesize = get_filesize( fd))) if( !(filesize = (Byte8_t)get_filesize( fd)))
return NULL; return NULL;
if( !(toplev_boxlist = get_boxstructure( fd, 0, filesize))){ if( !(toplev_boxlist = get_boxstructure( fd, 0, filesize))){
@ -225,7 +225,7 @@ bool check_JP2boxidx( boxlist_param_t *toplev_boxlist)
prxy = gene_childboxbyType( fidx, 0, "prxy"); prxy = gene_childboxbyType( fidx, 0, "prxy");
off = fetch_DBox8bytebigendian( iptr, 0); off = fetch_DBox8bytebigendian( iptr, 0);
if( off != fidx->offset) if( off != (Byte8_t)fidx->offset)
fprintf( FCGI_stderr, "Reference File Index box offset in Index Finder box not correct\n"); fprintf( FCGI_stderr, "Reference File Index box offset in Index Finder box not correct\n");
len = fetch_DBox8bytebigendian( iptr, 8); len = fetch_DBox8bytebigendian( iptr, 8);
@ -234,7 +234,7 @@ bool check_JP2boxidx( boxlist_param_t *toplev_boxlist)
pos = 0; pos = 0;
ooff = fetch_DBox8bytebigendian( prxy, pos); ooff = fetch_DBox8bytebigendian( prxy, pos);
if( ooff != jp2c->offset) if( ooff != (Byte8_t)jp2c->offset)
fprintf( FCGI_stderr, "Reference jp2c offset in prxy box not correct\n"); fprintf( FCGI_stderr, "Reference jp2c offset in prxy box not correct\n");
pos += 8; pos += 8;
@ -252,7 +252,7 @@ bool check_JP2boxidx( boxlist_param_t *toplev_boxlist)
pos += 1; pos += 1;
ioff = fetch_DBox8bytebigendian( prxy, pos); ioff = fetch_DBox8bytebigendian( prxy, pos);
if( ioff != cidx->offset) if( ioff != (Byte8_t)cidx->offset)
fprintf( FCGI_stderr, "Reference cidx offset in prxy box not correct\n"); fprintf( FCGI_stderr, "Reference cidx offset in prxy box not correct\n");
pos += 8; pos += 8;
@ -390,7 +390,7 @@ bool set_cptrdata( box_param_t *cidx_box, index_param_t *jp2idx)
return false; return false;
} }
jp2idx->offset = fetch_DBox8bytebigendian( box, 4); jp2idx->offset = (OPJ_OFF_T)fetch_DBox8bytebigendian( box, 4);
jp2idx->length = fetch_DBox8bytebigendian( box, 12); jp2idx->length = fetch_DBox8bytebigendian( box, 12);
free( box); free( box);
@ -478,7 +478,8 @@ bool set_thixdata( box_param_t *cidx_box, index_param_t *jp2idx)
manfbox_param_t *manf; manfbox_param_t *manf;
boxheader_param_t *ptr; boxheader_param_t *ptr;
mhixbox_param_t *mhix; mhixbox_param_t *mhix;
Byte8_t pos, mhixseqoff; Byte8_t pos;
OPJ_OFF_T mhixseqoff;
Byte2_t tile_no; Byte2_t tile_no;
if( !(thix_box = gene_boxbyType( cidx_box->fd, get_DBoxoff( cidx_box), get_DBoxlen( cidx_box), "thix"))){ if( !(thix_box = gene_boxbyType( cidx_box->fd, get_DBoxoff( cidx_box), get_DBoxlen( cidx_box), "thix"))){
@ -494,13 +495,13 @@ bool set_thixdata( box_param_t *cidx_box, index_param_t *jp2idx)
manf = gene_manfbox( manf_box); manf = gene_manfbox( manf_box);
ptr = manf->first; ptr = manf->first;
mhixseqoff = manf_box->offset+manf_box->length; mhixseqoff = manf_box->offset+(OPJ_OFF_T)manf_box->length;
pos = 0; pos = 0;
tile_no = 0; tile_no = 0;
jp2idx->tileheader = (mhixbox_param_t **)malloc( jp2idx->SIZ.XTnum*jp2idx->SIZ.YTnum*sizeof(mhixbox_param_t *)); jp2idx->tileheader = (mhixbox_param_t **)malloc( jp2idx->SIZ.XTnum*jp2idx->SIZ.YTnum*sizeof(mhixbox_param_t *));
while( ptr){ while( ptr){
if( !(mhix_box = gene_boxbyType( thix_box->fd, mhixseqoff+pos, get_DBoxlen( thix_box)-manf_box->length-pos, "mhix"))){ if( !(mhix_box = gene_boxbyType( thix_box->fd, mhixseqoff+(OPJ_OFF_T)pos, get_DBoxlen( thix_box)-manf_box->length-pos, "mhix"))){
fprintf( FCGI_stderr, "Error: mhix box not present in thix box\n"); fprintf( FCGI_stderr, "Error: mhix box not present in thix box\n");
delete_manfbox( &manf); delete_manfbox( &manf);
free( manf_box); free( manf_box);
@ -529,7 +530,7 @@ bool set_ppixdata( box_param_t *cidx_box, index_param_t *jp2idx)
manfbox_param_t *manf; /**< manf*/ manfbox_param_t *manf; /**< manf*/
boxheader_param_t *bh; /**< box headers*/ boxheader_param_t *bh; /**< box headers*/
faixbox_param_t *faix; /**< faix*/ faixbox_param_t *faix; /**< faix*/
Byte8_t inbox_offset; OPJ_OFF_T inbox_offset;
int comp_idx; int comp_idx;
if( !(ppix_box = gene_boxbyType( cidx_box->fd, get_DBoxoff( cidx_box), get_DBoxlen( cidx_box), "ppix"))){ if( !(ppix_box = gene_boxbyType( cidx_box->fd, get_DBoxoff( cidx_box), get_DBoxlen( cidx_box), "ppix"))){
@ -548,7 +549,7 @@ bool set_ppixdata( box_param_t *cidx_box, index_param_t *jp2idx)
manf = gene_manfbox( manf_box); manf = gene_manfbox( manf_box);
bh = search_boxheader( "faix", manf); bh = search_boxheader( "faix", manf);
inbox_offset = manf_box->offset + manf_box->length; inbox_offset = manf_box->offset + (OPJ_OFF_T)manf_box->length;
free( manf_box); free( manf_box);
@ -568,7 +569,7 @@ bool set_ppixdata( box_param_t *cidx_box, index_param_t *jp2idx)
faix = gene_faixbox( faix_box); faix = gene_faixbox( faix_box);
jp2idx->precpacket[comp_idx] = faix; jp2idx->precpacket[comp_idx] = faix;
inbox_offset = faix_box->offset + faix_box->length; inbox_offset = faix_box->offset + (OPJ_OFF_T)faix_box->length;
free( faix_box); free( faix_box);
} }
@ -577,7 +578,6 @@ bool set_ppixdata( box_param_t *cidx_box, index_param_t *jp2idx)
return true; return true;
} }
bool set_SIZmkrdata( markeridx_param_t *sizmkidx, codestream_param_t codestream, SIZmarker_param_t *SIZ) bool set_SIZmkrdata( markeridx_param_t *sizmkidx, codestream_param_t codestream, SIZmarker_param_t *SIZ)
{ {
marker_param_t sizmkr; marker_param_t sizmkr;
@ -634,13 +634,13 @@ bool set_CODmkrdata( markeridx_param_t *codmkidx, codestream_param_t codestream,
COD->numOfdecomp = fetch_marker1byte( codmkr, 7); COD->numOfdecomp = fetch_marker1byte( codmkr, 7);
if(COD->Scod & 0x01){ if(COD->Scod & 0x01){
COD->XPsiz = (Byte4_t *)malloc( (COD->numOfdecomp+1)*sizeof(Byte4_t)); COD->XPsiz = (Byte4_t *)malloc( (OPJ_SIZE_T)(COD->numOfdecomp+1)*sizeof(Byte4_t));
COD->YPsiz = (Byte4_t *)malloc( (COD->numOfdecomp+1)*sizeof(Byte4_t)); COD->YPsiz = (Byte4_t *)malloc( (OPJ_SIZE_T)(COD->numOfdecomp+1)*sizeof(Byte4_t));
for( i=0; i<=COD->numOfdecomp; i++){ for( i=0; i<=COD->numOfdecomp; i++){
/*precinct size*/ /*precinct size*/
COD->XPsiz[i] = pow( 2, fetch_marker1byte( codmkr, 12+i) & 0x0F); COD->XPsiz[i] = (Byte2_t)pow( 2, fetch_marker1byte( codmkr, 12+i) & 0x0F);
COD->YPsiz[i] = pow( 2,(fetch_marker1byte( codmkr, 12+i) & 0xF0) >> 4); COD->YPsiz[i] = (Byte2_t)pow( 2,(fetch_marker1byte( codmkr, 12+i) & 0xF0) >> 4);
} }
} }
else{ else{
@ -684,8 +684,8 @@ range_param_t get_tile_range( Byte4_t Osiz, Byte4_t siz, Byte4_t TOsiz, Byte4_t
range.maxvalue = min( siz, TOsiz+(tile_XYid+1)*Tsiz); range.maxvalue = min( siz, TOsiz+(tile_XYid+1)*Tsiz);
for( n=0; n<level; n++){ for( n=0; n<level; n++){
range.minvalue = ceil(range.minvalue/2.0); range.minvalue = (Byte4_t)ceil(range.minvalue/2.0);
range.maxvalue = ceil(range.maxvalue/2.0); range.maxvalue = (Byte4_t)ceil(range.maxvalue/2.0);
} }
return range; return range;
} }

View File

@ -81,7 +81,7 @@ typedef struct CODmarker_param{
/** index parameters*/ /** index parameters*/
typedef struct index_param{ typedef struct index_param{
metadatalist_param_t *metadatalist; /**< metadata-bin list*/ metadatalist_param_t *metadatalist; /**< metadata-bin list*/
Byte8_t offset; /**< codestream offset*/ OPJ_OFF_T offset; /**< codestream offset*/
Byte8_t length; /**< codestream length */ Byte8_t length; /**< codestream length */
Byte8_t mhead_length; /**< main header length */ Byte8_t mhead_length; /**< main header length */
SIZmarker_param_t SIZ; /**< SIZ marker information*/ SIZmarker_param_t SIZ; /**< SIZ marker information*/

View File

@ -38,7 +38,7 @@
typedef struct markeridx_param{ typedef struct markeridx_param{
Byte2_t code; /**< marker code*/ Byte2_t code; /**< marker code*/
Byte2_t num_remain; /**< remining number of the same marker index segments listed immediately*/ Byte2_t num_remain; /**< remining number of the same marker index segments listed immediately*/
Byte8_t offset; /**< offset relative to the start of the*/ OPJ_OFF_T offset; /**< offset relative to the start of the*/
/**codestream ( including the length*/ /**codestream ( including the length*/
/**parameter but not the marker itself)*/ /**parameter but not the marker itself)*/
Byte2_t length; /**< marker segment length*/ Byte2_t length; /**< marker segment length*/