[FFmpeg-devel] [PATCH] Fix empty G-VOP header decoding in MPEG-4
Måns Rullgård
mans
Sat Feb 12 15:41:24 CET 2011
Anatoly Nenashev <anatoly.nenashev at ovsoft.ru> writes:
> diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> index 5303da3..e0ef4bd 100644
> --- a/libavcodec/mpeg4videodec.c
> +++ b/libavcodec/mpeg4videodec.c
> @@ -1493,17 +1493,20 @@ end:
>
> static int mpeg4_decode_gop_header(MpegEncContext * s, GetBitContext *gb){
> - int hours, minutes, seconds;
> + int hours, minutes, seconds, marker;
> + int val;
>
> - hours= get_bits(gb, 5);
> - minutes= get_bits(gb, 6);
> - skip_bits1(gb);
> - seconds= get_bits(gb, 6);
> + val= show_bits(gb, 18);
> + marker= val & 0x40;
>
> - s->time_base= seconds + 60*(minutes + 60*hours);
> -
> - skip_bits1(gb);
> - skip_bits1(gb);
> + if (marker) {
> + hours= (val >> 13) & 0x1F;
> + minutes= (val >> 7) & 0x3F;
> + seconds= val & 0x3F;
> + s->time_base= seconds + 60*(minutes + 60*hours);
> + } else {
> + av_log(s->avctx, AV_LOG_WARNING, "marker bit in GOP header is not set\n");
> + }
>
> return 0;
> }
Patch with nicer formatting attached.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list