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 {