summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rd.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/encoder/vp9_rd.c')
-rw-r--r--vp9/encoder/vp9_rd.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_rd.c b/vp9/encoder/vp9_rd.c
index 3e38799fd..2a02c10e8 100644
--- a/vp9/encoder/vp9_rd.c
+++ b/vp9/encoder/vp9_rd.c
@@ -69,6 +69,14 @@ int64_t vp9_calculate_rd_cost(int mult, int div, int rate, int64_t dist) {
}
return -RDCOST(mult, div, -rate, -dist);
}
+void vp9_rd_cost_update(int mult, int div, RD_COST *rd_cost) {
+ if (rd_cost->rate < INT_MAX && rd_cost->dist < INT64_MAX) {
+ rd_cost->rdcost =
+ vp9_calculate_rd_cost(mult, div, rd_cost->rate, rd_cost->dist);
+ } else {
+ vp9_rd_cost_reset(rd_cost);
+ }
+}
// The baseline rd thresholds for breaking out of the rd loop for
// certain modes are assumed to be based on 8x8 blocks.