ref: 8e7c5a3c8db28b5367ae4431b5f2bf22b072b0b0
parent: 7fde349b25479bcd54f0363e3e5539e8e8b9a7e9
parent: 6fed5692d2bf4b5ea54ac9e02261d7a097d88dbc
author: James Zern <[email protected]>
date: Thu Mar 30 15:07:43 EDT 2017
Merge changes from topic 'rm-dec-frame-parallel' * changes: vpxdec: silently ignore -frame-parallel vp9: make VPX_CODEC_USE_FRAME_THREADING a no-op
--- a/vp9/vp9_dx_iface.c
+++ b/vp9/vp9_dx_iface.c
@@ -47,12 +47,9 @@
ctx->priv->init_flags = ctx->init_flags;
priv->si.sz = sizeof(priv->si);
priv->flushed = 0;
- // Only do frame parallel decode when threads > 1.
- priv->frame_parallel_decode =
- (ctx->config.dec && (ctx->config.dec->threads > 1) &&
- (ctx->init_flags & VPX_CODEC_USE_FRAME_THREADING))
- ? 1
- : 0;
+ // TODO(jzern): remnants of frame-level parallel decoding should be
+ // removed. cf., https://bugs.chromium.org/p/webm/issues/detail?id=1395
+ priv->frame_parallel_decode = 0;
if (ctx->config.dec) {
priv->cfg = *ctx->config.dec;
ctx->config.dec = &priv->cfg;
--- a/vpxdec.c
+++ b/vpxdec.c
@@ -75,7 +75,7 @@
static const arg_def_t threadsarg =
ARG_DEF("t", "threads", 1, "Max threads to use");
static const arg_def_t frameparallelarg =
- ARG_DEF(NULL, "frame-parallel", 0, "Frame parallel decode");
+ ARG_DEF(NULL, "frame-parallel", 0, "Frame parallel decode (ignored)");
static const arg_def_t verbosearg =
ARG_DEF("v", "verbose", 0, "Show version string");
static const arg_def_t error_concealment =
@@ -493,7 +493,7 @@
size_t bytes_in_buffer = 0, buffer_size = 0;
FILE *infile;
int frame_in = 0, frame_out = 0, flipuv = 0, noblit = 0;
- int do_md5 = 0, progress = 0, frame_parallel = 0;
+ int do_md5 = 0, progress = 0;
int stop_after = 0, postproc = 0, summary = 0, quiet = 1;
int arg_skip = 0;
int ec_enabled = 0;
@@ -591,8 +591,9 @@
else if (arg_match(&arg, &threadsarg, argi))
cfg.threads = arg_parse_uint(&arg);
#if CONFIG_VP9_DECODER
- else if (arg_match(&arg, &frameparallelarg, argi))
- frame_parallel = 1;
+ else if (arg_match(&arg, &frameparallelarg, argi)) {
+ /* ignored for compatibility */
+ }
#endif
else if (arg_match(&arg, &verbosearg, argi))
quiet = 0;
@@ -725,8 +726,7 @@
if (!interface) interface = get_vpx_decoder_by_index(0);
dec_flags = (postproc ? VPX_CODEC_USE_POSTPROC : 0) |
- (ec_enabled ? VPX_CODEC_USE_ERROR_CONCEALMENT : 0) |
- (frame_parallel ? VPX_CODEC_USE_FRAME_THREADING : 0);
+ (ec_enabled ? VPX_CODEC_USE_ERROR_CONCEALMENT : 0);
if (vpx_codec_dec_init(&decoder, interface->codec_interface(), &cfg,
dec_flags)) {
fprintf(stderr, "Failed to initialize decoder: %s\n",
@@ -840,7 +840,7 @@
vpx_usec_timer_mark(&timer);
dx_time += (unsigned int)vpx_usec_timer_elapsed(&timer);
- if (!frame_parallel && !corrupted &&
+ if (!corrupted &&
vpx_codec_control(&decoder, VP8D_GET_FRAME_CORRUPTED, &corrupted)) {
warn("Failed VP8_GET_FRAME_CORRUPTED: %s", vpx_codec_error(&decoder));
if (!keep_going) goto fail;