# HG changeset patch # User michael # Date 1006567506 0 # Node ID 712c7a115164c36fdab3c87712f9f04995621b7b # Parent 2d97f0157a790e467059bf789c8e2f0187179a37 use fastmemcpy for chrominance if no chrominance filtering is done diff -r 2d97f0157a79 -r 712c7a115164 libpostproc/postprocess.c --- a/libpostproc/postprocess.c Sat Nov 24 01:38:30 2001 +0000 +++ b/libpostproc/postprocess.c Sat Nov 24 02:05:06 2001 +0000 @@ -62,7 +62,6 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks smart blur commandline option for the deblock / dering thresholds -memcpy chrominance if no chroma filtering is done ... */ @@ -80,6 +79,7 @@ //#define HAVE_3DNOW //#undef HAVE_MMX //#define DEBUG_BRIGHTNESS +#include "../libvo/fastmemcpy.h" #include "postprocess.h" #define MIN(a,b) ((a) > (b) ? (b) : (a)) @@ -3037,20 +3037,32 @@ src_stride >>= 1; dst_stride >>= 1; - if(1) + if(ppMode.chromMode) { postProcess(src[1], src_stride, dst[1], dst_stride, horizontal_size, vertical_size, QP_store, QP_stride, 1, &ppMode); postProcess(src[2], src_stride, dst[2], dst_stride, horizontal_size, vertical_size, QP_store, QP_stride, 2, &ppMode); } + else if(src_stride == dst_stride) + { + memcpy(dst[1], src[1], src_stride*vertical_size); + memcpy(dst[2], src[2], src_stride*vertical_size); + } else { + int y; + for(y=0; y>= 1; dst_stride >>= 1; - postProcess(src[1], src_stride, dst[1], dst_stride, - horizontal_size, vertical_size, QP_store, QP_stride, 1, mode); - postProcess(src[2], src_stride, dst[2], dst_stride, - horizontal_size, vertical_size, QP_store, QP_stride, 2, mode); + if(mode->chromMode) + { + postProcess(src[1], src_stride, dst[1], dst_stride, + horizontal_size, vertical_size, QP_store, QP_stride, 1, mode); + postProcess(src[2], src_stride, dst[2], dst_stride, + horizontal_size, vertical_size, QP_store, QP_stride, 2, mode); + } + else if(src_stride == dst_stride) + { + memcpy(dst[1], src[1], src_stride*vertical_size); + memcpy(dst[2], src[2], src_stride*vertical_size); + } + else + { + int y; + for(y=0; y (b) ? (b) : (a)) @@ -3037,20 +3037,32 @@ src_stride >>= 1; dst_stride >>= 1; - if(1) + if(ppMode.chromMode) { postProcess(src[1], src_stride, dst[1], dst_stride, horizontal_size, vertical_size, QP_store, QP_stride, 1, &ppMode); postProcess(src[2], src_stride, dst[2], dst_stride, horizontal_size, vertical_size, QP_store, QP_stride, 2, &ppMode); } + else if(src_stride == dst_stride) + { + memcpy(dst[1], src[1], src_stride*vertical_size); + memcpy(dst[2], src[2], src_stride*vertical_size); + } else { + int y; + for(y=0; y>= 1; dst_stride >>= 1; - postProcess(src[1], src_stride, dst[1], dst_stride, - horizontal_size, vertical_size, QP_store, QP_stride, 1, mode); - postProcess(src[2], src_stride, dst[2], dst_stride, - horizontal_size, vertical_size, QP_store, QP_stride, 2, mode); + if(mode->chromMode) + { + postProcess(src[1], src_stride, dst[1], dst_stride, + horizontal_size, vertical_size, QP_store, QP_stride, 1, mode); + postProcess(src[2], src_stride, dst[2], dst_stride, + horizontal_size, vertical_size, QP_store, QP_stride, 2, mode); + } + else if(src_stride == dst_stride) + { + memcpy(dst[1], src[1], src_stride*vertical_size); + memcpy(dst[2], src[2], src_stride*vertical_size); + } + else + { + int y; + for(y=0; y