Originally committed as revision 3095 to svn://svn.mplayerhq.hu/mplayer/trunk/postproctags/v0.5
| @@ -62,7 +62,6 @@ optimize c versions | |||
| 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 @@ memcpy chrominance if no chroma filtering is done | |||
| //#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 @@ void postprocess(unsigned char * src[], int src_stride, | |||
| 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<vertical_size; y++) | |||
| { | |||
| memcpy(&(dst[1][y*dst_stride]), &(src[1][y*src_stride]), horizontal_size); | |||
| memcpy(&(dst[2][y*dst_stride]), &(src[2][y*src_stride]), horizontal_size); | |||
| } | |||
| } | |||
| #if 0 | |||
| memset(dst[1], 128, dst_stride*vertical_size); | |||
| memset(dst[2], 128, dst_stride*vertical_size); | |||
| // memcpy(dst[1], src[1], src_stride*horizontal_size); | |||
| // memcpy(dst[2], src[2], src_stride*horizontal_size); | |||
| } | |||
| #endif | |||
| } | |||
| void postprocess2(unsigned char * src[], int src_stride, | |||
| @@ -3085,10 +3097,27 @@ void postprocess2(unsigned char * src[], int src_stride, | |||
| src_stride >>= 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<vertical_size; y++) | |||
| { | |||
| memcpy(&(dst[1][y*dst_stride]), &(src[1][y*src_stride]), horizontal_size); | |||
| memcpy(&(dst[2][y*dst_stride]), &(src[2][y*src_stride]), horizontal_size); | |||
| } | |||
| } | |||
| } | |||
| @@ -62,7 +62,6 @@ optimize c versions | |||
| 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 @@ memcpy chrominance if no chroma filtering is done | |||
| //#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 @@ void postprocess(unsigned char * src[], int src_stride, | |||
| 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<vertical_size; y++) | |||
| { | |||
| memcpy(&(dst[1][y*dst_stride]), &(src[1][y*src_stride]), horizontal_size); | |||
| memcpy(&(dst[2][y*dst_stride]), &(src[2][y*src_stride]), horizontal_size); | |||
| } | |||
| } | |||
| #if 0 | |||
| memset(dst[1], 128, dst_stride*vertical_size); | |||
| memset(dst[2], 128, dst_stride*vertical_size); | |||
| // memcpy(dst[1], src[1], src_stride*horizontal_size); | |||
| // memcpy(dst[2], src[2], src_stride*horizontal_size); | |||
| } | |||
| #endif | |||
| } | |||
| void postprocess2(unsigned char * src[], int src_stride, | |||
| @@ -3085,10 +3097,27 @@ void postprocess2(unsigned char * src[], int src_stride, | |||
| src_stride >>= 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<vertical_size; y++) | |||
| { | |||
| memcpy(&(dst[1][y*dst_stride]), &(src[1][y*src_stride]), horizontal_size); | |||
| memcpy(&(dst[2][y*dst_stride]), &(src[2][y*src_stride]), horizontal_size); | |||
| } | |||
| } | |||
| } | |||