diff options
author | Jerome Jiang <jianj@google.com> | 2019-03-11 22:45:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-03-11 22:45:47 +0000 |
commit | c72dc3963e5a2d96709669d0471158f8b1a60d9e (patch) | |
tree | 827c169de1c935bc606cd9c68d894a518c6382a1 | |
parent | 855a71dfda9fb2620ae5567a5bb0897aa4fc0d47 (diff) | |
parent | 0b3d9226881f53da91021d24ef74e5df22a24990 (diff) | |
download | libvpx-c72dc3963e5a2d96709669d0471158f8b1a60d9e.tar libvpx-c72dc3963e5a2d96709669d0471158f8b1a60d9e.tar.gz libvpx-c72dc3963e5a2d96709669d0471158f8b1a60d9e.tar.bz2 libvpx-c72dc3963e5a2d96709669d0471158f8b1a60d9e.zip |
Merge "vp9: map speed > 9 to speed 9."
-rw-r--r-- | examples/vp9_spatial_svc_encoder.c | 3 | ||||
-rw-r--r-- | examples/vpx_temporal_svc_encoder.c | 3 | ||||
-rw-r--r-- | vp8/vp8_cx_iface.c | 3 | ||||
-rw-r--r-- | vp9/vp9_cx_iface.c | 3 | ||||
-rw-r--r-- | vpx/vp8cx.h | 2 | ||||
-rw-r--r-- | vpxenc.c | 2 |
6 files changed, 14 insertions, 2 deletions
diff --git a/examples/vp9_spatial_svc_encoder.c b/examples/vp9_spatial_svc_encoder.c index dcde9df66..85463faff 100644 --- a/examples/vp9_spatial_svc_encoder.c +++ b/examples/vp9_spatial_svc_encoder.c @@ -263,6 +263,9 @@ static void parse_command_line(int argc, const char **argv_, #endif } else if (arg_match(&arg, &speed_arg, argi)) { svc_ctx->speed = arg_parse_uint(&arg); + if (svc_ctx->speed > 9) { + warn("Mapping speed %d to speed 9.\n", svc_ctx->speed); + } } else if (arg_match(&arg, &aqmode_arg, argi)) { svc_ctx->aqmode = arg_parse_uint(&arg); } else if (arg_match(&arg, &threads_arg, argi)) { diff --git a/examples/vpx_temporal_svc_encoder.c b/examples/vpx_temporal_svc_encoder.c index ba71ca712..310740975 100644 --- a/examples/vpx_temporal_svc_encoder.c +++ b/examples/vpx_temporal_svc_encoder.c @@ -726,6 +726,9 @@ int main(int argc, char **argv) { if (speed < 0) { die("Invalid speed setting: must be positive"); } + if (strncmp(encoder->name, "vp9", 3) == 0 && speed > 9) { + warn("Mapping speed %d to speed 9.\n", speed); + } for (i = min_args_base; (int)i < min_args_base + mode_to_num_layers[layering_mode]; ++i) { diff --git a/vp8/vp8_cx_iface.c b/vp8/vp8_cx_iface.c index d01d2095f..cec36f779 100644 --- a/vp8/vp8_cx_iface.c +++ b/vp8/vp8_cx_iface.c @@ -483,6 +483,9 @@ static vpx_codec_err_t update_extracfg(vpx_codec_alg_priv_t *ctx, static vpx_codec_err_t set_cpu_used(vpx_codec_alg_priv_t *ctx, va_list args) { struct vp8_extracfg extra_cfg = ctx->vp8_cfg; extra_cfg.cpu_used = CAST(VP8E_SET_CPUUSED, args); + // Use fastest speed setting (speed 16 or -16) if it's set beyond the range. + extra_cfg.cpu_used = VPXMIN(16, extra_cfg.cpu_used); + extra_cfg.cpu_used = VPXMAX(-16, extra_cfg.cpu_used); return update_extracfg(ctx, &extra_cfg); } diff --git a/vp9/vp9_cx_iface.c b/vp9/vp9_cx_iface.c index 85f83a662..bd34856b4 100644 --- a/vp9/vp9_cx_iface.c +++ b/vp9/vp9_cx_iface.c @@ -698,7 +698,10 @@ static vpx_codec_err_t update_extra_cfg(vpx_codec_alg_priv_t *ctx, static vpx_codec_err_t ctrl_set_cpuused(vpx_codec_alg_priv_t *ctx, va_list args) { struct vp9_extracfg extra_cfg = ctx->extra_cfg; + // Use fastest speed setting (speed 9 or -9) if it's set beyond the range. extra_cfg.cpu_used = CAST(VP8E_SET_CPUUSED, args); + extra_cfg.cpu_used = VPXMIN(9, extra_cfg.cpu_used); + extra_cfg.cpu_used = VPXMAX(-9, extra_cfg.cpu_used); return update_extra_cfg(ctx, &extra_cfg); } diff --git a/vpx/vp8cx.h b/vpx/vp8cx.h index b2d57dceb..ab6ba56a8 100644 --- a/vpx/vp8cx.h +++ b/vpx/vp8cx.h @@ -148,7 +148,7 @@ enum vp8e_enc_control_id { * speed at the expense of quality. * * \note Valid range for VP8: -16..16 - * \note Valid range for VP9: -8..8 + * \note Valid range for VP9: -9..9 * * Supported in codecs: VP8, VP9 */ @@ -373,7 +373,7 @@ static const int vp8_arg_ctrl_map[] = { VP8E_SET_CPUUSED, #if CONFIG_VP9_ENCODER static const arg_def_t cpu_used_vp9 = - ARG_DEF(NULL, "cpu-used", 1, "CPU Used (-8..8)"); + ARG_DEF(NULL, "cpu-used", 1, "CPU Used (-9..9)"); static const arg_def_t tile_cols = ARG_DEF(NULL, "tile-columns", 1, "Number of tile columns to use, log2"); static const arg_def_t tile_rows = |