[x264-devel] decoding error with ffmpeg h264 decoder

Zubair Ali Khan zkhan at d2tech.com
Thu Apr 30 17:21:24 CEST 2009


Hi

Dont know if I should submit this to ffmpeg or here or both?
I am using X264 to encode, and libavcodec to decode H.264 data. Its 
running on X86 platform. I have a VoIP client application framework that 
does RTP and start sequence etc.

I have a video conferencing setup where my client talks to ekiga, and 
eyebeam.

Data from my client (generated by X264) can be displayed correctly on 
all clients.

But data generated by other clients does not get decoded properly on my 
client with one exception. Exception is version 3.0 of ekiga on Windows, 
in which case, everything is good.

I have gathered some nal information for cases that fail, and the case 
that does not. This info I collected from first 3 octets of each nal 
unit. I am reassembling and segmenting nal units before being fed to 
H264 decoder.

---- Failed case (eyebeam or ekiga 3.1 sending data to my client and 
this is fed to libavcodec h264):
naltype=7,nri=1,firstmb=0,ftype=16,ppsid=1,fnum=12
naltype=8,nri=1,firstmb=1,ftype=19,ppsid=1,fnum=8
naltype=5,nri=1,firstmb=1,ftype=14,ppsid=0,fnum=0
    Last message repeated 2 times
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=5,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]out of range intra chroma pred mode at 4 8
[h264 @ 0xa6e5780]error while decoding MB 4 8
[h264 @ 0xa6e5780]concealing 300 DC, 300 AC, 300 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=0,fnum=1
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]concealing 160 DC, 160 AC, 160 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=0,fnum=2
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]concealing 160 DC, 160 AC, 160 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=0,fnum=3
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]concealing 160 DC, 160 AC, 160 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=0,fnum=4
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]concealing 300 DC, 300 AC, 300 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=0,fnum=5
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]concealing 160 DC, 160 AC, 160 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=0,fnum=6
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]P sub_mb_type 8 out of range at 14 10
[h264 @ 0xa6e5780]error while decoding MB 14 10
[h264 @ 0xa6e5780]concealing 295 DC, 295 AC, 295 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=0,fnum=7
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
[h264 @ 0xa6e5780]mb_type 31 in P slice too large at 11 13
[h264 @ 0xa6e5780]error while decoding MB 11 13
[h264 @ 0xa6e5780]concealing 238 DC, 238 AC, 238 MV errors
naltype=1,nri=1,firstmb=1,ftype=24,ppsid=1,fnum=8
[h264 @ 0xa6e5780]number of reference frames exceeds max (probably 
corrupt input), discarding one
    Last message repeated 7 times
[h264 @ 0xa6e5780]concealing 140 DC, 140 AC, 140 MV errors
naltype=1,nri=1,firstmb=0,ftype=0,ppsid=0,fnum=2
...

---- Passed case (ekiga 3.0 sending data to my client and this is fed to 
libavcodec h264):
(See how sequentail fnum is, while not in the failed case)
naltype=7,nri=3,firstmb=0,ftype=16,ppsid=1,fnum=14
naltype=8,nri=3,firstmb=1,ftype=19,ppsid=1,fnum=9
naltype=5,nri=3,firstmb=1,ftype=2,ppsid=0,fnum=4
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=8
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=9
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=10
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=10
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=10
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=10
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=10
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=10
naltype=1,nri=2,firstmb=1,ftype=6,ppsid=1,fnum=10


Any ideas ?

Thanks
Zubair Khan


More information about the x264-devel mailing list