| Index: source/libvpx/vpxdec.c
|
| ===================================================================
|
| --- source/libvpx/vpxdec.c (revision 281795)
|
| +++ source/libvpx/vpxdec.c (working copy)
|
| @@ -77,6 +77,8 @@
|
| "Enable decoder error-concealment");
|
| static const arg_def_t scalearg = ARG_DEF("S", "scale", 0,
|
| "Scale output frames uniformly");
|
| +static const arg_def_t continuearg =
|
| + ARG_DEF("k", "keep-going", 0, "(debug) Continue decoding after error");
|
|
|
| static const arg_def_t fb_arg =
|
| ARG_DEF(NULL, "frame-buffers", 1, "Number of frame buffers to use");
|
| @@ -88,8 +90,7 @@
|
| &codecarg, &use_yv12, &use_i420, &flipuvarg, &noblitarg,
|
| &progressarg, &limitarg, &skiparg, &postprocarg, &summaryarg, &outputfile,
|
| &threadsarg, &verbosearg, &scalearg, &fb_arg,
|
| - &md5arg,
|
| - &error_concealment,
|
| + &md5arg, &error_concealment, &continuearg,
|
| NULL
|
| };
|
|
|
| @@ -497,6 +498,7 @@
|
| int stop_after = 0, postproc = 0, summary = 0, quiet = 1;
|
| int arg_skip = 0;
|
| int ec_enabled = 0;
|
| + int keep_going = 0;
|
| const VpxInterface *interface = NULL;
|
| const VpxInterface *fourcc_interface = NULL;
|
| uint64_t dx_time = 0;
|
| @@ -632,6 +634,8 @@
|
| }
|
| } else if (arg_match(&arg, &error_concealment, argi)) {
|
| ec_enabled = 1;
|
| + } else if (arg_match(&arg, &continuearg, argi)) {
|
| + keep_going = 1;
|
| }
|
|
|
| #endif
|
| @@ -814,7 +818,8 @@
|
|
|
| if (detail)
|
| warn("Additional information: %s", detail);
|
| - goto fail;
|
| + if (!keep_going)
|
| + goto fail;
|
| }
|
|
|
| vpx_usec_timer_mark(&timer);
|
| @@ -895,7 +900,8 @@
|
| len = y4m_write_file_header(buf, sizeof(buf),
|
| vpx_input_ctx.width,
|
| vpx_input_ctx.height,
|
| - &vpx_input_ctx.framerate, img->fmt);
|
| + &vpx_input_ctx.framerate,
|
| + img->fmt, 8);
|
| if (do_md5) {
|
| MD5Update(&md5_ctx, (md5byte *)buf, (unsigned int)len);
|
| } else {
|
|
|