[FFmpeg-devel] [PATCH] H264 parser fix

Michael Niedermayer michaelni
Mon May 24 21:22:08 CEST 2010


On Mon, May 24, 2010 at 11:25:05AM -0700, Howard Chu wrote:
> Michael Niedermayer wrote:
>> On Wed, May 19, 2010 at 01:15:17AM -0700, Howard Chu wrote:
>>> When decoding an H264 stream that uses global headers, you get an endless
>>> stream of "non-existing PPS referenced" messages. This message comes from
>>> h264_parser.c, and it happens because it's using an H264Context hanging 
>>> off
>>> the AVCodecParserContext, which is separate from the H264Context hanging
>>> off the AVCodecContext, and only the AVCodecContext contains the 
>>> extradata
>>> that provides the PPS and SPS.
>>>
>>> This patch is admittedly a hack, but it stops the error. It just checks 
>>> in
>>> the AVCodecContext if the PPS wasn't found in the AVCodecParserContext.
>>
>> ugly ugly ugly
>> if iam not mistaken this would be fixed by making the parser work with
>> mov/mkv ("avc") style h264
>
> I read thru mov.c and matroskadec.c and couldn't find anything relevant, so 
> I don't understand what your suggestion means.

i thought that the problem is that the parser is feeded a format it does not
support. I did not confirm this but i see no reason that this is a different
issue.
The format difference should be easiest vissible by looking at code
surrounding is_avc in h264.c

if this is the issue the parser should be improved to suport the slghtly
differnt way to pack things and also to look in extradata.

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I hate to see young programmers poisoned by the kind of thinking
Ulrich Drepper puts forward since it is simply too narrow -- Roman Shaposhnik
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100524/8bef8410/attachment.pgp>



More information about the ffmpeg-devel mailing list