mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-14 21:25:42 +08:00
[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:
@@ -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
|
||||||
|
Reference in New Issue
Block a user