[FFmpeg-cvslog] libpostproc: add bitexact mode, which is needed for regression testing.

Michael Niedermayer git at videolan.org
Wed Feb 29 02:46:23 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Feb 29 02:05:54 2012 +0100| [7f80afe0a7ae7982f1a074c838f7e8e7e361e6fb] | committer: Michael Niedermayer

libpostproc: add bitexact mode, which is needed for regression testing.

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

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

 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 ef9cd44..1e31cee 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 2256d78..33c5f69 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)



More information about the ffmpeg-cvslog mailing list