summaryrefslogtreecommitdiffstats
path: root/libavcodec/vc1_parser.c
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 /libavcodec/vc1_parser.c
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]>
Diffstat (limited to 'libavcodec/vc1_parser.c')
-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) {