grade_source_content_sb: move KEY_FRAME check to top
av1_source_content_sb() is not meant to be called with keyframes
Bug: chromium:1378601
Change-Id: I5dcf03d8a02a5c5268b1636d17a53245c3d094e2
(cherry picked from commit 58319ac3fbee291481fe7356bace16b0c173ad81)
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index d67a836..8feeb73 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -874,11 +874,15 @@
TileDataEnc *tile_data,
int mi_row, int mi_col) {
AV1_COMMON *const cm = &cpi->common;
+ if (cm->current_frame.frame_type == KEY_FRAME) {
+ assert(x->content_state_sb.source_sad_nonrd == kMedSad);
+ assert(x->content_state_sb.source_sad_rd == kMedSad);
+ return;
+ }
bool calc_src_content = false;
if (cpi->sf.rt_sf.source_metrics_sb_nonrd &&
- cpi->svc.number_spatial_layers <= 1 &&
- cm->current_frame.frame_type != KEY_FRAME) {
+ cpi->svc.number_spatial_layers <= 1) {
if (!cpi->sf.rt_sf.check_scene_detection || cpi->rc.frame_source_sad > 0) {
calc_src_content = is_calc_src_content_needed(cpi, x, mi_row, mi_col);
} else {