summaryrefslogtreecommitdiff
path: root/vpxdec.c
diff options
context:
space:
mode:
authorJim Bankoski <jimbankoski@google.com>2016-10-28 05:53:26 -0700
committerJim Bankoski <jimbankoski@google.com>2016-10-31 06:09:58 -0700
commit30f3017697d10fd6a1698e2d4b68bb67acf3482d (patch)
tree41c3782b7f092265e0aad3427af580465bed537b /vpxdec.c
parent7ef094c02f261f3599072eb1fa9aaa2477f9d47e (diff)
downloadlibvpx-30f3017697d10fd6a1698e2d4b68bb67acf3482d.tar
libvpx-30f3017697d10fd6a1698e2d4b68bb67acf3482d.tar.gz
libvpx-30f3017697d10fd6a1698e2d4b68bb67acf3482d.tar.bz2
libvpx-30f3017697d10fd6a1698e2d4b68bb67acf3482d.zip
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
Diffstat (limited to 'vpxdec.c')
-rw-r--r--vpxdec.c6
1 files 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;