Remove global-motion-method argument to aomenc

This argument was added for testing purposes, but in practice disflow
is the better option in practically all cases. Therefore this is not
a useful option to expose to end users.

Importantly, we have not done a full release since this option was
added to the codebase, so this argument is not part of the stable
API yet. Therefore it is safe to remove.

Change-Id: I898465904f9a7738f46e47c62f359ba573d47ea5
(cherry picked from commit 0c56d1292056a7e2af6e7f5d1fad018c78291d5f)
diff --git a/aom_dsp/flow_estimation/flow_estimation.h b/aom_dsp/flow_estimation/flow_estimation.h
index ea38b27..4f2192c 100644
--- a/aom_dsp/flow_estimation/flow_estimation.h
+++ b/aom_dsp/flow_estimation/flow_estimation.h
@@ -37,6 +37,7 @@
 // number of parameters used by each transformation in TransformationTypes
 static const int trans_model_params[TRANS_TYPES] = { 0, 2, 4, 6 };
 
+// Available methods which can be used for global motion estimation
 typedef enum {
   GLOBAL_MOTION_METHOD_FEATURE_MATCH,
   GLOBAL_MOTION_METHOD_DISFLOW,
@@ -65,6 +66,12 @@
 // is not large enough to need all of the specified levels
 extern const int global_motion_pyr_levels[GLOBAL_MOTION_METHODS];
 
+// Which global motion method should we use in practice?
+// Disflow is both faster and gives better results than feature matching in
+// practically all cases, so we use disflow by default
+static const GlobalMotionMethod default_global_motion_method =
+    GLOBAL_MOTION_METHOD_DISFLOW;
+
 extern const double kIdentityParams[MAX_PARAMDIM];
 
 // Compute a global motion model between the given source and ref frames.
diff --git a/apps/aomenc.c b/apps/aomenc.c
index d8f133d..09306f2 100644
--- a/apps/aomenc.c
+++ b/apps/aomenc.c
@@ -457,7 +457,6 @@
   &g_av1_codec_arg_defs.sb_qp_sweep,
   &g_av1_codec_arg_defs.dist_metric,
   &g_av1_codec_arg_defs.kf_max_pyr_height,
-  &g_av1_codec_arg_defs.global_motion_method,
   NULL,
 };
 
diff --git a/av1/arg_defs.c b/av1/arg_defs.c
index 56cbe6a..35a2ab4 100644
--- a/av1/arg_defs.c
+++ b/av1/arg_defs.c
@@ -140,12 +140,6 @@
   { "ebu3213", AOM_CICP_CP_EBU_3213 },
   { NULL, 0 }
 };
-
-static const struct arg_enum_list global_motion_method_enum[] = {
-  { "feature-match", GLOBAL_MOTION_METHOD_FEATURE_MATCH },
-  { "disflow", GLOBAL_MOTION_METHOD_DISFLOW },
-  { NULL, 0 }
-};
 #endif  // CONFIG_AV1_ENCODER
 
 const av1_codec_arg_definitions_t g_av1_codec_arg_defs = {
@@ -704,9 +698,5 @@
       ARG_DEF(NULL, "sb-qp-sweep", 1,
               "When set to 1, enable the superblock level qp sweep for a "
               "given lambda to minimize the rdcost."),
-  .global_motion_method = ARG_DEF_ENUM(NULL, "global-motion-method", 1,
-                                       "Global motion search method "
-                                       "(default: disflow):",
-                                       global_motion_method_enum),
 #endif  // CONFIG_AV1_ENCODER
 };
diff --git a/av1/arg_defs.h b/av1/arg_defs.h
index c7a640b..b9d0cfe 100644
--- a/av1/arg_defs.h
+++ b/av1/arg_defs.h
@@ -236,7 +236,6 @@
   arg_def_t strict_level_conformance;
   arg_def_t kf_max_pyr_height;
   arg_def_t sb_qp_sweep;
