Respect --enable-angle-delta=0

It was observed that delta angles of directional intra modes
were getting evaluated in av1_rd_pick_intra_sby_mode() and
av1_handle_intra_y_mode() even when enable_angle_delta was
set to 0. This patch disallows the evaluation of delta angles
in these functions when enable_angle_delta is configured to 0.

Change-Id: I0ae4be95454ac655f4e0e05de258f2a3c752948d
diff --git a/av1/encoder/intra_mode_search.c b/av1/encoder/intra_mode_search.c
index 47f04f9..9b664ca 100644
--- a/av1/encoder/intra_mode_search.c
+++ b/av1/encoder/intra_mode_search.c
@@ -1185,6 +1185,7 @@
   // function
   int beat_best_rd = 0;
   const int *bmode_costs;
+  const IntraModeCfg *const intra_mode_cfg = &cpi->oxcf.intra_mode_cfg;
   PALETTE_MODE_INFO *const pmi = &mbmi->palette_mode_info;
   const int try_palette =
       cpi->oxcf.tool_cfg.enable_palette &&
@@ -1237,21 +1238,19 @@
     int64_t this_distortion, this_rd;
 
     is_diagonal_mode = av1_is_diagonal_mode(mbmi->mode);
-    if (is_diagonal_mode && !cpi->oxcf.intra_mode_cfg.enable_diagonal_intra)
-      continue;
+    if (is_diagonal_mode && !intra_mode_cfg->enable_diagonal_intra) continue;
     if (av1_is_directional_mode(mbmi->mode) &&
-        !cpi->oxcf.intra_mode_cfg.enable_directional_intra)
+        !intra_mode_cfg->enable_directional_intra)
       continue;
 
     // The smooth prediction mode appears to be more frequently picked
     // than horizontal / vertical smooth prediction modes. Hence treat
     // them differently in speed features.
-    if ((!cpi->oxcf.intra_mode_cfg.enable_smooth_intra ||
+    if ((!intra_mode_cfg->enable_smooth_intra ||
          cpi->sf.intra_sf.disable_smooth_intra) &&
         (mbmi->mode == SMOOTH_H_PRED || mbmi->mode == SMOOTH_V_PRED))
       continue;
-    if (!cpi->oxcf.intra_mode_cfg.enable_smooth_intra &&
-        mbmi->mode == SMOOTH_PRED)
+    if (!intra_mode_cfg->enable_smooth_intra && mbmi->mode == SMOOTH_PRED)
       continue;
 
     // The functionality of filter intra modes and smooth prediction
@@ -1261,8 +1260,7 @@
         cpi->sf.intra_sf.prune_filter_intra_level == 0 &&
         mbmi->mode == SMOOTH_PRED)
       continue;
-    if (!cpi->oxcf.intra_mode_cfg.enable_paeth_intra &&
-        mbmi->mode == PAETH_PRED)
+    if (!intra_mode_cfg->enable_paeth_intra && mbmi->mode == PAETH_PRED)
       continue;
 
     // Skip the evaluation of modes that do not match with the winner mode in
@@ -1271,7 +1269,8 @@
 
     is_directional_mode = av1_is_directional_mode(mbmi->mode);
     if (is_directional_mode && directional_mode_skip_mask[mbmi->mode]) continue;
-    if (is_directional_mode && av1_use_angle_delta(bsize) == 0 &&
+    if (is_directional_mode &&
+        !(av1_use_angle_delta(bsize) && intra_mode_cfg->enable_angle_delta) &&
         mbmi->angle_delta[PLANE_TYPE_Y] != 0)
       continue;
 
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index f1f5e78..5f9f274 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -5120,6 +5120,7 @@
     int64_t yrd_threshold) {
   const AV1_COMMON *const cm = &cpi->common;
   const SPEED_FEATURES *const sf = &cpi->sf;
+  const IntraModeCfg *const intra_mode_cfg = &cpi->oxcf.intra_mode_cfg;
   MACROBLOCKD *const xd = &x->e_mbd;
   MB_MODE_INFO *const mbmi = xd->mi[0];
   IntraModeSearchState *intra_search_state = &search_state->intra_search_state;
@@ -5153,16 +5154,16 @@
 
     const THR_MODES mode_enum =
         get_prediction_mode_idx(mbmi->mode, INTRA_FRAME, NONE_FRAME);
-    if ((!cpi->oxcf.intra_mode_cfg.enable_smooth_intra ||
+    if ((!intra_mode_cfg->enable_smooth_intra ||
          cpi->sf.intra_sf.disable_smooth_intra) &&
         (mbmi->mode == SMOOTH_PRED || mbmi->mode == SMOOTH_H_PRED ||
          mbmi->mode == SMOOTH_V_PRED))
       continue;
-    if (!cpi->oxcf.intra_mode_cfg.enable_paeth_intra &&
-        mbmi->mode == PAETH_PRED)
+    if (!intra_mode_cfg->enable_paeth_intra && mbmi->mode == PAETH_PRED)
       continue;
     if (av1_is_directional_mode(mbmi->mode) &&
-        av1_use_angle_delta(bsize) == 0 && mbmi->angle_delta[PLANE_TYPE_Y] != 0)
+        !(av1_use_angle_delta(bsize) && intra_mode_cfg->enable_angle_delta) &&
+        mbmi->angle_delta[PLANE_TYPE_Y] != 0)
       continue;
     const PREDICTION_MODE this_mode = mbmi->mode;