Exemplo n.º 1
0
int main(int argc,char *argv[])
{
  msgqueue_param_t *msgqueue;
  int infd, outfd;
  Byte8_t jptlen, j2klen;
  struct stat sb;
  Byte_t *jptstream, *j2kstream;
  
  if( argc < 3){
    fprintf( stderr, "Too few arguments:\n");
    fprintf( stderr, " - input  jpt file\n");
    fprintf( stderr, " - output j2k file\n");
    return -1;
  }

  if(( infd = open( argv[1], O_RDONLY)) == -1){
    fprintf( stderr, "file %s not exist\n", argv[1]);
    return -1;
  }
  
  if( fstat( infd, &sb) == -1){
    fprintf( stderr, "input file stream is broken\n");
    return -1;
  }
  jptlen = (Byte8_t)sb.st_size;

  jptstream = (Byte_t *)malloc( jptlen);

  if( read( infd, jptstream, jptlen) != jptlen){
    fprintf( stderr, "file reading error\n");
    free( jptstream);
    return -1;
  }
  close(infd);

  msgqueue = gene_msgqueue( true, NULL);
  parse_stream( jptstream, jptlen, 0, msgqueue);
  
  //print_msgqueue( msgqueue);

  j2kstream = recons_j2k( msgqueue, jptstream, msgqueue->first->csn, 0, &j2klen);
  
  delete_msgqueue( &msgqueue);
  free( jptstream);


  if(( outfd = open( argv[2], O_WRONLY|O_CREAT, S_IRWXU|S_IRWXG)) == -1){
    fprintf( stderr, "file %s open error\n", argv[2]);
    return -1;
  }
  
  if( write( outfd, j2kstream, j2klen) != j2klen)
    fprintf( stderr, "j2k file write error\n");

  free( j2kstream);
  close(outfd);

  return 0;
}
Exemplo n.º 2
0
void end_QRprocess( server_record_t *rec, QR_t **qr)
{
  /* TODO: record client preferences if necessary*/
  (void)rec; /* unused */
  delete_query( &((*qr)->query));
  delete_msgqueue( &((*qr)->msgqueue));
  opj_free( *qr);
}
Exemplo n.º 3
0
void OPJ_CALLCONV terminate_dec_server( dec_server_record_t **rec)
{
  delete_cachelist( &(*rec)->cachelist);  
  opj_free( (*rec)->jpipstream);
  
  if( (*rec)->msgqueue)
    delete_msgqueue( &((*rec)->msgqueue));

  if( close_socket( (*rec)->listening_socket) != 0)
    perror("close");
  
  opj_free( *rec);
}
Exemplo n.º 4
0
OPJ_BOOL OPJ_CALLCONV fwrite_jp2k( const char fname[], jpip_dec_param_t *dec)
{
  int outfd;
  
#ifdef _WIN32
  if(( outfd = open( fname, O_WRONLY|O_CREAT, _S_IREAD | _S_IWRITE)) == -1){
#else
 if(( outfd = open( fname, O_WRONLY|O_CREAT, S_IRWXU|S_IRWXG)) == -1){
#endif
   fprintf( stderr, "file %s open error\n", fname);
   return OPJ_FALSE;
 }
  
 if( write( outfd, dec->jp2kstream, dec->jp2klen) != (int)dec->jp2klen)
   fprintf( stderr, "j2k file write error\n");

 close(outfd);

 return OPJ_TRUE;
}

void OPJ_CALLCONV output_log( OPJ_BOOL messages, OPJ_BOOL metadata, OPJ_BOOL ihdrbox, jpip_dec_param_t *dec)
{
  if( messages)
    print_msgqueue( dec->msgqueue);

  if( metadata)
    print_allmetadata( dec->metadatalist);

  if( ihdrbox){
    printf("W*H: %d*%d\n", dec->ihdrbox->height, dec->ihdrbox->width);
    printf("NC: %d, bpc: %d\n", dec->ihdrbox->nc, dec->ihdrbox->bpc);
  }
}

void OPJ_CALLCONV destroy_jpipdecoder( jpip_dec_param_t **dec)
{
  opj_free( (*dec)->jpipstream);
  delete_msgqueue( &(*dec)->msgqueue);
  if( (*dec)->metadatalist){
    delete_metadatalist( &(*dec)->metadatalist);
    opj_free( (*dec)->ihdrbox);
  }

  opj_free( (*dec)->jp2kstream);
  opj_free( *dec);
}