[MPlayer-users] lavc-divx incompatibility

Loren Merritt lorenm at u.washington.edu
Sun Feb 20 12:37:55 CET 2005

On Sun, 20 Feb 2005, Phil Oleynik wrote:

>> If I try to play lavc encoded mpeg4 on windows media player using divx
>> codec for decoding, then every now and then the image shatters into
>> random block mess and stays like that until the next I-frame. Apparently
>> lavc and divx interpret the mpeg4 standard somewhat differently. Does
>> anyone know which one is wrong?
>> This has been true for every version of both codecs that I have tested
>> during the last two years or so. There is lot of variation in the
>> frequency of the artifact, but I'm not sure whether it is the codec
>> versions or the encoded content that is responsible for the difference.
>> Sometimes it happens only a few times during the whole movie and sometimes
>> every few seconds.
> Yes, you are right. lavc-encoded streams goes to bricks at every optimized 
> keyframe if decoded with original DivX for wndws. The reason is seemed 
> that lavc uses some other algorithm for packing keyframes.

I know of two issues in DivX's decoding:
- It doesn't support open GOPs. When it tries to decode the B-frame 
following a keyframe, it has already forgotten the past reference frame, 
so any macroblocks that used it are borked. This causes errors only in 
that one B-frame, they don't propogate. There is no way to make lavc 
produce closed GOPs, other than disabling B-frames or disabling 
scene-change detection.
- Occasionally, if you have too many consecutive I-frames, DivX will bork 
one or more of them, and the problem will persist until the next correctly 
decoded I-frame. I don't know exactly what triggers this, as it's pretty 
rare. And DivX itself likes to produce consecutive I-frames, which it 
decodes fine. Anyway, in the one case where I investigated further, 
increasing sc_threshold a bit made it go away.

Both of those have been known since forever and repeatedly reported, and 
the DivX people haven't bothered to fix them.
The solution is to decode with ffdshow or xvid.

(DivX also used to have issues with qpel and gmc. I don't know whether 
those have been fixed.)

--Loren Merritt

More information about the MPlayer-users mailing list