diff options
Diffstat (limited to 'third_party/aom/apps')
-rw-r--r-- | third_party/aom/apps/aomdec.c | 34 | ||||
-rw-r--r-- | third_party/aom/apps/aomenc.c | 15 |
2 files changed, 40 insertions, 9 deletions
diff --git a/third_party/aom/apps/aomdec.c b/third_party/aom/apps/aomdec.c index 6c4d724a4..48952586f 100644 --- a/third_party/aom/apps/aomdec.c +++ b/third_party/aom/apps/aomdec.c @@ -83,6 +83,8 @@ static const arg_def_t outputfile = ARG_DEF("o", "output", 1, "Output file name pattern (see below)"); static const arg_def_t threadsarg = ARG_DEF("t", "threads", 1, "Max threads to use"); +static const arg_def_t rowmtarg = + ARG_DEF(NULL, "row-mt", 1, "Enable row based multi-threading"); static const arg_def_t verbosearg = ARG_DEF("v", "verbose", 0, "Show version string"); static const arg_def_t scalearg = @@ -114,12 +116,12 @@ static const arg_def_t outallarg = ARG_DEF( NULL, "all-layers", 0, "Output all decoded frames of a scalable bitstream"); static const arg_def_t *all_args[] = { - &help, &codecarg, &use_yv12, &use_i420, &flipuvarg, - &rawvideo, &noblitarg, &progressarg, &limitarg, &skiparg, - &postprocarg, &summaryarg, &outputfile, &threadsarg, &verbosearg, - &scalearg, &fb_arg, &md5arg, &framestatsarg, &continuearg, - &outbitdeptharg, &tilem, &tiler, &tilec, &isannexb, - &oppointarg, &outallarg, NULL + &help, &codecarg, &use_yv12, &use_i420, &flipuvarg, + &rawvideo, &noblitarg, &progressarg, &limitarg, &skiparg, + &postprocarg, &summaryarg, &outputfile, &threadsarg, &rowmtarg, + &verbosearg, &scalearg, &fb_arg, &md5arg, &framestatsarg, + &continuearg, &outbitdeptharg, &tilem, &tiler, &tilec, + &isannexb, &oppointarg, &outallarg, NULL }; #if CONFIG_LIBYUV @@ -512,6 +514,7 @@ static int main_loop(int argc, const char **argv_) { int do_scale = 0; int operating_point = 0; int output_all_layers = 0; + unsigned int row_mt = 0; aom_image_t *scaled_img = NULL; aom_image_t *img_shifted = NULL; int frame_avail, got_data, flush_decoder = 0; @@ -601,6 +604,15 @@ static int main_loop(int argc, const char **argv_) { summary = 1; } else if (arg_match(&arg, &threadsarg, argi)) { cfg.threads = arg_parse_uint(&arg); +#if !CONFIG_MULTITHREAD + if (cfg.threads > 1) { + die("Error: --threads=%d is not supported when CONFIG_MULTITHREAD = " + "0.\n", + cfg.threads); + } +#endif + } else if (arg_match(&arg, &rowmtarg, argi)) { + row_mt = arg_parse_uint(&arg); } else if (arg_match(&arg, &verbosearg, argi)) { quiet = 0; } else if (arg_match(&arg, &scalearg, argi)) { @@ -763,6 +775,11 @@ static int main_loop(int argc, const char **argv_) { aom_codec_error(&decoder)); goto fail; } + + if (aom_codec_control(&decoder, AV1D_SET_ROW_MT, row_mt)) { + fprintf(stderr, "Failed to set row_mt: %s\n", aom_codec_error(&decoder)); + goto fail; + } #endif if (arg_skip) fprintf(stderr, "Skipping first %d frames.\n", arg_skip); @@ -910,9 +927,8 @@ static int main_loop(int argc, const char **argv_) { // Shift up or down if necessary if (output_bit_depth != 0) { const aom_img_fmt_t shifted_fmt = - output_bit_depth == 8 - ? img->fmt ^ (img->fmt & AOM_IMG_FMT_HIGHBITDEPTH) - : img->fmt | AOM_IMG_FMT_HIGHBITDEPTH; + output_bit_depth == 8 ? img->fmt & ~AOM_IMG_FMT_HIGHBITDEPTH + : img->fmt | AOM_IMG_FMT_HIGHBITDEPTH; if (shifted_fmt != img->fmt || output_bit_depth != img->bit_depth) { if (img_shifted && diff --git a/third_party/aom/apps/aomenc.c b/third_party/aom/apps/aomenc.c index db0910220..31cb662e4 100644 --- a/third_party/aom/apps/aomenc.c +++ b/third_party/aom/apps/aomenc.c @@ -475,6 +475,13 @@ static const arg_def_t film_grain_test = static const arg_def_t film_grain_table = ARG_DEF(NULL, "film-grain-table", 1, "Path to file containing film grain parameters"); +#if CONFIG_DENOISE +static const arg_def_t denoise_noise_level = + ARG_DEF(NULL, "denoise-noise-level", 1, + "Amount of noise (from 0 = don't denoise, to 50)"); +static const arg_def_t denoise_block_size = + ARG_DEF(NULL, "denoise-block-size", 1, "Denoise block size (default = 32)"); +#endif static const arg_def_t enable_ref_frame_mvs = ARG_DEF(NULL, "enable-ref-frame-mvs", 1, "Enable temporal mv prediction (default is 1)"); @@ -656,6 +663,10 @@ static const arg_def_t *av1_args[] = { &cpu_used_av1, &timing_info, &film_grain_test, &film_grain_table, +#if CONFIG_DENOISE + &denoise_noise_level, + &denoise_block_size, +#endif &enable_ref_frame_mvs, &bitdeptharg, &inbitdeptharg, @@ -708,6 +719,10 @@ static const int av1_arg_ctrl_map[] = { AOME_SET_CPUUSED, AV1E_SET_TIMING_INFO_TYPE, AV1E_SET_FILM_GRAIN_TEST_VECTOR, AV1E_SET_FILM_GRAIN_TABLE, +#if CONFIG_DENOISE + AV1E_SET_DENOISE_NOISE_LEVEL, + AV1E_SET_DENOISE_BLOCK_SIZE, +#endif AV1E_SET_ENABLE_REF_FRAME_MVS, AV1E_SET_ENABLE_DF, AV1E_SET_ENABLE_ORDER_HINT, |