-  arg_def_t global_motion_method;
 #endif  // CONFIG_AV1_ENCODER
 } av1_codec_arg_definitions_t;
 
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index 59cb8e9..403f994 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -199,7 +199,6 @@
   int strict_level_conformance;
   int kf_max_pyr_height;
   int sb_qp_sweep;
-  GlobalMotionMethod global_motion_method;
 };
 
 #if CONFIG_REALTIME_ONLY
@@ -346,26 +345,25 @@
       SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX,
       SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX,
       SEQ_LEVEL_MAX, SEQ_LEVEL_MAX,
-  },                             // target_seq_level_idx
-  0,                             // tier_mask
-  0,                             // min_cr
-  COST_UPD_OFF,                  // coeff_cost_upd_freq
-  COST_UPD_OFF,                  // mode_cost_upd_freq
-  COST_UPD_OFF,                  // mv_cost_upd_freq
-  COST_UPD_OFF,                  // dv_cost_upd_freq
-  0,                             // ext_tile_debug
-  0,                             // sb_multipass_unit_test
-  -1,                            // passes
-  -1,                            // fwd_kf_dist
-  LOOPFILTER_ALL,                // loopfilter_control
-  0,                             // skip_postproc_filtering
-  NULL,                          // two_pass_output
-  NULL,                          // second_pass_log
-  0,                             // auto_intra_tools_off
-  0,                             // strict_level_conformance
-  -1,                            // kf_max_pyr_height
-  0,                             // sb_qp_sweep
-  GLOBAL_MOTION_METHOD_DISFLOW,  // global_motion_method
+  },               // target_seq_level_idx
+  0,               // tier_mask
+  0,               // min_cr
+  COST_UPD_OFF,    // coeff_cost_upd_freq
+  COST_UPD_OFF,    // mode_cost_upd_freq
+  COST_UPD_OFF,    // mv_cost_upd_freq
+  COST_UPD_OFF,    // dv_cost_upd_freq
+  0,               // ext_tile_debug
+  0,               // sb_multipass_unit_test
+  -1,              // passes
+  -1,              // fwd_kf_dist
+  LOOPFILTER_ALL,  // loopfilter_control
+  0,               // skip_postproc_filtering
+  NULL,            // two_pass_output
+  NULL,            // second_pass_log
+  0,               // auto_intra_tools_off
+  0,               // strict_level_conformance
+  -1,              // kf_max_pyr_height
+  0,               // sb_qp_sweep
 };
 #else
 static const struct av1_extracfg default_extra_cfg = {
@@ -498,26 +496,25 @@
       SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX,
       SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX, SEQ_LEVEL_MAX,
       SEQ_LEVEL_MAX, SEQ_LEVEL_MAX,
-  },                             // target_seq_level_idx
-  0,                             // tier_mask
-  0,                             // min_cr
-  COST_UPD_SB,                   // coeff_cost_upd_freq
-  COST_UPD_SB,                   // mode_cost_upd_freq
-  COST_UPD_SB,                   // mv_cost_upd_freq
-  COST_UPD_SB,                   // dv_cost_upd_freq
-  0,                             // ext_tile_debug
-  0,                             // sb_multipass_unit_test
-  -1,                            // passes
-  -1,                            // fwd_kf_dist
-  LOOPFILTER_ALL,                // loopfilter_control
-  0,                             // skip_postproc_filtering
-  NULL,                          // two_pass_output
-  NULL,                          // second_pass_log
-  0,                             // auto_intra_tools_off
-  0,                             // strict_level_conformance
-  -1,                            // kf_max_pyr_height
-  0,                             // sb_qp_sweep
-  GLOBAL_MOTION_METHOD_DISFLOW,  // global_motion_method
+  },               // target_seq_level_idx
+  0,               // tier_mask
+  0,               // min_cr
+  COST_UPD_SB,     // coeff_cost_upd_freq
+  COST_UPD_SB,     // mode_cost_upd_freq
+  COST_UPD_SB,     // mv_cost_upd_freq
+  COST_UPD_SB,     // dv_cost_upd_freq
+  0,               // ext_tile_debug
+  0,               // sb_multipass_unit_test
+  -1,              // passes
+  -1,              // fwd_kf_dist
+  LOOPFILTER_ALL,  // loopfilter_control
+  0,               // skip_postproc_filtering
+  NULL,            // two_pass_output
+  NULL,            // second_pass_log
+  0,               // auto_intra_tools_off
+  0,               // strict_level_conformance
+  -1,              // kf_max_pyr_height
+  0,               // sb_qp_sweep
 };
 #endif
 
