From 6f51674c91cfcae0c0fdebf23d9cb9a3e294f09b Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Sun, 31 May 2015 01:40:12 +0200
Subject: [PATCH] postproc: Avoid floats in maxClipped computation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
---
 libpostproc/postprocess.c          | 2 +-
 libpostproc/postprocess_internal.h | 2 +-
 libpostproc/postprocess_template.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c
index acce0f273b0..92cc4367d01 100644
--- a/libpostproc/postprocess.c
+++ b/libpostproc/postprocess.c
@@ -681,7 +681,7 @@ pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality)
     ppMode->minAllowedY= 16;
     ppMode->baseDcDiff= 256/8;
     ppMode->flatnessThreshold= 56-16-1;
-    ppMode->maxClippedThreshold= 0.01;
+    ppMode->maxClippedThreshold= (AVRational){1,100};
     ppMode->error=0;
 
     memset(temp, 0, GET_MODE_BUFFER_SIZE);
diff --git a/libpostproc/postprocess_internal.h b/libpostproc/postprocess_internal.h
index c1a306dd323..d128dfbe2f6 100644
--- a/libpostproc/postprocess_internal.h
+++ b/libpostproc/postprocess_internal.h
@@ -99,7 +99,7 @@ typedef struct PPMode{
 
     int minAllowedY;                ///< for brightness correction
     int maxAllowedY;                ///< for brightness correction
-    float maxClippedThreshold;      ///< amount of "black" you are willing to lose to get a brightness-corrected picture
+    AVRational maxClippedThreshold; ///< amount of "black" you are willing to lose to get a brightness-corrected picture
 
     int maxTmpNoise[3];             ///< for Temporal Noise Reducing filter (Maximal sum of abs differences)
 
diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c
index fc49e193377..c7ad3f03061 100644
--- a/libpostproc/postprocess_template.c
+++ b/libpostproc/postprocess_template.c
@@ -3383,7 +3383,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[
         }
 
         /* We always get a completely black picture first. */
-        maxClipped= (uint64_t)(sum * c.ppMode.maxClippedThreshold);
+        maxClipped= av_rescale(sum, c.ppMode.maxClippedThreshold.num, c.ppMode.maxClippedThreshold.den);
 
         clipped= sum;
         for(black=255; black>0; black--){
-- 
GitLab