cpi->last_frame_dropped = 0;
cpi->svc.last_layer_dropped[cpi->svc.spatial_layer_id] = 0;
+ if (cpi->svc.spatial_layer_id == cpi->svc.number_spatial_layers - 1)
+ cpi->svc.num_encoded_top_layer++;
+
// Keep track of the frame buffer index updated/refreshed for the
// current encoded TL0 superframe.
if (cpi->svc.temporal_layer_id == 0) {
ne->last_h = cm->height;
}
return;
- } else if (frame_counter > 60 &&
+ } else if (frame_counter > 60 && cpi->svc.num_encoded_top_layer > 1 &&
cpi->rc.frames_since_key > cpi->svc.number_spatial_layers &&
cpi->svc.spatial_layer_id == cpi->svc.number_spatial_layers - 1 &&
cpi->rc.avg_frame_low_motion < (low_res ? 70 : 50)) {
svc->previous_frame_is_intra_only = 0;
svc->superframe_has_layer_sync = 0;
svc->use_set_ref_frame_config = 0;
+ svc->num_encoded_top_layer = 0;
for (i = 0; i < REF_FRAMES; ++i) {
svc->fb_idx_spatial_layer_id[i] = -1;
int64_t timebase_fac;
int64_t time_stamp_superframe;
int64_t time_stamp_prev[VPX_SS_MAX_LAYERS];
+
+ int num_encoded_top_layer;
} SVC;
struct VP9_COMP;