From 30f3017697d10fd6a1698e2d4b68bb67acf3482d Mon Sep 17 00:00:00 2001 From: Jim Bankoski Date: Fri, 28 Oct 2016 05:53:26 -0700 Subject: [PATCH] vpxdec.c : don't double count corrupted frames A past patch made it so that every frame that had a decode error caused a corrupted frame to be counted. Unfortunately it was possible to get both a decode error and a corrupt frame for the same frame and thus double count an error. This code makes that impossible. Change-Id: Iea973727422a3bf093ffda72fa358a285736048b --- vpxdec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vpxdec.c b/vpxdec.c index 4bd16bbed..f1b09e657 100644 --- a/vpxdec.c +++ b/vpxdec.c @@ -781,7 +781,7 @@ static int main_loop(int argc, const char **argv_) { warn("Failed to decode frame %d: %s", frame_in, vpx_codec_error(&decoder)); if (detail) warn("Additional information: %s", detail); - frames_corrupted++; + corrupted = 1; if (!keep_going) goto fail; } @@ -800,7 +800,7 @@ static int main_loop(int argc, const char **argv_) { // Flush the decoder in frame parallel decode. if (vpx_codec_decode(&decoder, NULL, 0, NULL, 0)) { warn("Failed to flush decoder: %s", vpx_codec_error(&decoder)); - frames_corrupted++; + corrupted = 1; if (!keep_going) goto fail; } } @@ -814,7 +814,7 @@ static int main_loop(int argc, const char **argv_) { vpx_usec_timer_mark(&timer); dx_time += (unsigned int)vpx_usec_timer_elapsed(&timer); - if (!frame_parallel && + if (!frame_parallel && !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;