summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDE-AI <[email protected]>2025-09-05 15:27:01 +0000
committerJames Almer <[email protected]>2025-09-08 14:03:52 +0000
commitfbbb2996d573844a2f4c901b704d8361a384766b (patch)
tree31b9eb0c0761aec6a4253cff6b0054b526bb57e8
parent1f2de0f61888e4d16b9e124fc4b4728dd3642981 (diff)
vc1_parser: Reset unesc_index after extracting header with complete frames
When PARSER_FLAG_COMPLETE_FRAMES is set (e.g. in Matroska), unesc_index is not reset after the first frame, which causes subsequent frames to inherit leftover header data. This leads to incorrect keyframe marking and broken decoding. See also this bug report: https://trac.ffmpeg.org/ticket/8515 Signed-off-by: DE-AI <[email protected]>
-rw-r--r--libavcodec/vc1_parser.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
index a536a7bcf8..124a7a771f 100644
--- a/libavcodec/vc1_parser.c
+++ b/libavcodec/vc1_parser.c
@@ -179,6 +179,7 @@ static int vc1_parse(AVCodecParserContext *s,
// start codes if we know it contains a complete frame and
// we've already unescaped all we need of the frame header
vc1_extract_header(s, avctx, unesc_buffer, unesc_index);
+ unesc_index = 0;
break;
}
if (unesc_index >= UNESCAPED_THRESHOLD && !start_code_found) {