Change CMakeLists.txt to build examples by default (image_to_j2k and j2k_to_image).
[openjpeg.git] / libopenjpeg / pi.c
index 7bd571eac2d1ea7a290d24b507608c9de0f2d27d..06e76af765f57370974c517cc2d3ae50f285d038 100644 (file)
@@ -209,14 +209,14 @@ if (!pi->tp_on){
                                        try1 = int_ceildiv(pi->ty1, comp->dy << levelno);
                                        rpx = res->pdx + levelno;
                                        rpy = res->pdy + levelno;
-                                       if (!((pi->y % (comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpx))))){
+                                       if (!((pi->y % (comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){
                                                continue;       
                                        }
                                        if (!((pi->x % (comp->dx << rpx) == 0) || ((pi->x == pi->tx0) && ((trx0 << levelno) % (1 << rpx))))){
                                                continue; 
                                        }
                                        
-                                       if ((res->pw==0)||(res->pw==0)) continue;
+                                       if ((res->pw==0)||(res->ph==0)) continue;
                                        
                                        if ((trx0==trx1)||(try0==try1)) continue;
                                        
@@ -290,14 +290,14 @@ static bool pi_next_pcrl(opj_pi_iterator_t * pi) {
                                        try1 = int_ceildiv(pi->ty1, comp->dy << levelno);
                                        rpx = res->pdx + levelno;
                                        rpy = res->pdy + levelno;
-                                       if (!((pi->y % (comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpx))))){
+                                       if (!((pi->y % (comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){
                                                continue;       
                                        }
                                        if (!((pi->x % (comp->dx << rpx) == 0) || ((pi->x == pi->tx0) && ((trx0 << levelno) % (1 << rpx))))){
                                                continue; 
                                        }
                                        
-                                       if ((res->pw==0)||(res->pw==0)) continue;
+                                       if ((res->pw==0)||(res->ph==0)) continue;
                                        
                                        if ((trx0==trx1)||(try0==try1)) continue;
                                        
@@ -369,14 +369,14 @@ static bool pi_next_cprl(opj_pi_iterator_t * pi) {
                                        try1 = int_ceildiv(pi->ty1, comp->dy << levelno);
                                        rpx = res->pdx + levelno;
                                        rpy = res->pdy + levelno;
-                                       if (!((pi->y % (comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpx))))){
+                                       if (!((pi->y % (comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){
                                                continue;       
                                        }
                                        if (!((pi->x % (comp->dx << rpx) == 0) || ((pi->x == pi->tx0) && ((trx0 << levelno) % (1 << rpx))))){
                                                continue; 
                                        }
                                        
-                                       if ((res->pw==0)||(res->pw==0)) continue;
+                                       if ((res->pw==0)||(res->ph==0)) continue;
                                        
                                        if ((trx0==trx1)||(try0==try1)) continue;
                                        
@@ -726,8 +726,8 @@ bool pi_next(opj_pi_iterator_t * pi) {
        return false;
 }
 
-void pi_create_encode( opj_pi_iterator_t *pi, opj_cp_t *cp,int tileno, int pino,int tpnum, int tppos, J2K_T2_MODE t2_mode,int cur_totnum_tp){
-       char *prog;
+bool pi_create_encode( opj_pi_iterator_t *pi, opj_cp_t *cp,int tileno, int pino,int tpnum, int tppos, J2K_T2_MODE t2_mode,int cur_totnum_tp){
+       char prog[4];
        int i;
        int incr_top=1,resetX=0;
        opj_tcp_t *tcps =&cp->tcps[tileno];
@@ -735,7 +735,6 @@ void pi_create_encode( opj_pi_iterator_t *pi, opj_cp_t *cp,int tileno, int pino,
 
        pi[pino].first = 1;
        pi[pino].poc.prg = tcp->prg;
-       prog = (char*)malloc(4*sizeof(char));
 
        switch(tcp->prg){
                case CPRL: strncpy(prog, "CPRL",4);
@@ -747,7 +746,9 @@ void pi_create_encode( opj_pi_iterator_t *pi, opj_cp_t *cp,int tileno, int pino,
                case RLCP: strncpy(prog, "RLCP",4);
                        break;
                case RPCL: strncpy(prog, "RPCL",4);
-                       break; 
+                       break;
+               case PROG_UNKNOWN: 
+                       return true;
        }
 
        if(!(cp->tp_on && ((!cp->cinema && (t2_mode == FINAL_PASS)) || cp->cinema))){
@@ -957,5 +958,6 @@ void pi_create_encode( opj_pi_iterator_t *pi, opj_cp_t *cp,int tileno, int pino,
                        } 
                }
        }       
+       return false;
 }