ref: 5881601488ef4278d7ca2b06e2ad4d44b3063620
parent: 8121f85473b28183c93fdcef290ed6f74b0b52db
author: Vignesh Venkatasubramanian <[email protected]>
date: Fri Feb 24 06:40:22 EST 2017
vp9: Rename new_mt to row_mt new_mt is a very generic name that will get obsolete soon enough. Since this is exposed as a codec control, renaming it to row_mt to signify row level paralellism. Also renaming the ETHREAD_BIT_MATCH codec control to ROW_MT_BIT_EXACT. Change-Id: Ic7872d78bb3b12fb4cf92ba028ec8e08eb3a9558
--- a/test/vp9_ethread_test.cc
+++ b/test/vp9_ethread_test.cc
@@ -39,8 +39,8 @@
encoding_mode_(GET_PARAM(1)), set_cpu_used_(GET_PARAM(2)) {
init_flags_ = VPX_CODEC_USE_PSNR;
- new_mt_mode_ = 1;
- bit_match_mode_ = 0;
+ row_mt_mode_ = 1;
+ bit_exact_mode_ = 0;
first_pass_only_ = true;
firstpass_stats_.buf = NULL;
firstpass_stats_.sz = 0;
@@ -83,9 +83,9 @@
encoder->Control(VP9E_SET_FRAME_PARALLEL_DECODING, 0);
if (encoding_mode_ == ::libvpx_test::kTwoPassGood)
- encoder->Control(VP9E_SET_NEW_MT, new_mt_mode_);
+ encoder->Control(VP9E_SET_ROW_MT, row_mt_mode_);
- encoder->Control(VP9E_ENABLE_THREAD_BIT_MATCH, bit_match_mode_);
+ encoder->Control(VP9E_ENABLE_ROW_MT_BIT_EXACT, bit_exact_mode_);
encoder_initialized_ = true;
}
@@ -111,8 +111,8 @@
int tiles_;
::libvpx_test::TestMode encoding_mode_;
int set_cpu_used_;
- int new_mt_mode_;
- int bit_match_mode_;
+ int row_mt_mode_;
+ int bit_exact_mode_;
bool first_pass_only_;
vpx_fixed_buf_t firstpass_stats_;
};
@@ -152,16 +152,16 @@
// stats are compared to check if the stats match.
uint8_t *stats1 = reinterpret_cast<uint8_t *>(fp_stats->buf);
uint8_t *stats2 = stats1 + fp_stats->sz / 2;
- ::libvpx_test::MD5 md5_new_mt_0, md5_new_mt_1;
+ ::libvpx_test::MD5 md5_row_mt_0, md5_row_mt_1;
- md5_new_mt_0.Add(stats1, fp_stats->sz / 2);
- const char *md5_new_mt_0_str = md5_new_mt_0.Get();
+ md5_row_mt_0.Add(stats1, fp_stats->sz / 2);
+ const char *md5_row_mt_0_str = md5_row_mt_0.Get();
- md5_new_mt_1.Add(stats2, fp_stats->sz / 2);
- const char *md5_new_mt_1_str = md5_new_mt_1.Get();
+ md5_row_mt_1.Add(stats2, fp_stats->sz / 2);
+ const char *md5_row_mt_1_str = md5_row_mt_1.Get();
// Check md5 match.
- ASSERT_STREQ(md5_new_mt_0_str, md5_new_mt_1_str)
+ ASSERT_STREQ(md5_row_mt_0_str, md5_row_mt_1_str)
<< "MD5 checksums don't match";
// Reset firstpass_stats_ to 0.
@@ -175,23 +175,23 @@
first_pass_only_ = true;
cfg_.rc_target_bitrate = 1000;
- // Test new_mt_mode: 0 vs 1 (threads = 1, tiles_ = 0)
- bit_match_mode_ = 0;
+ // Test row_mt_mode: 0 vs 1 (threads = 1, tiles_ = 0)
+ bit_exact_mode_ = 0;
tiles_ = 0;
cfg_.g_threads = 1;
- new_mt_mode_ = 0;
+ row_mt_mode_ = 0;
init_flags_ = VPX_CODEC_USE_PSNR;
ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
- new_mt_mode_ = 1;
+ row_mt_mode_ = 1;
ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
- // Compare to check if using or not using new-mt generates matching stats.
+ // Compare to check if using or not using row-mt generates matching stats.
compare_fp_stats(&firstpass_stats_);
// Test multi-threads: single thread vs 4 threads
- new_mt_mode_ = 1;
+ row_mt_mode_ = 1;
tiles_ = 2;
cfg_.g_threads = 1;
@@ -204,19 +204,19 @@
// Compare to check if single-thread and multi-thread stats matches.
compare_fp_stats(&firstpass_stats_);
- // Test new_mt_mode: 0 vs 1 (threads = 8, tiles_ = 2)
- bit_match_mode_ = 1;
+ // Test row_mt_mode: 0 vs 1 (threads = 8, tiles_ = 2)
+ bit_exact_mode_ = 1;
tiles_ = 2;
cfg_.g_threads = 8;
- new_mt_mode_ = 0;
+ row_mt_mode_ = 0;
init_flags_ = VPX_CODEC_USE_PSNR;
ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
- new_mt_mode_ = 1;
+ row_mt_mode_ = 1;
ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
- // Compare to check if stats match with new-mt=0/1.
+ // Compare to check if stats match with row-mt=0/1.
compare_fp_stats_md5(&firstpass_stats_);
}
@@ -231,8 +231,8 @@
encoding_mode_(GET_PARAM(1)), set_cpu_used_(GET_PARAM(2)) {
init_flags_ = VPX_CODEC_USE_PSNR;
md5_.clear();
- new_mt_mode_ = 1;
- bit_match_mode_ = 0;
+ row_mt_mode_ = 1;
+ bit_exact_mode_ = 0;
psnr_ = 0.0;
nframes_ = 0;
}
@@ -275,11 +275,11 @@
encoder->Control(VP8E_SET_ARNR_TYPE, 3);
encoder->Control(VP9E_SET_FRAME_PARALLEL_DECODING, 0);
- encoder->Control(VP9E_SET_NEW_MT, new_mt_mode_);
- // While new_mt = 1/0(with/without row-based multi-threading), several
+ encoder->Control(VP9E_SET_ROW_MT, row_mt_mode_);
+ // While row_mt = 1/0(with/without row-based multi-threading), several
// speed features that would adaptively adjust encoding parameters have
// to be disabled to guarantee the bit match of the resulted bitstream.
- encoder->Control(VP9E_ENABLE_THREAD_BIT_MATCH, bit_match_mode_);
+ encoder->Control(VP9E_ENABLE_ROW_MT_BIT_EXACT, bit_exact_mode_);
} else {
encoder->Control(VP8E_SET_ENABLEAUTOALTREF, 0);
encoder->Control(VP9E_SET_AQ_MODE, 3);
@@ -318,8 +318,8 @@
int threads_;
::libvpx_test::TestMode encoding_mode_;
int set_cpu_used_;
- int new_mt_mode_;
- int bit_match_mode_;
+ int row_mt_mode_;
+ int bit_exact_mode_;
double psnr_;
unsigned int nframes_;
std::vector<std::string> md5_;
@@ -331,8 +331,8 @@
// Part 1: Bit exact test for new_mt_mode_ = 0.
// This part keeps original unit tests done before new-mt code is checked in.
- new_mt_mode_ = 0;
- bit_match_mode_ = 0;
+ row_mt_mode_ = 0;
+ bit_exact_mode_ = 0;
// Encode using single thread.
cfg_.g_threads = 1;
@@ -351,8 +351,8 @@
ASSERT_EQ(single_thr_md5, multi_thr_md5);
// Part 2: new_mt_mode_ = 0 vs new_mt_mode_ = 1 single thread bit exact test.
- new_mt_mode_ = 1;
- bit_match_mode_ = 0;
+ row_mt_mode_ = 1;
+ bit_exact_mode_ = 0;
// Encode using single thread
cfg_.g_threads = 1;
@@ -364,8 +364,8 @@
ASSERT_EQ(single_thr_md5, new_mt_single_thr_md5);
// Part 3: Bit exact test with new-mt on
- new_mt_mode_ = 1;
- bit_match_mode_ = 1;
+ row_mt_mode_ = 1;
+ bit_exact_mode_ = 1;
new_mt_single_thr_md5.clear();
// Encode using single thread.
@@ -385,8 +385,8 @@
ASSERT_EQ(new_mt_single_thr_md5, new_mt_multi_thr_md5);
// Part 4: PSNR test with bit_match_mode_ = 0
- new_mt_mode_ = 1;
- bit_match_mode_ = 0;
+ row_mt_mode_ = 1;
+ bit_exact_mode_ = 0;
// Encode using single thread.
cfg_.g_threads = 1;
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -4341,7 +4341,7 @@
}
#endif
- if (!cpi->new_mt) {
+ if (!cpi->row_mt) {
cpi->row_mt_sync_read_ptr = vp9_row_mt_sync_read_dummy;
cpi->row_mt_sync_write_ptr = vp9_row_mt_sync_write_dummy;
// If allowed, encoding tiles in parallel with one thread handling one
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -1575,7 +1575,7 @@
highbd_set_var_fns(cpi);
#endif
- vp9_set_new_mt(cpi);
+ vp9_set_row_mt(cpi);
}
#ifndef M_LOG2_E
@@ -5223,16 +5223,16 @@
}
}
-void vp9_set_new_mt(VP9_COMP *cpi) {
+void vp9_set_row_mt(VP9_COMP *cpi) {
// Enable row based multi-threading for supported modes of encoding
- cpi->new_mt = 0;
+ cpi->row_mt = 0;
if (((cpi->oxcf.mode == GOOD || cpi->oxcf.mode == BEST) &&
cpi->oxcf.speed < 5 && cpi->oxcf.pass == 1) &&
- cpi->oxcf.new_mt && !cpi->use_svc)
- cpi->new_mt = 1;
+ cpi->oxcf.row_mt && !cpi->use_svc)
+ cpi->row_mt = 1;
if (cpi->oxcf.mode == GOOD && cpi->oxcf.speed < 5 &&
- (cpi->oxcf.pass == 0 || cpi->oxcf.pass == 2) && cpi->oxcf.new_mt &&
+ (cpi->oxcf.pass == 0 || cpi->oxcf.pass == 2) && cpi->oxcf.row_mt &&
!cpi->use_svc)
- cpi->new_mt = 1;
+ cpi->row_mt = 1;
}
--- a/vp9/encoder/vp9_encoder.h
+++ b/vp9/encoder/vp9_encoder.h
@@ -267,8 +267,8 @@
int render_height;
VP9E_TEMPORAL_LAYERING_MODE temporal_layering_mode;
- int new_mt;
- unsigned int ethread_bit_match;
+ int row_mt;
+ unsigned int row_mt_bit_exact;
} VP9EncoderConfig;
static INLINE int is_lossless_requested(const VP9EncoderConfig *cfg) {
@@ -691,7 +691,7 @@
void (*row_mt_sync_read_ptr)(VP9RowMTSync *const, int, int);
void (*row_mt_sync_write_ptr)(VP9RowMTSync *const, int, int, const int);
ARNRFilterData arnr_filter_data;
- int new_mt;
+ int row_mt;
// Previous Partition Info
BLOCK_SIZE *prev_partition;
@@ -909,7 +909,7 @@
void vp9_new_framerate(VP9_COMP *cpi, double framerate);
-void vp9_set_new_mt(VP9_COMP *cpi);
+void vp9_set_row_mt(VP9_COMP *cpi);
#define LAYER_IDS_TO_IDX(sl, tl, num_tl) ((sl) * (num_tl) + (tl))
--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -979,12 +979,12 @@
if (log_intra < 10.0) {
mb_intra_factor = 1.0 + ((10.0 - log_intra) * 0.05);
fp_acc_data->intra_factor += mb_intra_factor;
- if (cpi->oxcf.ethread_bit_match)
+ if (cpi->oxcf.row_mt_bit_exact)
cpi->twopass.fp_mb_float_stats[mb_index].frame_mb_intra_factor =
mb_intra_factor;
} else {
fp_acc_data->intra_factor += 1.0;
- if (cpi->oxcf.ethread_bit_match)
+ if (cpi->oxcf.row_mt_bit_exact)
cpi->twopass.fp_mb_float_stats[mb_index].frame_mb_intra_factor = 1.0;
}
@@ -999,12 +999,12 @@
if ((level_sample < DARK_THRESH) && (log_intra < 9.0)) {
mb_brightness_factor = 1.0 + (0.01 * (DARK_THRESH - level_sample));
fp_acc_data->brightness_factor += mb_brightness_factor;
- if (cpi->oxcf.ethread_bit_match)
+ if (cpi->oxcf.row_mt_bit_exact)
cpi->twopass.fp_mb_float_stats[mb_index].frame_mb_brightness_factor =
mb_brightness_factor;
} else {
fp_acc_data->brightness_factor += 1.0;
- if (cpi->oxcf.ethread_bit_match)
+ if (cpi->oxcf.row_mt_bit_exact)
cpi->twopass.fp_mb_float_stats[mb_index].frame_mb_brightness_factor =
1.0;
}
@@ -1166,7 +1166,7 @@
if (((this_error - intrapenalty) * 9 <= motion_error * 10) &&
(this_error < (2 * intrapenalty))) {
fp_acc_data->neutral_count += 1.0;
- if (cpi->oxcf.ethread_bit_match)
+ if (cpi->oxcf.row_mt_bit_exact)
cpi->twopass.fp_mb_float_stats[mb_index].frame_mb_neutral_count =
1.0;
// Also track cases where the intra is not much worse than the inter
@@ -1176,7 +1176,7 @@
mb_neutral_count =
(double)motion_error / DOUBLE_DIVIDE_CHECK((double)this_error);
fp_acc_data->neutral_count += mb_neutral_count;
- if (cpi->oxcf.ethread_bit_match)
+ if (cpi->oxcf.row_mt_bit_exact)
cpi->twopass.fp_mb_float_stats[mb_index].frame_mb_neutral_count =
mb_neutral_count;
}
@@ -1297,7 +1297,7 @@
recon_uvoffset += uv_mb_height;
// Accumulate row level stats to the corresponding tile stats
- if (cpi->new_mt && mb_col == (tile.mi_col_end >> 1) - 1)
+ if (cpi->row_mt && mb_col == (tile.mi_col_end >> 1) - 1)
accumulate_fp_mb_row_stat(tile_data, fp_acc_data);
(*(cpi->row_mt_sync_write_ptr))(&tile_data->row_mt_sync, mb_row, c,
@@ -1424,7 +1424,7 @@
cm->log2_tile_rows = 0;
- if (cpi->oxcf.ethread_bit_match && cpi->twopass.fp_mb_float_stats == NULL)
+ if (cpi->oxcf.row_mt_bit_exact && cpi->twopass.fp_mb_float_stats == NULL)
CHECK_MEM_ERROR(
cm, cpi->twopass.fp_mb_float_stats,
vpx_calloc(cm->MBs * sizeof(*cpi->twopass.fp_mb_float_stats), 1));
@@ -1432,7 +1432,7 @@
{
FIRSTPASS_STATS fps;
TileDataEnc *first_tile_col;
- if (!cpi->new_mt) {
+ if (!cpi->row_mt) {
cm->log2_tile_cols = 0;
cpi->row_mt_sync_read_ptr = vp9_row_mt_sync_read_dummy;
cpi->row_mt_sync_write_ptr = vp9_row_mt_sync_write_dummy;
@@ -1441,13 +1441,13 @@
} else {
cpi->row_mt_sync_read_ptr = vp9_row_mt_sync_read;
cpi->row_mt_sync_write_ptr = vp9_row_mt_sync_write;
- if (cpi->oxcf.ethread_bit_match) {
+ if (cpi->oxcf.row_mt_bit_exact) {
cm->log2_tile_cols = 0;
vp9_zero_array(cpi->twopass.fp_mb_float_stats, cm->MBs);
}
vp9_encode_fp_row_mt(cpi);
first_tile_col = &cpi->tile_data[0];
- if (cpi->oxcf.ethread_bit_match)
+ if (cpi->oxcf.row_mt_bit_exact)
accumulate_floating_point_stats(cpi, first_tile_col);
first_pass_stat_calc(cpi, &fps, &(first_tile_col->fp_data));
}
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -3576,7 +3576,7 @@
if (best_mode_index < 0 || best_rd >= best_rd_so_far) {
// If adaptive interp filter is enabled, then the current leaf node of 8x8
// data is needed for sub8x8. Hence preserve the context.
- if (cpi->new_mt && bsize == BLOCK_8X8) ctx->mic = *xd->mi[0];
+ if (cpi->row_mt && bsize == BLOCK_8X8) ctx->mic = *xd->mi[0];
rd_cost->rate = INT_MAX;
rd_cost->rdcost = INT64_MAX;
return;
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -591,7 +591,7 @@
// With row based multi-threading, the following speed features
// have to be disabled to guarantee that bitstreams encoded with single thread
// and multiple threads match
- if (cpi->oxcf.ethread_bit_match) {
+ if (cpi->oxcf.row_mt_bit_exact) {
sf->adaptive_rd_thresh = 0;
sf->allow_exhaustive_searches = 0;
sf->adaptive_pred_interp_filter = 0;
@@ -762,7 +762,7 @@
// With row based multi-threading, the following speed features
// have to be disabled to guarantee that bitstreams encoded with single thread
// and multiple threads match
- if (cpi->oxcf.ethread_bit_match) {
+ if (cpi->oxcf.row_mt_bit_exact) {
sf->adaptive_rd_thresh = 0;
sf->allow_exhaustive_searches = 0;
sf->adaptive_pred_interp_filter = 0;
--- a/vp9/encoder/vp9_temporal_filter.c
+++ b/vp9/encoder/vp9_temporal_filter.c
@@ -766,7 +766,7 @@
set_error_per_bit(&cpi->td.mb, rdmult);
vp9_initialize_me_consts(cpi, &cpi->td.mb, ARNR_FILT_QINDEX);
- if (!cpi->new_mt)
+ if (!cpi->row_mt)
temporal_filter_iterate_c(cpi);
else
vp9_temporal_filter_row_mt(cpi);
--- a/vp9/vp9_cx_iface.c
+++ b/vp9/vp9_cx_iface.c
@@ -51,8 +51,8 @@
vpx_color_range_t color_range;
int render_width;
int render_height;
- unsigned int new_mt;
- unsigned int ethread_bit_match;
+ unsigned int row_mt;
+ unsigned int row_mt_bit_exact;
};
static struct vp9_extracfg default_extra_cfg = {
@@ -84,8 +84,8 @@
0, // color range
0, // render width
0, // render height
- 1, // new_mt
- 0, // ethread_bit_match
+ 1, // row_mt
+ 0, // row_mt_bit_exact
};
struct vpx_codec_alg_priv {
@@ -249,8 +249,8 @@
"kf_min_dist not supported in auto mode, use 0 "
"or kf_max_dist instead.");
- RANGE_CHECK(extra_cfg, new_mt, 0, 1);
- RANGE_CHECK(extra_cfg, ethread_bit_match, 0, 1);
+ RANGE_CHECK(extra_cfg, row_mt, 0, 1);
+ RANGE_CHECK(extra_cfg, row_mt_bit_exact, 0, 1);
RANGE_CHECK(extra_cfg, enable_auto_alt_ref, 0, 2);
RANGE_CHECK(extra_cfg, cpu_used, -8, 8);
RANGE_CHECK_HI(extra_cfg, noise_sensitivity, 6);
@@ -560,8 +560,8 @@
oxcf->target_level = extra_cfg->target_level;
- oxcf->new_mt = extra_cfg->new_mt;
- oxcf->ethread_bit_match = extra_cfg->ethread_bit_match;
+ oxcf->row_mt = extra_cfg->row_mt;
+ oxcf->row_mt_bit_exact = extra_cfg->row_mt_bit_exact;
for (sl = 0; sl < oxcf->ss_number_layers; ++sl) {
#if CONFIG_SPATIAL_SVC
@@ -851,17 +851,17 @@
return update_extra_cfg(ctx, &extra_cfg);
}
-static vpx_codec_err_t ctrl_set_new_mt(vpx_codec_alg_priv_t *ctx,
+static vpx_codec_err_t ctrl_set_row_mt(vpx_codec_alg_priv_t *ctx,
va_list args) {
struct vp9_extracfg extra_cfg = ctx->extra_cfg;
- extra_cfg.new_mt = CAST(VP9E_SET_NEW_MT, args);
+ extra_cfg.row_mt = CAST(VP9E_SET_ROW_MT, args);
return update_extra_cfg(ctx, &extra_cfg);
}
-static vpx_codec_err_t ctrl_set_ethread_bit_match(vpx_codec_alg_priv_t *ctx,
- va_list args) {
+static vpx_codec_err_t ctrl_enable_row_mt_bit_exact(vpx_codec_alg_priv_t *ctx,
+ va_list args) {
struct vp9_extracfg extra_cfg = ctx->extra_cfg;
- extra_cfg.ethread_bit_match = CAST(VP9E_ENABLE_THREAD_BIT_MATCH, args);
+ extra_cfg.row_mt_bit_exact = CAST(VP9E_ENABLE_ROW_MT_BIT_EXACT, args);
return update_extra_cfg(ctx, &extra_cfg);
}
@@ -1460,7 +1460,7 @@
return VPX_CODEC_INVALID_PARAM;
}
- vp9_set_new_mt(ctx->cpi);
+ vp9_set_row_mt(ctx->cpi);
return VPX_CODEC_OK;
}
@@ -1620,8 +1620,8 @@
{ VP9E_SET_SVC_REF_FRAME_CONFIG, ctrl_set_svc_ref_frame_config },
{ VP9E_SET_RENDER_SIZE, ctrl_set_render_size },
{ VP9E_SET_TARGET_LEVEL, ctrl_set_target_level },
- { VP9E_SET_NEW_MT, ctrl_set_new_mt },
- { VP9E_ENABLE_THREAD_BIT_MATCH, ctrl_set_ethread_bit_match },
+ { VP9E_SET_ROW_MT, ctrl_set_row_mt },
+ { VP9E_ENABLE_ROW_MT_BIT_EXACT, ctrl_enable_row_mt_bit_exact },
// Getters
{ VP8E_GET_LAST_QUANTIZER, ctrl_get_quantizer },
--- a/vpx/vp8cx.h
+++ b/vpx/vp8cx.h
@@ -553,16 +553,16 @@
*
* Supported in codecs: VP9
*/
- VP9E_SET_NEW_MT,
+ VP9E_SET_ROW_MT,
- /*!\brief Codec control function to enable the bit match result in multi-
- * threaded encoder unit tests.
+ /*!\brief Codec control function to enable bit-exact bitstream when row level
+ * multi-threading is enabled.
*
* 0 : off, 1 : on
*
* Supported in codecs: VP9
*/
- VP9E_ENABLE_THREAD_BIT_MATCH,
+ VP9E_ENABLE_ROW_MT_BIT_EXACT,
/*!\brief Codec control function to get bitstream level.
*
@@ -855,11 +855,11 @@
VPX_CTRL_USE_TYPE(VP9E_SET_TARGET_LEVEL, unsigned int)
#define VPX_CTRL_VP9E_SET_TARGET_LEVEL
-VPX_CTRL_USE_TYPE(VP9E_SET_NEW_MT, unsigned int)
-#define VPX_CTRL_VP9E_SET_NEW_MT
+VPX_CTRL_USE_TYPE(VP9E_SET_ROW_MT, unsigned int)
+#define VPX_CTRL_VP9E_SET_ROW_MT
-VPX_CTRL_USE_TYPE(VP9E_ENABLE_THREAD_BIT_MATCH, unsigned int)
-#define VPX_CTRL_VP9E_ENABLE_THREAD_BIT_MATCH
+VPX_CTRL_USE_TYPE(VP9E_ENABLE_ROW_MT_BIT_EXACT, unsigned int)
+#define VPX_CTRL_VP9E_ENABLE_ROW_MT_BIT_EXACT
VPX_CTRL_USE_TYPE(VP9E_GET_LEVEL, int *)
#define VPX_CTRL_VP9E_GET_LEVEL
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -471,8 +471,9 @@
"Target level (255: off (default); 0: only keep level stats; 10: level 1.0;"
" 11: level 1.1; ... 62: level 6.2)");
-static const arg_def_t new_mt =
- ARG_DEF(NULL, "new-mt", 1, "Enable row based multi-threading in VP9");
+static const arg_def_t row_mt =
+ ARG_DEF(NULL, "row-mt", 1,
+ "Enable row based non-deterministic multi-threading in VP9");
#endif
#if CONFIG_VP9_ENCODER
@@ -501,7 +502,7 @@
&min_gf_interval,
&max_gf_interval,
&target_level,
- &new_mt,
+ &row_mt,
#if CONFIG_VP9_HIGHBITDEPTH
&bitdeptharg,
&inbitdeptharg,
@@ -532,7 +533,7 @@
VP9E_SET_MIN_GF_INTERVAL,
VP9E_SET_MAX_GF_INTERVAL,
VP9E_SET_TARGET_LEVEL,
- VP9E_SET_NEW_MT,
+ VP9E_SET_ROW_MT,
0 };
#endif