Reformat whole codebase with astyle.options (#128)
[openjpeg.git] / src / lib / openjpip / jpip_parser.c
index db0408e66c6ab111ef7c963e97f02ad01b5d26ca..e921e92bad8337ce0d934feb6d9faa8ec64347cf 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
  * Copyright (c) 2002-2014, Professor Benoit Macq
- * Copyright (c) 2010-2011, Kaori Hagihara 
+ * Copyright (c) 2010-2011, Kaori Hagihara
  * Copyright (c) 2011,      Lucian Corlaciu, GSoC
  * All rights reserved.
  *
 #endif /*SERVER*/
 
 
-OPJ_BOOL identify_target( query_param_t query_param, targetlist_param_t *targetlist, target_param_t **target)
+OPJ_BOOL identify_target(query_param_t query_param,
+                         targetlist_param_t *targetlist, target_param_t **target)
 {
-  if( query_param.tid){
-    if( strcmp( query_param.tid, "0") != 0 ){
-      if( query_param.cid[0] != '\0'){
-       fprintf( FCGI_stdout, "Reason: Target can not be specified both through tid and cid\r\n");
-       fprintf( FCGI_stdout, "Status: 400\r\n");
-       return OPJ_FALSE;
-      }
-      if( ( *target = search_targetBytid( query_param.tid, targetlist)))
-       return OPJ_TRUE;
+    if (query_param.tid) {
+        if (strcmp(query_param.tid, "0") != 0) {
+            if (query_param.cid[0] != '\0') {
+                fprintf(FCGI_stdout,
+                        "Reason: Target can not be specified both through tid and cid\r\n");
+                fprintf(FCGI_stdout, "Status: 400\r\n");
+                return OPJ_FALSE;
+            }
+            if ((*target = search_targetBytid(query_param.tid, targetlist))) {
+                return OPJ_TRUE;
+            }
+        }
     }
-  }
 
-  if( query_param.target)
-    if( !( *target = search_target( query_param.target, targetlist)))
-      if(!( *target = gene_target( targetlist, query_param.target)))
-       return OPJ_FALSE;
-
-  if( *target){
-    fprintf( FCGI_stdout, "JPIP-tid: %s\r\n", (*target)->tid);
-    return OPJ_TRUE;
-  }
-  else{
-    fprintf( FCGI_stdout, "Reason: target not found\r\n");
-    fprintf( FCGI_stdout, "Status: 400\r\n");
-    return OPJ_FALSE;
-  }
+    if (query_param.target)
+        if (!(*target = search_target(query_param.target, targetlist)))
+            if (!(*target = gene_target(targetlist, query_param.target))) {
+                return OPJ_FALSE;
+            }
+
+    if (*target) {
+        fprintf(FCGI_stdout, "JPIP-tid: %s\r\n", (*target)->tid);
+        return OPJ_TRUE;
+    } else {
+        fprintf(FCGI_stdout, "Reason: target not found\r\n");
+        fprintf(FCGI_stdout, "Status: 400\r\n");
+        return OPJ_FALSE;
+    }
 }
 
-OPJ_BOOL associate_channel( query_param_t    query_param, 
-                       sessionlist_param_t *sessionlist,
-                       session_param_t **cursession, 
-                       channel_param_t **curchannel)
+OPJ_BOOL associate_channel(query_param_t    query_param,
+                           sessionlist_param_t *sessionlist,
+                           session_param_t **cursession,
+                           channel_param_t **curchannel)
 {
-  if( search_session_and_channel( query_param.cid, sessionlist, cursession, curchannel)){
-    
-    if( !query_param.cnew)
-      set_channel_variable_param( query_param, *curchannel);
-  }
-  else{
-    fprintf( FCGI_stderr, "Error: process canceled\n");
-    return OPJ_FALSE;
-  }
-  return OPJ_TRUE;
+    if (search_session_and_channel(query_param.cid, sessionlist, cursession,
+                                   curchannel)) {
+
+        if (!query_param.cnew) {
+            set_channel_variable_param(query_param, *curchannel);
+        }
+    } else {
+        fprintf(FCGI_stderr, "Error: process canceled\n");
+        return OPJ_FALSE;
+    }
+    return OPJ_TRUE;
 }
 
-OPJ_BOOL open_channel( query_param_t query_param, 
-                  sessionlist_param_t *sessionlist,
-                  auxtrans_param_t auxtrans,
-                  target_param_t *target,
-                  session_param_t **cursession, 
-                  channel_param_t **curchannel)
+OPJ_BOOL open_channel(query_param_t query_param,
+                      sessionlist_param_t *sessionlist,
+                      auxtrans_param_t auxtrans,
+                      target_param_t *target,
+                      session_param_t **cursession,
+                      channel_param_t **curchannel)
 {
-  cachemodel_param_t *cachemodel = NULL;
-
-  if( target){
-    if( !(*cursession))
-      *cursession = gene_session( sessionlist);
-    if( !( cachemodel = search_cachemodel( target, (*cursession)->cachemodellist)))
-      if( !(cachemodel = gene_cachemodel( (*cursession)->cachemodellist, target, query_param.return_type==JPPstream)))
-       return OPJ_FALSE;
-  }
-  else
-    if( *curchannel)
-      cachemodel = (*curchannel)->cachemodel;
-
-  *curchannel = gene_channel( query_param, auxtrans, cachemodel, (*cursession)->channellist);
-  if( *curchannel == NULL)
-    return OPJ_FALSE;
-
-  return OPJ_TRUE;
+    cachemodel_param_t *cachemodel = NULL;
+
+    if (target) {
+        if (!(*cursession)) {
+            *cursession = gene_session(sessionlist);
+        }
+        if (!(cachemodel = search_cachemodel(target, (*cursession)->cachemodellist)))
+            if (!(cachemodel = gene_cachemodel((*cursession)->cachemodellist, target,
+                                               query_param.return_type == JPPstream))) {
+                return OPJ_FALSE;
+            }
+    } else if (*curchannel) {
+        cachemodel = (*curchannel)->cachemodel;
+    }
+
+    *curchannel = gene_channel(query_param, auxtrans, cachemodel,
+                               (*cursession)->channellist);
+    if (*curchannel == NULL) {
+        return OPJ_FALSE;
+    }
+
+    return OPJ_TRUE;
 }
 
-OPJ_BOOL close_channel( query_param_t query_param, 
-                   sessionlist_param_t *sessionlist,
-                   session_param_t **cursession, 
-                   channel_param_t **curchannel)
+OPJ_BOOL close_channel(query_param_t query_param,
+                       sessionlist_param_t *sessionlist,
+                       session_param_t **cursession,
+                       channel_param_t **curchannel)
 {
-  char *cclose;
-  int i;
-  
-  if( query_param.cclose[0] =='*'){
+    char *cclose;
+    int i;
+
+    if (query_param.cclose[0] == '*') {
 #ifndef SERVER
-    fprintf( logstream, "local log: close all\n");
+        fprintf(logstream, "local log: close all\n");
 #endif
-    /* all channels associatd with the session will be closed */
-    if( !delete_session( cursession, sessionlist))
-      return OPJ_FALSE;
-  }
-  else{
-    /* check if all entry belonging to the same session */
-    
-    for( i=0, cclose=query_param.cclose; i<query_param.numOfcclose; i++, cclose += (strlen(cclose)+1)){
-      
-      /* In case of the first entry of close cid */
-      if( *cursession == NULL){
-       if( !search_session_and_channel( cclose, sessionlist, cursession, curchannel))
-         return OPJ_FALSE;
-      }
-      else /* second or more entry of close cid */
-       if( !(*curchannel=search_channel( cclose, (*cursession)->channellist))){
-         fprintf( FCGI_stdout, "Reason: Cclose id %s is from another session\r\n", cclose); 
-         return OPJ_FALSE;
-       }
-    }
-
-    /* delete channels */
-    for( i=0, cclose=query_param.cclose; i<query_param.numOfcclose; i++, cclose += (strlen(cclose)+1)){
-      *curchannel = search_channel( cclose, (*cursession)->channellist);
-      delete_channel( curchannel, (*cursession)->channellist);
+        /* all channels associatd with the session will be closed */
+        if (!delete_session(cursession, sessionlist)) {
+            return OPJ_FALSE;
+        }
+    } else {
+        /* check if all entry belonging to the same session */
+
+        for (i = 0, cclose = query_param.cclose; i < query_param.numOfcclose;
+                i++, cclose += (strlen(cclose) + 1)) {
+
+            /* In case of the first entry of close cid */
+            if (*cursession == NULL) {
+                if (!search_session_and_channel(cclose, sessionlist, cursession, curchannel)) {
+                    return OPJ_FALSE;
+                }
+            } else /* second or more entry of close cid */
+                if (!(*curchannel = search_channel(cclose, (*cursession)->channellist))) {
+                    fprintf(FCGI_stdout, "Reason: Cclose id %s is from another session\r\n",
+                            cclose);
+                    return OPJ_FALSE;
+                }
+        }
+
+        /* delete channels */
+        for (i = 0, cclose = query_param.cclose; i < query_param.numOfcclose;
+                i++, cclose += (strlen(cclose) + 1)) {
+            *curchannel = search_channel(cclose, (*cursession)->channellist);
+            delete_channel(curchannel, (*cursession)->channellist);
+        }
+
+        if ((*cursession)->channellist->first == NULL ||
+                (*cursession)->channellist->last == NULL)
+            /* In case of empty session */
+        {
+            delete_session(cursession, sessionlist);
+        }
     }
-    
-    if( (*cursession)->channellist->first == NULL || (*cursession)->channellist->last == NULL)
-      /* In case of empty session */
-      delete_session( cursession, sessionlist);
-  }
-  return OPJ_TRUE;
+    return OPJ_TRUE;
 }
 
 
@@ -171,74 +185,82 @@ OPJ_BOOL close_channel( query_param_t query_param,
  * enqueue tiles or precincts into the message queue
  *
  * @param[in] query_param structured query
- * @param[in] msgqueue    message queue pointer  
+ * @param[in] msgqueue    message queue pointer
  */
-void enqueue_imagedata( query_param_t query_param, msgqueue_param_t *msgqueue);
+void enqueue_imagedata(query_param_t query_param, msgqueue_param_t *msgqueue);
 
 /**
  * enqueue metadata bins into the message queue
  *
  * @param[in]     query_param  structured query
  * @param[in]     metadatalist pointer to metadata bin list
- * @param[in,out] msgqueue     message queue pointer  
+ * @param[in,out] msgqueue     message queue pointer
  * @return                     if succeeded (true) or failed (false)
  */
-OPJ_BOOL enqueue_metabins( query_param_t query_param, metadatalist_param_t *metadatalist, msgqueue_param_t *msgqueue);
+OPJ_BOOL enqueue_metabins(query_param_t query_param,
+                          metadatalist_param_t *metadatalist, msgqueue_param_t *msgqueue);
 
 
-OPJ_BOOL gene_JPIPstream( query_param_t query_param,
-                     target_param_t *target,
-                     session_param_t *cursession, 
-                     channel_param_t *curchannel,
-                     msgqueue_param_t **msgqueue)
+OPJ_BOOL gene_JPIPstream(query_param_t query_param,
+                         target_param_t *target,
+                         session_param_t *cursession,
+                         channel_param_t *curchannel,
+                         msgqueue_param_t **msgqueue)
 {
-  index_param_t *codeidx;
-  cachemodel_param_t *cachemodel;
-  
-  if( !cursession || !curchannel){ /* stateless */
-    if( !target)
-      return OPJ_FALSE;
-    if( !(cachemodel = gene_cachemodel( NULL, target, query_param.return_type==JPPstream)))
-      return OPJ_FALSE;
-    *msgqueue = gene_msgqueue( OPJ_TRUE, cachemodel);
-  }
-  else{ /* session */
-    cachemodel  = curchannel->cachemodel;
-    target = cachemodel->target;
-    *msgqueue = gene_msgqueue( OPJ_FALSE, cachemodel);
-  }
-  
-  codeidx = target->codeidx;
-
-  if( cachemodel->jppstream)
-    fprintf( FCGI_stdout, "Content-type: image/jpp-stream\r\n");
-  else
-    fprintf( FCGI_stdout, "Content-type: image/jpt-stream\r\n");
-  
-  if( query_param.layers != -1){
-    if( query_param.layers  > codeidx->COD.numOflayers){
-      fprintf( FCGI_stdout, "JPIP-layers: %d\r\n", codeidx->COD.numOflayers);
-      query_param.layers = codeidx->COD.numOflayers;
+    index_param_t *codeidx;
+    cachemodel_param_t *cachemodel;
+
+    if (!cursession || !curchannel) { /* stateless */
+        if (!target) {
+            return OPJ_FALSE;
+        }
+        if (!(cachemodel = gene_cachemodel(NULL, target,
+                                           query_param.return_type == JPPstream))) {
+            return OPJ_FALSE;
+        }
+        *msgqueue = gene_msgqueue(OPJ_TRUE, cachemodel);
+    } else { /* session */
+        cachemodel  = curchannel->cachemodel;
+        target = cachemodel->target;
+        *msgqueue = gene_msgqueue(OPJ_FALSE, cachemodel);
     }
-  }
-
-  /*meta*/
-  if( query_param.box_type[0][0] != 0  && query_param.len != 0)
-    if( !enqueue_metabins( query_param, codeidx->metadatalist, *msgqueue))
-      return OPJ_FALSE;
-  
-  if( query_param.metadata_only)
-    return OPJ_TRUE;
 
-  /* main header */
-  if( !cachemodel->mhead_model && query_param.len != 0)
-      enqueue_mainheader( *msgqueue);
+    codeidx = target->codeidx;
+
+    if (cachemodel->jppstream) {
+        fprintf(FCGI_stdout, "Content-type: image/jpp-stream\r\n");
+    } else {
+        fprintf(FCGI_stdout, "Content-type: image/jpt-stream\r\n");
+    }
+
+    if (query_param.layers != -1) {
+        if (query_param.layers  > codeidx->COD.numOflayers) {
+            fprintf(FCGI_stdout, "JPIP-layers: %d\r\n", codeidx->COD.numOflayers);
+            query_param.layers = codeidx->COD.numOflayers;
+        }
+    }
 
-  /* image codestream */
-  if( (query_param.fx > 0 && query_param.fy > 0))
-    enqueue_imagedata( query_param, *msgqueue);
-  
-  return OPJ_TRUE;
+    /*meta*/
+    if (query_param.box_type[0][0] != 0  && query_param.len != 0)
+        if (!enqueue_metabins(query_param, codeidx->metadatalist, *msgqueue)) {
+            return OPJ_FALSE;
+        }
+
+    if (query_param.metadata_only) {
+        return OPJ_TRUE;
+    }
+
+    /* main header */
+    if (!cachemodel->mhead_model && query_param.len != 0) {
+        enqueue_mainheader(*msgqueue);
+    }
+
+    /* image codestream */
+    if ((query_param.fx > 0 && query_param.fy > 0)) {
+        enqueue_imagedata(query_param, *msgqueue);
+    }
+
+    return OPJ_TRUE;
 }
 
 
@@ -257,7 +279,9 @@ OPJ_BOOL gene_JPIPstream( query_param_t query_param,
  * @param[in] msgqueue  message queue
  * @return
  */
-void enqueue_precincts( int xmin, int xmax, int ymin, int ymax, int tile_id, int level, int lastcomp, OPJ_BOOL *comps, int layers, msgqueue_param_t *msgqueue);
+void enqueue_precincts(int xmin, int xmax, int ymin, int ymax, int tile_id,
+                       int level, int lastcomp, OPJ_BOOL *comps, int layers,
+                       msgqueue_param_t *msgqueue);
 
 /**
  * enqueue all precincts inside a tile into the queue
@@ -270,191 +294,219 @@ void enqueue_precincts( int xmin, int xmax, int ymin, int ymax, int tile_id, int
  * @param[in] msgqueue  message queue
  * @return
  */
-void enqueue_allprecincts( int tile_id, int level, int lastcomp, OPJ_BOOL *comps, int layers, msgqueue_param_t *msgqueue);
+void enqueue_allprecincts(int tile_id, int level, int lastcomp, OPJ_BOOL *comps,
+                          int layers, msgqueue_param_t *msgqueue);
 
-void enqueue_imagedata( query_param_t query_param, msgqueue_param_t *msgqueue)
+void enqueue_imagedata(query_param_t query_param, msgqueue_param_t *msgqueue)
 {
-  index_param_t *codeidx;
-  imgreg_param_t imgreg;
-  range_param_t tile_Xrange, tile_Yrange;
-  Byte4_t u, v, tile_id;
-  int xmin, xmax, ymin, ymax;
-  int numOfreslev;
-
-  codeidx = msgqueue->cachemodel->target->codeidx;
-
-  if( !(msgqueue->cachemodel->jppstream)  &&  get_nmax( codeidx->tilepart) == 1) /* normally not the case */
-    numOfreslev = 1;
-  else
-    numOfreslev = codeidx->COD.numOfdecomp+1;
-
-  imgreg  = map_viewin2imgreg( query_param.fx, query_param.fy, 
-                              query_param.rx, query_param.ry, query_param.rw, query_param.rh,
-                              (int)codeidx->SIZ.XOsiz, (int)codeidx->SIZ.YOsiz, (int)codeidx->SIZ.Xsiz, (int)codeidx->SIZ.Ysiz, 
-                              numOfreslev );
-
-  if( query_param.len == 0)
-    return;
-
-  for( u=0, tile_id=0; u<codeidx->SIZ.YTnum; u++){
-    tile_Yrange = get_tile_Yrange( codeidx->SIZ, tile_id, imgreg.level);
-    
-    for( v=0; v<codeidx->SIZ.XTnum; v++, tile_id++){
-      tile_Xrange = get_tile_Xrange( codeidx->SIZ, tile_id, imgreg.level);
-       
-      if( tile_Xrange.minvalue < tile_Xrange.maxvalue && tile_Yrange.minvalue < tile_Yrange.maxvalue){
-       if( tile_Xrange.maxvalue <= (Byte4_t)(imgreg.xosiz + imgreg.ox) || 
-           tile_Xrange.minvalue >= (Byte4_t)(imgreg.xosiz + imgreg.ox + imgreg.sx) ||
-           tile_Yrange.maxvalue <= (Byte4_t)(imgreg.yosiz + imgreg.oy) || 
-           tile_Yrange.minvalue >= (Byte4_t)(imgreg.yosiz + imgreg.oy + imgreg.sy)) {
-         /*printf("Tile completely excluded from view-window %d\n", tile_id);*/
-         /* Tile completely excluded from view-window */
-       }
-       else if( tile_Xrange.minvalue >= (Byte4_t)(imgreg.xosiz + imgreg.ox) && 
-                      tile_Xrange.maxvalue <= (Byte4_t)(imgreg.xosiz + imgreg.ox + imgreg.sx) && 
-                      tile_Yrange.minvalue >= (Byte4_t)(imgreg.yosiz + imgreg.oy) && 
-                      tile_Yrange.maxvalue <= (Byte4_t)(imgreg.yosiz + imgreg.oy + imgreg.sy)) {
-         /* Tile completely contained within view-window */
-         /* high priority */
-         /*printf("Tile completely contained within view-window %d\n", tile_id);*/
-         if( msgqueue->cachemodel->jppstream){
-           enqueue_tileheader( (int)tile_id, msgqueue);
-           enqueue_allprecincts( (int)tile_id, imgreg.level, query_param.lastcomp, query_param.comps, query_param.layers, msgqueue);
-         }
-         else
-           enqueue_tile( tile_id, imgreg.level, msgqueue);
-       }
-       else{
-         /* Tile partially overlaps view-window */
-         /* low priority */
-         /*printf("Tile partially overlaps view-window %d\n", tile_id);*/
-         if( msgqueue->cachemodel->jppstream){
-           enqueue_tileheader( (int)tile_id, msgqueue);
-
-      /* FIXME: The following code is suspicious it implicitely cast an unsigned int to int, which truncates values */
-           xmin = tile_Xrange.minvalue >= (Byte4_t)(imgreg.xosiz + imgreg.ox) ? 0 : imgreg.xosiz + imgreg.ox - (int)tile_Xrange.minvalue;
-           xmax = tile_Xrange.maxvalue <= (Byte4_t)(imgreg.xosiz + imgreg.ox + imgreg.sx) ? (int)(tile_Xrange.maxvalue - tile_Xrange.minvalue -1) : (int)(imgreg.xosiz + imgreg.ox + imgreg.sx - (int)tile_Xrange.minvalue - 1);
-           ymin = tile_Yrange.minvalue >= (Byte4_t)(imgreg.yosiz + imgreg.oy) ? 0 : imgreg.yosiz + imgreg.oy - (int)tile_Yrange.minvalue;
-           ymax = tile_Yrange.maxvalue <= (Byte4_t)(imgreg.yosiz + imgreg.oy + imgreg.sy) ? (int)(tile_Yrange.maxvalue - tile_Yrange.minvalue - 1) : (int)(imgreg.yosiz + imgreg.oy + imgreg.sy - (int)tile_Yrange.minvalue - 1);
-           enqueue_precincts( xmin, xmax, ymin, ymax, (int)tile_id, imgreg.level, query_param.lastcomp, query_param.comps, query_param.layers, msgqueue);
-         }
-         else
-           enqueue_tile( tile_id, imgreg.level, msgqueue);
-       }
-      }
+    index_param_t *codeidx;
+    imgreg_param_t imgreg;
+    range_param_t tile_Xrange, tile_Yrange;
+    Byte4_t u, v, tile_id;
+    int xmin, xmax, ymin, ymax;
+    int numOfreslev;
+
+    codeidx = msgqueue->cachemodel->target->codeidx;
+
+    if (!(msgqueue->cachemodel->jppstream)  &&
+            get_nmax(codeidx->tilepart) == 1) { /* normally not the case */
+        numOfreslev = 1;
+    } else {
+        numOfreslev = codeidx->COD.numOfdecomp + 1;
+    }
+
+    imgreg  = map_viewin2imgreg(query_param.fx, query_param.fy,
+                                query_param.rx, query_param.ry, query_param.rw, query_param.rh,
+                                (int)codeidx->SIZ.XOsiz, (int)codeidx->SIZ.YOsiz, (int)codeidx->SIZ.Xsiz,
+                                (int)codeidx->SIZ.Ysiz,
+                                numOfreslev);
+
+    if (query_param.len == 0) {
+        return;
+    }
+
+    for (u = 0, tile_id = 0; u < codeidx->SIZ.YTnum; u++) {
+        tile_Yrange = get_tile_Yrange(codeidx->SIZ, tile_id, imgreg.level);
+
+        for (v = 0; v < codeidx->SIZ.XTnum; v++, tile_id++) {
+            tile_Xrange = get_tile_Xrange(codeidx->SIZ, tile_id, imgreg.level);
+
+            if (tile_Xrange.minvalue < tile_Xrange.maxvalue &&
+                    tile_Yrange.minvalue < tile_Yrange.maxvalue) {
+                if (tile_Xrange.maxvalue <= (Byte4_t)(imgreg.xosiz + imgreg.ox) ||
+                        tile_Xrange.minvalue >= (Byte4_t)(imgreg.xosiz + imgreg.ox + imgreg.sx) ||
+                        tile_Yrange.maxvalue <= (Byte4_t)(imgreg.yosiz + imgreg.oy) ||
+                        tile_Yrange.minvalue >= (Byte4_t)(imgreg.yosiz + imgreg.oy + imgreg.sy)) {
+                    /*printf("Tile completely excluded from view-window %d\n", tile_id);*/
+                    /* Tile completely excluded from view-window */
+                } else if (tile_Xrange.minvalue >= (Byte4_t)(imgreg.xosiz + imgreg.ox) &&
+                           tile_Xrange.maxvalue <= (Byte4_t)(imgreg.xosiz + imgreg.ox + imgreg.sx) &&
+                           tile_Yrange.minvalue >= (Byte4_t)(imgreg.yosiz + imgreg.oy) &&
+                           tile_Yrange.maxvalue <= (Byte4_t)(imgreg.yosiz + imgreg.oy + imgreg.sy)) {
+                    /* Tile completely contained within view-window */
+                    /* high priority */
+                    /*printf("Tile completely contained within view-window %d\n", tile_id);*/
+                    if (msgqueue->cachemodel->jppstream) {
+                        enqueue_tileheader((int)tile_id, msgqueue);
+                        enqueue_allprecincts((int)tile_id, imgreg.level, query_param.lastcomp,
+                                             query_param.comps, query_param.layers, msgqueue);
+                    } else {
+                        enqueue_tile(tile_id, imgreg.level, msgqueue);
+                    }
+                } else {
+                    /* Tile partially overlaps view-window */
+                    /* low priority */
+                    /*printf("Tile partially overlaps view-window %d\n", tile_id);*/
+                    if (msgqueue->cachemodel->jppstream) {
+                        enqueue_tileheader((int)tile_id, msgqueue);
+
+                        /* FIXME: The following code is suspicious it implicitely cast an unsigned int to int, which truncates values */
+                        xmin = tile_Xrange.minvalue >= (Byte4_t)(imgreg.xosiz + imgreg.ox) ? 0 :
+                               imgreg.xosiz + imgreg.ox - (int)tile_Xrange.minvalue;
+                        xmax = tile_Xrange.maxvalue <= (Byte4_t)(imgreg.xosiz + imgreg.ox + imgreg.sx)
+                               ? (int)(tile_Xrange.maxvalue - tile_Xrange.minvalue - 1) : (int)(
+                                   imgreg.xosiz + imgreg.ox + imgreg.sx - (int)tile_Xrange.minvalue - 1);
+                        ymin = tile_Yrange.minvalue >= (Byte4_t)(imgreg.yosiz + imgreg.oy) ? 0 :
+                               imgreg.yosiz + imgreg.oy - (int)tile_Yrange.minvalue;
+                        ymax = tile_Yrange.maxvalue <= (Byte4_t)(imgreg.yosiz + imgreg.oy + imgreg.sy)
+                               ? (int)(tile_Yrange.maxvalue - tile_Yrange.minvalue - 1) : (int)(
+                                   imgreg.yosiz + imgreg.oy + imgreg.sy - (int)tile_Yrange.minvalue - 1);
+                        enqueue_precincts(xmin, xmax, ymin, ymax, (int)tile_id, imgreg.level,
+                                          query_param.lastcomp, query_param.comps, query_param.layers, msgqueue);
+                    } else {
+                        enqueue_tile(tile_id, imgreg.level, msgqueue);
+                    }
+                }
+            }
+        }
     }
-  }
 }
 
 
-void enqueue_precincts( int xmin, int xmax, int ymin, int ymax, int tile_id, int level, int lastcomp, OPJ_BOOL *comps, int layers, msgqueue_param_t *msgqueue)
+void enqueue_precincts(int xmin, int xmax, int ymin, int ymax, int tile_id,
+                       int level, int lastcomp, OPJ_BOOL *comps, int layers,
+                       msgqueue_param_t *msgqueue)
 {
-  index_param_t *codeidx;
-  int c, u, v, res_lev, dec_lev;
-  int seq_id;
-  Byte4_t XTsiz, YTsiz;
-  Byte4_t XPsiz, YPsiz;
-  Byte4_t xminP, xmaxP, yminP, ymaxP;
-
-  codeidx  = msgqueue->cachemodel->target->codeidx;
-  /* MM: shouldn't xmin/xmax be Byte4_t instead ? */
-  if( xmin < 0 || xmax < 0 || ymin < 0 || ymax < 0)
-    return;
-  /* MM: I think the API should not really be int should it ? */
-  if( tile_id < 0 )
-    return;
-
-  for( c=0; c<codeidx->SIZ.Csiz; c++)
-    if( lastcomp == -1 /*all*/ || ( c<=lastcomp && comps[c])){
-      seq_id = 0;
-      for( res_lev=0, dec_lev=codeidx->COD.numOfdecomp; dec_lev>=level; res_lev++, dec_lev--){
-       
-       XTsiz = get_tile_XSiz( codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
-       YTsiz = get_tile_YSiz( codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
-       
-       XPsiz = ( codeidx->COD.Scod & 0x01) ? codeidx->COD.XPsiz[ res_lev] : XTsiz;
-       YPsiz = ( codeidx->COD.Scod & 0x01) ? codeidx->COD.YPsiz[ res_lev] : YTsiz;
-         
-       for( u=0; u<ceil((double)YTsiz/(double)YPsiz); u++){
-         yminP = (Byte4_t)u*YPsiz;
-         ymaxP = (Byte4_t)(u+1)*YPsiz-1;
-         if( YTsiz <= ymaxP)
-           ymaxP = YTsiz-1;
-         
-         for( v=0; v<ceil((double)XTsiz/(double)XPsiz); v++, seq_id++){
-           xminP = (Byte4_t)v*XPsiz;
-           xmaxP = (Byte4_t)(v+1)*XPsiz-1;
-           if( XTsiz <= xmaxP)
-             xmaxP = XTsiz-1;
-           
-           if( xmaxP < (Byte4_t)xmin || xminP > (Byte4_t)xmax || ymaxP < (Byte4_t)ymin || yminP > (Byte4_t)ymax){
-             /* Precinct completely excluded from view-window */
-           }
-           else if( xminP >= (Byte4_t)xmin && xmaxP <= (Byte4_t)xmax && yminP >= (Byte4_t)ymin && ymaxP <= (Byte4_t)ymax){
-             /* Precinct completely contained within view-window
-              high priority */
-             enqueue_precinct( seq_id, tile_id, c, (dec_lev>level)?-1:layers, msgqueue);
-           }
-           else{
-             /* Precinct partially overlaps view-window
-              low priority */
-             enqueue_precinct( seq_id, tile_id, c, (dec_lev>level)?-1:layers, msgqueue);
-           }
-         }
-       }
-      }
+    index_param_t *codeidx;
+    int c, u, v, res_lev, dec_lev;
+    int seq_id;
+    Byte4_t XTsiz, YTsiz;
+    Byte4_t XPsiz, YPsiz;
+    Byte4_t xminP, xmaxP, yminP, ymaxP;
+
+    codeidx  = msgqueue->cachemodel->target->codeidx;
+    /* MM: shouldn't xmin/xmax be Byte4_t instead ? */
+    if (xmin < 0 || xmax < 0 || ymin < 0 || ymax < 0) {
+        return;
+    }
+    /* MM: I think the API should not really be int should it ? */
+    if (tile_id < 0) {
+        return;
     }
+
+    for (c = 0; c < codeidx->SIZ.Csiz; c++)
+        if (lastcomp == -1 /*all*/ || (c <= lastcomp && comps[c])) {
+            seq_id = 0;
+            for (res_lev = 0, dec_lev = codeidx->COD.numOfdecomp; dec_lev >= level;
+                    res_lev++, dec_lev--) {
+
+                XTsiz = get_tile_XSiz(codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
+                YTsiz = get_tile_YSiz(codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
+
+                XPsiz = (codeidx->COD.Scod & 0x01) ? codeidx->COD.XPsiz[ res_lev] : XTsiz;
+                YPsiz = (codeidx->COD.Scod & 0x01) ? codeidx->COD.YPsiz[ res_lev] : YTsiz;
+
+                for (u = 0; u < ceil((double)YTsiz / (double)YPsiz); u++) {
+                    yminP = (Byte4_t)u * YPsiz;
+                    ymaxP = (Byte4_t)(u + 1) * YPsiz - 1;
+                    if (YTsiz <= ymaxP) {
+                        ymaxP = YTsiz - 1;
+                    }
+
+                    for (v = 0; v < ceil((double)XTsiz / (double)XPsiz); v++, seq_id++) {
+                        xminP = (Byte4_t)v * XPsiz;
+                        xmaxP = (Byte4_t)(v + 1) * XPsiz - 1;
+                        if (XTsiz <= xmaxP) {
+                            xmaxP = XTsiz - 1;
+                        }
+
+                        if (xmaxP < (Byte4_t)xmin || xminP > (Byte4_t)xmax || ymaxP < (Byte4_t)ymin ||
+                                yminP > (Byte4_t)ymax) {
+                            /* Precinct completely excluded from view-window */
+                        } else if (xminP >= (Byte4_t)xmin && xmaxP <= (Byte4_t)xmax &&
+                                   yminP >= (Byte4_t)ymin && ymaxP <= (Byte4_t)ymax) {
+                            /* Precinct completely contained within view-window
+                             high priority */
+                            enqueue_precinct(seq_id, tile_id, c, (dec_lev > level) ? -1 : layers, msgqueue);
+                        } else {
+                            /* Precinct partially overlaps view-window
+                             low priority */
+                            enqueue_precinct(seq_id, tile_id, c, (dec_lev > level) ? -1 : layers, msgqueue);
+                        }
+                    }
+                }
+            }
+        }
 }
 
-void enqueue_allprecincts( int tile_id, int level, int lastcomp, OPJ_BOOL *comps, int layers, msgqueue_param_t *msgqueue)
+void enqueue_allprecincts(int tile_id, int level, int lastcomp, OPJ_BOOL *comps,
+                          int layers, msgqueue_param_t *msgqueue)
 {
-  index_param_t *codeidx;
-  int c, i, res_lev, dec_lev;
-  int seq_id;
-  Byte4_t XTsiz, YTsiz;
-  Byte4_t XPsiz, YPsiz;
-
-  codeidx  = msgqueue->cachemodel->target->codeidx;
-  if( tile_id < 0 )
-    return;
-
-  for( c=0; c<codeidx->SIZ.Csiz; c++)
-    if( lastcomp == -1 /*all*/ || ( c<=lastcomp && comps[c])){
-      seq_id = 0;
-      for( res_lev=0, dec_lev=codeidx->COD.numOfdecomp; dec_lev>=level; res_lev++, dec_lev--){
-       
-       XTsiz = get_tile_XSiz( codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
-       YTsiz = get_tile_YSiz( codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
-       
-       XPsiz = ( codeidx->COD.Scod & 0x01) ? codeidx->COD.XPsiz[ res_lev] : XTsiz;
-       YPsiz = ( codeidx->COD.Scod & 0x01) ? codeidx->COD.YPsiz[ res_lev] : YTsiz;
-       
-       for( i=0; i<ceil((double)YTsiz/(double)YPsiz)*ceil((double)XTsiz/(double)XPsiz); i++, seq_id++)
-         enqueue_precinct( seq_id, tile_id, c, (dec_lev>level)?-1:layers, msgqueue);
-      }
+    index_param_t *codeidx;
+    int c, i, res_lev, dec_lev;
+    int seq_id;
+    Byte4_t XTsiz, YTsiz;
+    Byte4_t XPsiz, YPsiz;
+
+    codeidx  = msgqueue->cachemodel->target->codeidx;
+    if (tile_id < 0) {
+        return;
     }
+
+    for (c = 0; c < codeidx->SIZ.Csiz; c++)
+        if (lastcomp == -1 /*all*/ || (c <= lastcomp && comps[c])) {
+            seq_id = 0;
+            for (res_lev = 0, dec_lev = codeidx->COD.numOfdecomp; dec_lev >= level;
+                    res_lev++, dec_lev--) {
+
+                XTsiz = get_tile_XSiz(codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
+                YTsiz = get_tile_YSiz(codeidx->SIZ, (Byte4_t)tile_id, dec_lev);
+
+                XPsiz = (codeidx->COD.Scod & 0x01) ? codeidx->COD.XPsiz[ res_lev] : XTsiz;
+                YPsiz = (codeidx->COD.Scod & 0x01) ? codeidx->COD.YPsiz[ res_lev] : YTsiz;
+
+                for (i = 0;
+                        i < ceil((double)YTsiz / (double)YPsiz)*ceil((double)XTsiz / (double)XPsiz);
+                        i++, seq_id++) {
+                    enqueue_precinct(seq_id, tile_id, c, (dec_lev > level) ? -1 : layers,
+                                     msgqueue);
+                }
+            }
+        }
 }
 
-OPJ_BOOL enqueue_metabins( query_param_t query_param, metadatalist_param_t *metadatalist, msgqueue_param_t *msgqueue)
+OPJ_BOOL enqueue_metabins(query_param_t query_param,
+                          metadatalist_param_t *metadatalist, msgqueue_param_t *msgqueue)
 {
-  int i;
-  for( i=0; i<MAX_NUMOFBOX && query_param.box_type[i][0]!=0; i++){
-    if( query_param.box_type[i][0] == '*'){
-      fprintf( FCGI_stdout, "Status: 501\r\n");
-      fprintf( FCGI_stdout, "Reason: metareq with all box-property * not implemented\r\n");
-      return OPJ_FALSE;
+    int i;
+    for (i = 0; i < MAX_NUMOFBOX && query_param.box_type[i][0] != 0; i++) {
+        if (query_param.box_type[i][0] == '*') {
+            fprintf(FCGI_stdout, "Status: 501\r\n");
+            fprintf(FCGI_stdout,
+                    "Reason: metareq with all box-property * not implemented\r\n");
+            return OPJ_FALSE;
+        } else {
+            Byte8_t idx = search_metadataidx(query_param.box_type[i], metadatalist);
+
+            if (idx != (Byte8_t) - 1) {
+                enqueue_metadata(idx, msgqueue);
+            } else {
+                fprintf(FCGI_stdout, "Status: 400\r\n");
+                fprintf(FCGI_stdout, "Reason: box-type %.4s not found\r\n",
+                        query_param.box_type[i]);
+                return OPJ_FALSE;
+            }
+        }
     }
-    else{
-      Byte8_t idx = search_metadataidx( query_param.box_type[i], metadatalist);
-
-      if( idx != (Byte8_t)-1)
-       enqueue_metadata( idx, msgqueue);
-      else{
-       fprintf( FCGI_stdout, "Status: 400\r\n");
-       fprintf( FCGI_stdout, "Reason: box-type %.4s not found\r\n", query_param.box_type[i]);
-       return OPJ_FALSE;
-      }
-    }
-  }
-  return OPJ_TRUE;
+    return OPJ_TRUE;
 }