Mesa (master): st/va Avoid VBR bitrate calculation overflow v2

Christian König deathsimple at kemper.freedesktop.org
Tue Sep 27 12:21:53 UTC 2016


Module: Mesa
Branch: master
Commit: a5993022275c20061ac025d9adc26c5f9d02afee
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5993022275c20061ac025d9adc26c5f9d02afee

Author: Andy Furniss <adf.lists at gmail.com>
Date:   Mon Sep 26 10:44:35 2016 +0100

st/va Avoid VBR bitrate calculation overflow v2

VBR bitrate calc needs 64 bits at high rates.

v2: use float.

Signed-off-by: Andy Furniss <adf.lists at gmail.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
Cc: mesa-stable at lists.freedesktop.org

---

 src/gallium/state_trackers/va/picture.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/va/picture.c b/src/gallium/state_trackers/va/picture.c
index 7f3d96d..399667f 100644
--- a/src/gallium/state_trackers/va/picture.c
+++ b/src/gallium/state_trackers/va/picture.c
@@ -322,7 +322,7 @@ handleVAEncMiscParameterTypeRateControl(vlVaContext *context, VAEncMiscParameter
        PIPE_H264_ENC_RATE_CONTROL_METHOD_CONSTANT)
       context->desc.h264enc.rate_ctrl.target_bitrate = rc->bits_per_second;
    else
-      context->desc.h264enc.rate_ctrl.target_bitrate = rc->bits_per_second * rc->target_percentage / 100;
+      context->desc.h264enc.rate_ctrl.target_bitrate = rc->bits_per_second * (rc->target_percentage / 100.0);
    context->desc.h264enc.rate_ctrl.peak_bitrate = rc->bits_per_second;
    if (context->desc.h264enc.rate_ctrl.target_bitrate < 2000000)
       context->desc.h264enc.rate_ctrl.vbv_buffer_size = MIN2((context->desc.h264enc.rate_ctrl.target_bitrate * 2.75), 2000000);




More information about the mesa-commit mailing list