From 7f80afe0a7ae7982f1a074c838f7e8e7e361e6fb Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 29 Feb 2012 02:05:54 +0100 Subject: [PATCH] libpostproc: add bitexact mode, which is needed for regression testing. Signed-off-by: Michael Niedermayer --- libpostproc/postprocess.c | 7 +++++-- libpostproc/postprocess_internal.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c index ef9cd44af9..1e31cee9f3 100644 --- a/libpostproc/postprocess.c +++ b/libpostproc/postprocess.c @@ -150,6 +150,7 @@ static struct PPFilter filters[]= {"l5", "lowpass5", 1, 1, 4, LOWPASS5_DEINT_FILTER}, {"tn", "tmpnoise", 1, 7, 8, TEMP_NOISE_FILTER}, {"fq", "forcequant", 1, 0, 0, FORCE_QUANT}, + {"be", "bitexact", 1, 0, 0, BITEXACT}, {NULL, NULL,0,0,0,0} //End Marker }; @@ -536,9 +537,8 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step, int stride, //Note: we have C, MMX, MMX2, 3DNOW version there is no 3DNOW+MMX2 one //Plain C versions -#if !(HAVE_MMX || HAVE_ALTIVEC) || CONFIG_RUNTIME_CPUDETECT +//we always compile C for testing which needs bitexactness #define COMPILE_C -#endif #if HAVE_ALTIVEC #define COMPILE_ALTIVEC @@ -624,6 +624,9 @@ static inline void postProcess(const uint8_t src[], int srcStride, uint8_t dst[] PPMode *ppMode= (PPMode *)vm; c->ppMode= *ppMode; //FIXME + if(ppMode->lumMode & BITEXACT) + return postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); + // Using ifs here as they are faster than function pointers although the // difference would not be measurable here but it is much better because // someone might exchange the CPU whithout restarting MPlayer ;) diff --git a/libpostproc/postprocess_internal.h b/libpostproc/postprocess_internal.h index 2256d78f78..33c5f6932b 100644 --- a/libpostproc/postprocess_internal.h +++ b/libpostproc/postprocess_internal.h @@ -67,6 +67,7 @@ #define TEMP_NOISE_FILTER 0x100000 #define FORCE_QUANT 0x200000 +#define BITEXACT 0x1000000 //use if you want a faster postprocessing code //cannot differentiate between chroma & luma filters (both on or both off)