@@ -880,8 +877,6 @@
   RANGE_CHECK_BOOL(extra_cfg, auto_intra_tools_off);
   RANGE_CHECK_BOOL(extra_cfg, strict_level_conformance);
   RANGE_CHECK_BOOL(extra_cfg, sb_qp_sweep);
-  RANGE_CHECK(extra_cfg, global_motion_method,
-              GLOBAL_MOTION_METHOD_FEATURE_MATCH, GLOBAL_MOTION_METHOD_LAST);
 
   RANGE_CHECK(extra_cfg, kf_max_pyr_height, -1, 5);
   if (extra_cfg->kf_max_pyr_height != -1 &&
@@ -1483,8 +1478,6 @@
   oxcf->kf_max_pyr_height = extra_cfg->kf_max_pyr_height;
 
   oxcf->sb_qp_sweep = extra_cfg->sb_qp_sweep;
-
-  oxcf->global_motion_method = extra_cfg->global_motion_method;
 }
 
 AV1EncoderConfig av1_get_encoder_config(const aom_codec_enc_cfg_t *cfg) {
@@ -4144,9 +4137,6 @@
                               err_string)) {
     ctx->cfg.tile_height_count = arg_parse_list_helper(
         &arg, ctx->cfg.tile_heights, MAX_TILE_HEIGHTS, err_string);
-  } else if (arg_match_helper(&arg, &g_av1_codec_arg_defs.global_motion_method,
-                              argv, err_string)) {
-    extra_cfg.global_motion_method = arg_parse_enum_helper(&arg, err_string);
   } else {
     match = 0;
     snprintf(err_string, ARG_ERR_MSG_MAX_LEN, "Cannot find aom option %s",
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 8c14bbf..d5d7dcc 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -946,7 +946,7 @@
 #else
   if (oxcf->tool_cfg.enable_global_motion) {
     cpi->image_pyramid_levels =
-        global_motion_pyr_levels[oxcf->global_motion_method];
+        global_motion_pyr_levels[default_global_motion_method];
   } else {
     cpi->image_pyramid_levels = 0;
   }
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 9f93de0..2965f9b 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -1088,9 +1088,6 @@
 
   // A flag to control if we enable the superblock qp sweep for a given lambda
   int sb_qp_sweep;
-
-  // Selected global motion search method
-  GlobalMotionMethod global_motion_method;
   /*!\endcond */
 } AV1EncoderConfig;
 
diff --git a/av1/encoder/global_motion_facade.c b/av1/encoder/global_motion_facade.c
index 564f509..1a00cbb 100644
--- a/av1/encoder/global_motion_facade.c
+++ b/av1/encoder/global_motion_facade.c
@@ -97,7 +97,7 @@
   assert(ref_buf[frame] != NULL);
   TransformationType model;
   int bit_depth = cpi->common.seq_params->bit_depth;
-  GlobalMotionMethod global_motion_method = cpi->oxcf.global_motion_method;
+  GlobalMotionMethod global_motion_method = default_global_motion_method;
   int num_refinements = cpi->sf.gm_sf.num_refinement_steps;
 
   for (model = ROTZOOM; model < GLOBAL_TRANS_TYPES_ENC; ++model) {