shithub: dav1d

Download patch

ref: 82404efb061fead594df2e8ba2a99c0c0cc4b8e9
parent: 2b39cfb01288bf775281c8ae1a446ec4011bc887
author: James Almer <jamrial@gmail.com>
date: Thu Nov 22 06:43:36 EST 2018

obu: set have_frame_hdr to true only when there were no errors

--- a/src/obu.c
+++ b/src/obu.c
@@ -1219,7 +1219,6 @@
         if (!c->have_seq_hdr) goto error;
         if ((res = parse_frame_hdr(c, &gb)) < 0)
             return res;
-        c->have_frame_hdr = 1;
         for (int n = 0; n < c->n_tile_data; n++)
             dav1d_data_unref(&c->tile[n].data);
         c->n_tile_data = 0;
@@ -1231,10 +1230,13 @@
             if (check_for_overrun(&gb, init_bit_pos, len))
                 return -EINVAL;
 
+            c->have_frame_hdr = 1;
             break;
         }
         // OBU_FRAMEs shouldn't be signalled with show_existing_frame
         if (c->frame_hdr.show_existing_frame) goto error;
+
+        c->have_frame_hdr = 1;
 
         // This is the frame header at the start of a frame OBU.
         // There's no trailing bit at the end to skip, but we do need