Add two levels for selective ref frame sp. feature

The first level is turned on for speed 1.

Change-Id: I3dba0f0250b97a25e174cacc2a46ca7f76572c85
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index ff876b9..4cd2388 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -9962,12 +9962,14 @@
 
 #if CONFIG_FRAME_MARKER
     if (sf->selective_ref_frame) {
-      if (mbmi->ref_frame[0] == ALTREF2_FRAME ||
-          mbmi->ref_frame[1] == ALTREF2_FRAME)
-        if (cm->cur_frame->alt2_frame_offset < cm->frame_offset) continue;
-      if (mbmi->ref_frame[0] == BWDREF_FRAME ||
-          mbmi->ref_frame[1] == BWDREF_FRAME)
-        if (cm->cur_frame->bwd_frame_offset < cm->frame_offset) continue;
+      if (sf->selective_ref_frame == 2) {
+        if (mbmi->ref_frame[0] == ALTREF2_FRAME ||
+            mbmi->ref_frame[1] == ALTREF2_FRAME)
+          if (cm->cur_frame->alt2_frame_offset < cm->frame_offset) continue;
+        if (mbmi->ref_frame[0] == BWDREF_FRAME ||
+            mbmi->ref_frame[1] == BWDREF_FRAME)
+          if (cm->cur_frame->bwd_frame_offset < cm->frame_offset) continue;
+      }
       if (mbmi->ref_frame[0] == LAST3_FRAME ||
           mbmi->ref_frame[1] == LAST3_FRAME)
         if (cm->cur_frame->lst3_frame_offset <= cm->cur_frame->gld_frame_offset)
@@ -10944,7 +10946,6 @@
     }
   }
 PALETTE_EXIT:
-
 // The inter modes' rate costs are not calculated precisely in some cases.
 // Therefore, sometimes, NEWMV is chosen instead of NEARESTMV, NEARMV, and
 // GLOBALMV. Here, checks are added for those cases, and the mode decisions
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 8f9f94b..d05ced4 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -135,6 +135,7 @@
   const int boosted = frame_is_boosted(cpi);
 
   if (speed >= 1) {
+    sf->selective_ref_frame = 1;
     sf->tx_size_search_init_depth_rect = 1;
     sf->tx_size_search_init_depth_sqr = 1;
   }
@@ -144,7 +145,7 @@
     sf->tx_type_search.fast_intra_tx_type_search = 1;
     sf->tx_type_search.fast_inter_tx_type_search = 1;
 
-    sf->selective_ref_frame = 1;
+    sf->selective_ref_frame = 2;
 
     if ((cpi->twopass.fr_content_type == FC_GRAPHICS_ANIMATION) ||
         av1_internal_image_edge(cpi)) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index e84e8ce..e11635e 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -335,6 +335,7 @@
   BLOCK_SIZE always_this_block_size;
 
   // Drop less likely picked reference frames in the RD search
+  // Has two levels for now: 1 and 2, where 2 is more aggressive than 1.
   int selective_ref_frame;
 
   // Skip rectangular partition test when partition type none gives better