ref: 0b3d9226881f53da91021d24ef74e5df22a24990
parent: 8971779e60c5127d2cf0d74b0b6493a07e3e5132
author: Jerome Jiang <jianj@google.com>
date: Fri Mar 1 04:50:50 EST 2019
vp9: map speed > 9 to speed 9. Report warning in example encoder. Change-Id: Iec4cdffce9faa65241756fbdac498214c8b93cc1
--- a/examples/vp9_spatial_svc_encoder.c
+++ b/examples/vp9_spatial_svc_encoder.c
@@ -261,6 +261,9 @@
#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)) {
--- a/examples/vpx_temporal_svc_encoder.c
+++ b/examples/vpx_temporal_svc_encoder.c
@@ -726,6 +726,9 @@
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) {
--- a/vp8/vp8_cx_iface.c
+++ b/vp8/vp8_cx_iface.c
@@ -483,6 +483,9 @@
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);
}
--- a/vp9/vp9_cx_iface.c
+++ b/vp9/vp9_cx_iface.c
@@ -698,7 +698,10 @@
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);
}
--- a/vpx/vp8cx.h
+++ b/vpx/vp8cx.h
@@ -148,7 +148,7 @@
* 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
*/
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -373,7 +373,7 @@
#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 =