[Ffmpeg-devel] non-avc h264 stream problems

Milan Cutka milan_cutka
Fri Jun 10 14:43:32 CEST 2005


> Hi,

> Decoding an AVI containing h264 (e.g. from VSoft [1]) doesn't work with
> current CVS (June 9, 2005) of libavcodec/ffmpeg:
> * in avienc.c, add VSSH as a fourcc for h264. As extradata, parse the
> extra bytes from the BITMAPINFOHEADER (ffmpeg does that already).
> * in h264:7346 (decode_frame()), there's "if (0 < decode_nal_header(..))
> ...". That should be "if (decode_nal_header(..) < 0) ...", I think,
> because a value < 0 means an error; any other value is a valid buffer
> index (right?).
> * doing this makes the first I-frame display correctly (in a checkout of
> a few weeks ago).
> * Next frames will not decode correctly, because of (in a checkout of a
> few weeks ago) an assert in h264.c:2567 (in mc_dir_part()) or (in a
> checkout of today) all sort of warnings like this "[h264 @
> 0x833f294]illegal short term buffer state detected
> " and "[h264 @ 0x833f294]concealing 0 DC, 0 AC, 0 MV errors".

Maybe it's because s->picture_number is always 0 and thus the comparison at line
7345 is always true and decode_nal_units with extradata is called before
decoding every frame.

I uploaded sample VSSH clip to test it here:
ftp://mplayerhq.hu/MPlayer/incoming/vssh_main.avi.

  Milan





More information about the ffmpeg-devel mailing list