Detect look ahead buffer during initialization stage
Use explicit detection to decide if more source frames need to be
stuffed before actual encoding starts.
Change-Id: Ia98baa25880b5741db1c23bff71a542a80bee224
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index 3de1140..480d8fa 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -1083,6 +1083,16 @@
memset(&frame_params, 0, sizeof(frame_params));
memset(&frame_results, 0, sizeof(frame_results));
+ // Check if we need to stuff more src frames
+ if (flush == 0) {
+ int srcbuf_size =
+ av1_lookahead_depth(cpi->lookahead, cpi->compressor_stage);
+ int pop_size = av1_lookahead_pop_sz(cpi->lookahead, cpi->compressor_stage);
+
+ // Continue buffering look ahead buffer.
+ if (srcbuf_size < pop_size) return -1;
+ }
+
// TODO(sarahparker) finish bit allocation for one pass pyramid
if (has_no_stats_stage(cpi)) {
gf_cfg->gf_max_pyr_height =