[h264e]: add SSE parameter check

To avoid floating point exception, SSE is set to ONE if
it is less than ONE.

Change-Id: Ib0754fdf9327e8f179e9bf56f29f349867f45d00
Signed-off-by: timkingh.huang <timkingh.huang@rock-chips.com>
This commit is contained in:
timkingh.huang
2017-06-13 16:55:18 +08:00
parent c84c7f4e11
commit b2a6bbfc8b

View File

@@ -3451,13 +3451,19 @@ MPP_RET hal_h264e_rkv_wait(void *hal, HalTaskInfo *task)
double avg_qp = 0.0; double avg_qp = 0.0;
RK_S32 avg_sse = 1; RK_S32 avg_sse = 1;
RK_S32 wlen = 15; RK_S32 wlen = 15;
RK_S32 prev_sse = 0; RK_S32 prev_sse = 1;
avg_qp = fb->qp_sum * 1.0 / num_mb; avg_qp = fb->qp_sum * 1.0 / num_mb;
if (syn->type == INTER_P_FRAME) { if (syn->type == INTER_P_FRAME) {
avg_sse = (RK_S32)sqrt((double)(fb->sse_sum)); avg_sse = (RK_S32)sqrt((double)(fb->sse_sum));
prev_sse = mpp_data_avg(ctx->sse_p, 1, 1, 1); prev_sse = mpp_data_avg(ctx->sse_p, 1, 1, 1);
if (avg_sse < 1)
avg_sse = 1;
if (prev_sse < 1)
prev_sse = 1;
if (avg_sse > prev_sse) if (avg_sse > prev_sse)
wlen = wlen * prev_sse / avg_sse; wlen = wlen * prev_sse / avg_sse;
else else