[FFmpeg-cvslog] postproc/postprocess_template: split loop in 2 (block groups of 4, blocks)

Michael Niedermayer git at videolan.org
Mon Mar 23 00:52:43 CET 2015


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Mon Mar 23 00:02:51 2015 +0100| [93f4538363069b721c24417f3d38575274394845] | committer: Michael Niedermayer

postproc/postprocess_template: split loop in 2 (block groups of 4, blocks)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=93f4538363069b721c24417f3d38575274394845
---

 libpostproc/postprocess_template.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c
index 6722f96..9049c81 100644
--- a/libpostproc/postprocess_template.c
+++ b/libpostproc/postprocess_template.c
@@ -3476,7 +3476,10 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[
         // From this point on it is guaranteed that we can read and write 16 lines downward
         // finish 1 block before the next otherwise we might have a problem
         // with the L1 Cache of the P4 ... or only a few blocks at a time or something
-        for(x=0; x<width; x+=BLOCK_SIZE){
+        for(x=0; x<width; ){
+            int startx = x;
+            int endx = FFMIN(width, x+32);
+          for(; x < endx; x+=BLOCK_SIZE){
             const int stride= dstStride;
 #if TEMPLATE_PP_MMX
             uint8_t *tmpXchg;
@@ -3650,6 +3653,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[
             tempBlock1= tempBlock2;
             tempBlock2 = tmpXchg;
 #endif
+          }
         }
 
         if(mode & DERING){



More information about the ffmpeg-cvslog mailing list