diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index 924113159..a9961dace 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -1341,8 +1341,8 @@ void RawImageSource::dcb_hid(float (*image)[4],float (*bufferH)[3], float (*buff // green pixels for (int row = rowMin; row < rowMax; row++) { - for (int col = colMin+(FC(y0-TILEBORDER+row,x0-TILEBORDER+colMin)&1),indx=row*CACHESIZE+col,c=FC(y0-TILEBORDER+row,x0-TILEBORDER+col); col < colMax; col+=2, indx+=2) { - assert(indx>=0 && indx=0 && indx+u=0 && indx=0 && c<3); + assert(indx-u-1>=0 && indx+u+1=0 && c<3); bufferH[indx][c] = ( 4.f * bufferH[indx][1] - bufferH[indx+u+1][1] - bufferH[indx+u-1][1] - bufferH[indx-u+1][1] - bufferH[indx-u-1][1] @@ -1363,7 +1363,7 @@ void RawImageSource::dcb_hid(float (*image)[4],float (*bufferH)[3], float (*buff // red or blue in green pixels for (int row=rowMin; row=0 && indx=0 && c<3 && d>=0 && d<3); + assert(indx-u>=0 && indx+u=0 && c<3 && d>=0 && d<3); bufferH[indx][c] = (image[indx+1][c] + image[indx-1][c]) * 0.5f; bufferH[indx][d] = (2.f * bufferH[indx][1] - bufferH[indx+u][1] - bufferH[indx-u][1] + image[indx+u][d] + image[indx-u][d]) * 0.5f; bufferV[indx][c] = (2.f * bufferV[indx][1] - bufferV[indx+1][1] - bufferV[indx-1][1] + image[indx+1][c] + image[indx-1][c]) * 0.5f; @@ -1430,7 +1430,7 @@ void RawImageSource::dcb_hid2(float (*image)[4], int x0, int y0) for (int row=rowMin; row < rowMax; row++) { for (int col = colMin+(FC(y0-TILEBORDER+row,x0-TILEBORDER+colMin)&1),indx=row*CACHESIZE+col,c=FC(y0-TILEBORDER+row,x0-TILEBORDER+col); col < colMax; col+=2, indx+=2) { - assert(indx>=0 && indx=0 && indx+v