Reformat whole codebase with astyle.options (#128)
[openjpeg.git] / src / lib / openjp2 / phix_manager.c
index b4d5a40d7fed9f518aa6df297b7251dc163a24b3..796ce7eb6460c87d19b38986fb72731884b80d66 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * $Id: phix_manager.c 897 2011-08-28 21:43:57Z Kaori.Hagihara@gmail.com $
  *
- * Copyright (c) 2002-2011, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
- * Copyright (c) 2002-2011, Professor Benoit Macq
+ * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2014, Professor Benoit Macq
  * Copyright (c) 2003-2004, Yannick Verschueren
  * Copyright (c) 2010-2011, Kaori Hagihara
  * All rights reserved.
@@ -36,7 +36,7 @@
 #include "opj_includes.h"
 
 
-/* 
+/*
  * Write faix box of phix
  *
  * @param[in] coff      offset of j2k codestream
  * @return              length of faix box
  */
 
-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 )
+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];
-  int len, compno, i;
-  opj_jp2_box_t *box;
-  OPJ_OFF_T lenp = 0;
-
-  box = (opj_jp2_box_t *)opj_calloc( 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( i, cstr_info.numcomps, box, cio, p_manager );
-
-    for( compno=0; compno<cstr_info.numcomps; compno++){       
-      box[compno].length = opj_write_phixfaix( coff, compno, cstr_info, EPHused, j2klen, cio,p_manager);
-      box[compno].type = JPIP_FAIX;
+    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));
+    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_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);
     }
 
-    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);
+    opj_free(box);
 
-  return len;
+    return (int)len;
 }
 
 
