Commit 7a4abe59 authored by Anatoly Nenashev's avatar Anatoly Nenashev Committed by Mans Rullgard

mpeg4video: ignore broken GOP headers

Some MPEG4 cameras produce files with empty GOP headers.
This patch makes the decoder ignore such broken headers and proceed
with the following I-frame.  Without this change, the following
start code is missed resulting in the entire I-frame being skipped.
Signed-off-by: 's avatarMans Rullgard <mans@mansr.com>
parent 5d57846b
...@@ -1494,16 +1494,17 @@ end: ...@@ -1494,16 +1494,17 @@ end:
static int mpeg4_decode_gop_header(MpegEncContext * s, GetBitContext *gb){ static int mpeg4_decode_gop_header(MpegEncContext * s, GetBitContext *gb){
int hours, minutes, seconds; int hours, minutes, seconds;
unsigned time_code = show_bits(gb, 18);
hours= get_bits(gb, 5);
minutes= get_bits(gb, 6); if (time_code & 0x40) { /* marker_bit */
skip_bits1(gb); hours = time_code >> 13;
seconds= get_bits(gb, 6); minutes = time_code >> 7 & 0x3f;
seconds = time_code & 0x3f;
s->time_base= seconds + 60*(minutes + 60*hours); s->time_base = seconds + 60*(minutes + 60*hours);
skip_bits(gb, 20); /* time_code, closed_gov, broken_link */
skip_bits1(gb); } else {
skip_bits1(gb); av_log(s->avctx, AV_LOG_WARNING, "GOP header missing marker_bit\n");
}
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment