[FFmpeg-devel] [PATCH] Fix empty G-VOP header decoding in MPEG-4
Janne Grunau
janne-ffmpeg
Sun Feb 13 16:45:42 CET 2011
On Sat, Feb 12, 2011 at 02:41:24PM +0000, M?ns Rullg?rd wrote:
> From 4583e1bf4c279fffd653682f480c21bb6a975886 Mon Sep 17 00:00:00 2001
> From: Anatoly Nenashev <anatoly.nenashev at ovsoft.ru>
> Date: Thu, 10 Feb 2011 16:09:48 +0000
> Subject: [PATCH] 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: Mans Rullgard <mans at mansr.com>
> ---
> libavcodec/mpeg4videodec.c | 18 +++++++++---------
> 1 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> index 673c4e8..ad38df7 100644
> --- a/libavcodec/mpeg4videodec.c
> +++ b/libavcodec/mpeg4videodec.c
> @@ -1494,16 +1494,16 @@ end:
>
> static int mpeg4_decode_gop_header(MpegEncContext * s, GetBitContext *gb){
> int hours, minutes, seconds;
> + unsigned time_code = show_bits(gb, 18);
>
> - hours= get_bits(gb, 5);
> - minutes= get_bits(gb, 6);
> - skip_bits1(gb);
> - seconds= get_bits(gb, 6);
> -
> - s->time_base= seconds + 60*(minutes + 60*hours);
> -
> - skip_bits1(gb);
> - skip_bits1(gb);
I would prefer if those two skip_bits1 calls remain here possibly with
adding a comment which values we ignore (closed gop and broken link)
Otherwise ok.
Janne
More information about the ffmpeg-devel
mailing list