ref: be8d2b054e81e10c944efa2040fc2a13dce2b070
parent: 97f4fb7b5f1eb76d879601f469057f52a87b9f9c
author: Deb Mukherjee <[email protected]>
date: Thu Apr 3 06:22:58 EDT 2014
Reinstating the DISABLE_RC_LONG_TERM_MEM macro Reinstates this macro and truns it on in order to avoid issues due to some frames at the end starving in harder videos. A more acceptable solution is in the works. Change-Id: I3c46148e86fa6114e3fed245246fb3686a9e6700
--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -61,6 +61,8 @@
#define MIN_GF_INTERVAL 4
#endif
+#define DISABLE_RC_LONG_TERM_MEM
+
static void swap_yv12(YV12_BUFFER_CONFIG *a, YV12_BUFFER_CONFIG *b) {
YV12_BUFFER_CONFIG temp = *a;
*a = *b;
@@ -2330,7 +2332,11 @@
}
void vp9_twopass_postencode_update(VP9_COMP *cpi) {
+#ifdef DISABLE_RC_LONG_TERM_MEM
+ const uint64_t bits_used = cpi->rc.this_frame_target;
+#else
const uint64_t bits_used = cpi->rc.projected_frame_size;
+#endif
cpi->twopass.bits_left -= bits_used;
cpi->twopass.bits_left = MAX(cpi->twopass.bits_left, 0);
// Update bits left to the kf and gf groups to account for overshoot or