-int opj_write_phixfaix( int coff, int compno, opj_codestream_info_t cstr_info, OPJ_BOOL EPHused, int j2klen, opj_stream_private_t *cio,
-              opj_event_mgr_t * p_manager )
+int opj_write_phixfaix(int coff, int compno, opj_codestream_info_t cstr_info,
+                       OPJ_BOOL EPHused, int j2klen, opj_stream_private_t *cio,
+                       opj_event_mgr_t * p_manager)
 {
-  int tileno, version, i, nmax, size_of_coding; /* 4 or 8 */
-  opj_tile_info_t *tile_Idx;
-  opj_packet_info_t packet;
-  int resno, precno, layno, num_packet;
-  int numOfres, numOfprec, numOflayers;
-  OPJ_BYTE l_data_header [8];
-  OPJ_OFF_T lenp;
-  OPJ_UINT32 len;
-
-  packet.end_ph_pos = packet.start_pos = -1;
-  (void)EPHused; /* unused ? */
-
-
-  if( j2klen > pow( 2, 32)){
-    size_of_coding =  8;
-    version = 1;
-  }
-  else{
-    size_of_coding = 4;
-    version = 0;
-  }
-
-  lenp = opj_stream_tell(cio);
-  opj_stream_skip(cio, 4, p_manager);         /* L [at the end]      */
-  opj_write_bytes(l_data_header,JPIP_FAIX,4); /* FAIX */
-  opj_stream_write_data(cio,l_data_header,4,p_manager);
-  opj_write_bytes(l_data_header,version,1);   /* Version 0 = 4 bytes */
-  opj_stream_write_data(cio,l_data_header,1,p_manager);
-
-  nmax = 0;
-  for( i=0; i<=cstr_info.numdecompos[compno]; i++)
-    nmax += cstr_info.tile[0].ph[i] * cstr_info.tile[0].pw[i] * cstr_info.numlayers;
-  
-  opj_write_bytes(l_data_header,nmax,size_of_coding);         /* NMAX           */
-  opj_stream_write_data(cio,l_data_header,size_of_coding,p_manager);
-  opj_write_bytes(l_data_header,cstr_info.tw*cstr_info.th,size_of_coding);  /* M              */
-  opj_stream_write_data(cio,l_data_header,size_of_coding,p_manager);
-  
-  for( tileno=0; tileno<cstr_info.tw*cstr_info.th; tileno++){
-    tile_Idx = &cstr_info.tile[ tileno];
-    
-    num_packet = 0;
-    numOfres = cstr_info.numdecompos[compno] + 1;
-
-    for( resno=0; resno<numOfres ; resno++){
-      numOfprec = tile_Idx->pw[resno]*tile_Idx->ph[resno];
-      for( precno=0; precno<numOfprec; precno++){
-       numOflayers = cstr_info.numlayers;
-       for( layno=0; layno<numOflayers; layno++){
-         
-         switch ( cstr_info.prog){
-         case OPJ_LRCP:
-           packet = tile_Idx->packet[ ((layno*numOfres+resno)*cstr_info.numcomps+compno)*numOfprec+precno];
-           break;
-         case OPJ_RLCP:
-           packet = tile_Idx->packet[ ((resno*numOflayers+layno)*cstr_info.numcomps+compno)*numOfprec+precno];
-           break;
-         case OPJ_RPCL:
-           packet = tile_Idx->packet[ ((resno*numOfprec+precno)*cstr_info.numcomps+compno)*numOflayers+layno];
-           break;
-         case OPJ_PCRL:
-           packet = tile_Idx->packet[ ((precno*cstr_info.numcomps+compno)*numOfres+resno)*numOflayers + layno];
-           break;
-         case OPJ_CPRL:
-           packet = tile_Idx->packet[ ((compno*numOfprec+precno)*numOfres+resno)*numOflayers + layno];
-           break;
-         default:
-           fprintf( stderr, "failed to ppix indexing\n");
-         }
-
-    opj_write_bytes(l_data_header,(OPJ_UINT32)(packet.start_pos-coff),size_of_coding);            /* start position */
-    opj_stream_write_data(cio,l_data_header,size_of_coding,p_manager);
-    opj_write_bytes(l_data_header,(OPJ_UINT32)(packet.end_ph_pos-packet.start_pos+1),size_of_coding); /* length         */
-    opj_stream_write_data(cio,l_data_header,size_of_coding,p_manager);
-         
-         num_packet++;
-       }
-      }
+    OPJ_UINT32 tileno, version, i, nmax, size_of_coding; /* 4 or 8 */
+    opj_tile_info_t *tile_Idx;
+    opj_packet_info_t packet;
+    int resno, precno, layno;
+    OPJ_UINT32 num_packet;
+    int numOfres, numOfprec, numOflayers;
+    OPJ_BYTE l_data_header [8];
+    OPJ_OFF_T lenp;
+    OPJ_UINT32 len;
+
+    packet.end_ph_pos = packet.start_pos = -1;
+    (void)EPHused; /* unused ? */
+
+
+    if (j2klen > pow(2, 32)) {
+        size_of_coding =  8;
+        version = 1;
+    } else {
+        size_of_coding = 4;
+        version = 0;
+    }
+
+    lenp = opj_stream_tell(cio);
+    opj_stream_skip(cio, 4, p_manager);         /* L [at the end]      */
+    opj_write_bytes(l_data_header, JPIP_FAIX, 4); /* FAIX */
+    opj_stream_write_data(cio, l_data_header, 4, p_manager);
+    opj_write_bytes(l_data_header, version, 1); /* Version 0 = 4 bytes */
+    opj_stream_write_data(cio, l_data_header, 1, p_manager);
+
+    nmax = 0;
+    for (i = 0; i <= (OPJ_UINT32)cstr_info.numdecompos[compno]; i++) {
+        nmax += (OPJ_UINT32)(cstr_info.tile[0].ph[i] * cstr_info.tile[0].pw[i] *
+                             cstr_info.numlayers);
     }
 
-    /* PADDING */
-    while( num_packet < nmax){
-      opj_write_bytes(l_data_header,0,size_of_coding);/* start position            */
-      opj_stream_write_data(cio,l_data_header,size_of_coding,p_manager);
-      opj_write_bytes(l_data_header,0,size_of_coding);/* length                    */
-      opj_stream_write_data(cio,l_data_header,size_of_coding,p_manager);
-      num_packet++;
+    opj_write_bytes(l_data_header, nmax, size_of_coding);       /* NMAX           */
+    opj_stream_write_data(cio, l_data_header, size_of_coding, p_manager);
+    opj_write_bytes(l_data_header, (OPJ_UINT32)(cstr_info.tw * cstr_info.th),
+                    size_of_coding);  /* M              */
+    opj_stream_write_data(cio, l_data_header, size_of_coding, p_manager);
+
+    for (tileno = 0; tileno < (OPJ_UINT32)(cstr_info.tw * cstr_info.th); tileno++) {
+        tile_Idx = &cstr_info.tile[ tileno];
+
+        num_packet = 0;
+        numOfres = cstr_info.numdecompos[compno] + 1;
+
+        for (resno = 0; resno < numOfres ; resno++) {
+            numOfprec = tile_Idx->pw[resno] * tile_Idx->ph[resno];
+            for (precno = 0; precno < numOfprec; precno++) {
+                numOflayers = cstr_info.numlayers;
+                for (layno = 0; layno < numOflayers; layno++) {
+
+                    switch (cstr_info.prog) {
+                    case OPJ_LRCP:
+                        packet = tile_Idx->packet[((layno * numOfres + resno) * cstr_info.numcomps +
+                                                                               compno) * numOfprec + precno];
+                        break;
+                    case OPJ_RLCP:
+                        packet = tile_Idx->packet[((resno * numOflayers + layno) * cstr_info.numcomps +
+                                                                                  compno) * numOfprec + precno];
+                        break;
+                    case OPJ_RPCL:
+                        packet = tile_Idx->packet[((resno * numOfprec + precno) * cstr_info.numcomps +
+                                                                                 compno) * numOflayers + layno];
+                        break;
+                    case OPJ_PCRL:
+                        packet = tile_Idx->packet[((precno * cstr_info.numcomps + compno) * numOfres +
+                                                                                           resno) * numOflayers + layno];
+                        break;
+                    case OPJ_CPRL:
+                        packet = tile_Idx->packet[((compno * numOfprec + precno) * numOfres + resno) *
+                                                                                 numOflayers + layno];
+                        break;
+                    default:
+                        fprintf(stderr, "failed to ppix indexing\n");
+                    }
+
+                    opj_write_bytes(l_data_header, (OPJ_UINT32)(packet.start_pos - coff),
+                                    size_of_coding);            /* start position */
+                    opj_stream_write_data(cio, l_data_header, size_of_coding, p_manager);
+                    opj_write_bytes(l_data_header,
+                                    (OPJ_UINT32)(packet.end_ph_pos - packet.start_pos + 1),
+                                    size_of_coding); /* length         */
+                    opj_stream_write_data(cio, l_data_header, size_of_coding, p_manager);
+
+                    num_packet++;
+                }
+            }
+        }
+
+        /* PADDING */
+        while (num_packet < nmax) {
+            opj_write_bytes(l_data_header, 0,
+                            size_of_coding); /* start position            */
+            opj_stream_write_data(cio, l_data_header, size_of_coding, p_manager);
+            opj_write_bytes(l_data_header, 0,
+                            size_of_coding); /* length                    */
+            opj_stream_write_data(cio, l_data_header, size_of_coding, p_manager);
+            num_packet++;
+        }
     }
-  }
 
-  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);
+    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);
 
-  return len;
+    return (int)len;
 }