diff --git a/libavcodec/dirac_parser.c b/libavcodec/dirac_parser.c index a8aa664ea9..451c9d4e0a 100644 --- a/libavcodec/dirac_parser.c +++ b/libavcodec/dirac_parser.c @@ -103,7 +103,7 @@ static int unpack_parse_unit(DiracParseUnit *pu, DiracParseContext *pc, int i; int8_t *start; static const uint8_t valid_pu_types[] = { - 0x00, 0x10, 0x20, 0x30, 0x08, 0x48, 0xC8, 0xE8 + 0x00, 0x10, 0x20, 0x30, 0x08, 0x48, 0xC8, 0xE8, 0x0A, 0x0C, 0x0D, 0x0E }; if (offset < 0 || pc->index - 13 < offset) @@ -116,10 +116,10 @@ static int unpack_parse_unit(DiracParseUnit *pu, DiracParseContext *pc, pu->prev_pu_offset = AV_RB32(start + 9); /* Check for valid parse code */ - for (i = 0; i < 8; i++) + for (i = 0; i < 12; i++) if (valid_pu_types[i] == pu->pu_type) break; - if (i == 8) + if (i == 12) return 0; if (pu->pu_type == 0x10 && pu->next_pu_offset == 0)