The structure of the postprocess function is to loop over x from 0 to width, and in that loop to process 4 block at a time. This inner loop was previously split into 3 seperate loops, i.e: outer_loop over x save current x location loop over 4 blocks restore x location loop over 4 blocks restore x location loop over 4 blocks end this commit merges the second two inner loops (elimitating the restore x location), the next commit merges the first inner loop as well, resulting in: outer_loop: loop over 4 blocks end --- libpostproc/postprocess_template.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c index 866ba8f..fcc8b94 100644 --- a/libpostproc/postprocess_template.c +++ b/libpostproc/postprocess_template.c @@ -3513,6 +3513,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ for(x = startx, qp_index = 0; x < endx; x+=BLOCK_SIZE, qp_index++){ const int stride= dstStride; + av_unused uint8_t *tmpXchg; //temporary while changing QP stuff to make things continue to work //eventually QP,nonBQP,etc will be arrays and this will be unnecessary c.QP = c.QP_block[qp_index]; @@ -3535,22 +3536,8 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ } else if(mode & V_A_DEBLOCK){ RENAME(do_a_deblock)(dstBlock, stride, 1, &c, mode); } - - dstBlock+=8; - srcBlock+=8; } - } - - dstBlock = dstBlockStart; - srcBlock = srcBlockStart; - for(x = startx, qp_index=0; x < endx; x+=BLOCK_SIZE, qp_index++){ - const int stride= dstStride; - av_unused uint8_t *tmpXchg; - c.QP = c.QP_block[qp_index]; - c.nonBQP = c.nonBQP_block[qp_index]; - c.pQPb = c.pQPb_block[qp_index]; - c.pQPb2 = c.pQPb2_block[qp_index]; #if TEMPLATE_PP_MMX RENAME(transpose1)(tempBlock1, tempBlock2, dstBlock, dstStride); #endif -- 2.3.3 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel