From 9718a01e42e3e7232c6fe8dd1068052a7e7f5f2b Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Mon, 5 Nov 2018 16:21:49 -0800 Subject: [PATCH] Track maximum layer depth in a GOP Track the effective maximum layer depth in a given group of pictures. Keep it in the GF_GROUP data structure. Change-Id: If777c4e0f4a871c7226a91e3871f445e92f18b24 --- vp9/encoder/vp9_firstpass.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c index 5924430de..b61e2adee 100644 --- a/vp9/encoder/vp9_firstpass.c +++ b/vp9/encoder/vp9_firstpass.c @@ -2127,6 +2127,7 @@ static void find_arf_order(VP9_COMP *cpi, GF_GROUP *gf_group, gf_group->gfu_boost[*index_counter] = NORMAL_BOOST; ++(*index_counter); } + gf_group->max_layer_depth = VPXMAX(gf_group->max_layer_depth, depth); return; } @@ -2189,6 +2190,7 @@ static void define_gf_group_structure(VP9_COMP *cpi) { gf_group->frame_start = cpi->common.current_video_frame; gf_group->frame_end = gf_group->frame_start + rc->baseline_gf_interval; + gf_group->max_layer_depth = 0; // For key frames the frame target rate is already set and it // is also the golden frame. @@ -2206,6 +2208,7 @@ static void define_gf_group_structure(VP9_COMP *cpi) { gf_group->arf_src_offset[frame_index] = (unsigned char)(rc->baseline_gf_interval - 1); gf_group->frame_gop_index[frame_index] = rc->baseline_gf_interval; + gf_group->max_layer_depth = 1; ++frame_index; } -- 2.40.0