OBU_FRAME type requires show_existing_frame == 0. Add a check for the following requirement in Section 6.8.2 of the spec: 6.8.2. Uncompressed header semantics If obu_type is equal to OBU_FRAME, it is a requirement of bitstream conformance that show_existing_frame is equal to 0. BUG=aomedia:2030 Change-Id: I3ae68d65589ff605be88ff4c5eb02d1cf9d52ccc
diff --git a/av1/decoder/obu.c b/av1/decoder/obu.c index 37de404..897a41e 100644 --- a/av1/decoder/obu.c +++ b/av1/decoder/obu.c
@@ -836,6 +836,10 @@ pbi->frame_header_size = (size_t)frame_header_size; if (cm->show_existing_frame) { + if (obu_header.type == OBU_FRAME) { + cm->error.error_code = AOM_CODEC_UNSUP_BITSTREAM; + return -1; + } frame_decoding_finished = 1; pbi->seen_frame_header = 0; break;