View Full Version : ffmpeg/libavcodec decoding b-frames


cjv
21st November 2002, 22:26
I encoded some test clips using the recent XviD builds w/b-frames (no qpel, no gmc) in VDub. They play fine with the latest ffdshow, but when I tried to play them with the latest mplayer (Debian), there were _major_ decoding problems..smearing blocks. I tried every combination of fourcc, VOP compat, packed bitstream, 1@200 (like DivX5)..with no success.

So I did a fresh CVS checkout of mplayer, and used a fresh checkout of ffmpeg's libavcodec (Nov 21), and the decoding problems are still there. Funny, it decodes XviD b-frame builds from months ago, and it also decodes DivX5 b-frames flawlessly.
1) Does ffdshow still use the same base as ffmpeg/libavcodec?
2) Do I have to link libxvidcore in linux to get the most compatible decoding?

I think some XviD devs. use linux, so maybe I am doing something wrong?
Thanks,

cjv

milan
22nd November 2002, 10:31
ffdshow always uses the latest libavcodec. There are some minor modifications, but nothing which would affect handling of b frames. Even my hack, which I added few days after DivX 5.0.1 was released to handle P and B frames in one AVI frame and zero frames between them, was removed in latest ffdshow build. It could be bug in mplayer demuxers. If this is reproducible, send a bug report to mplayer developers and put sample file to their FTP.

EDIT:
try to set libavcodec error resilience to 0. I had to set it in ffdshow too, because many new xvid clips looked bad with default value (1 in libavcodec, 2 in mplayer).

Monarc
22nd November 2002, 17:32
Originally posted by cjv
I encoded some test clips using the recent XviD builds w/b-frames (no qpel, no gmc) in VDub. They play fine with the latest ffdshow, but when I tried to play them with the latest mplayer (Debian), there were _major_ decoding problems..smearing blocks. I tried every combination of fourcc, VOP compat, packed bitstream, 1@200 (like DivX5)..with no success.

try

1) mplayer -lavdopts bug=16 movie.avi
(or other bug values / 16 = padding bug)
2) mplayer -vc xvid movie.avi
( you need the libxvidcore linked to mplayer)

cjv
22nd November 2002, 21:47
Originally posted by Monarc
try

1) mplayer -lavdopts bug=16 movie.avi

Thanks! That worked perfectly.
I will rebuild with error resilience = 0 later to see if it makes any quality improvement, but the clips already look excellent now.

cjv