Protect against invalid frame_importance with 2 TPL passes
Bug: b/264531050
Change-Id: I3a9a327063cc711163f7a88c307609fdeeeb4a8b
diff --git a/av1/qmode_rc/ratectrl_qmode.cc b/av1/qmode_rc/ratectrl_qmode.cc
index d78069a..6556b60 100644
--- a/av1/qmode_rc/ratectrl_qmode.cc
+++ b/av1/qmode_rc/ratectrl_qmode.cc
@@ -1447,7 +1447,9 @@
}
}
}
- frame_importance = (cum_rdcost_diff + cum_inter_cost) / cum_inter_cost;
+ frame_importance = cum_inter_cost > 0
+ ? (cum_rdcost_diff + cum_inter_cost) / cum_inter_cost
+ : -1.0;
}
// Calculate delta_q offset for each superblock.
@@ -1479,7 +1481,7 @@
}
double beta = 1.0;
- if (mc_dep_cost > 0 && intra_cost > 0) {
+ if (frame_importance > 0 && mc_dep_cost > 0 && intra_cost > 0) {
const double r0 = 1 / frame_importance;
const double rk = intra_cost / (mc_dep_cost + intra_cost);
beta = r0 / rk;