summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2019-03-11 22:45:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-03-11 22:45:47 +0000
commitc72dc3963e5a2d96709669d0471158f8b1a60d9e (patch)
tree827c169de1c935bc606cd9c68d894a518c6382a1
parent855a71dfda9fb2620ae5567a5bb0897aa4fc0d47 (diff)
parent0b3d9226881f53da91021d24ef74e5df22a24990 (diff)
downloadlibvpx-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.c3
-rw-r--r--examples/vpx_temporal_svc_encoder.c3
-rw-r--r--vp8/vp8_cx_iface.c3
-rw-r--r--vp9/vp9_cx_iface.c3
-rw-r--r--vpx/vp8cx.h2
-rw-r--r--vpxenc.c2
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
*/
diff --git a/vpxenc.c b/vpxenc.c
index 54e098fb5..18db75e0e 100644
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -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 =