Mercurial > libavformat.hg
changeset 6240:8333d7ea7257 libavformat
Ignore extradata & w/h in asf/dvr.
The w/h values are wrong and extradata contains a fake seq header that causes
decoding to fail later, a valid seq header is in the stream itself.
Partially fixes issue658
author | michael |
---|---|
date | Wed, 07 Jul 2010 10:39:05 +0000 |
parents | d7ec9ef45438 |
children | a7e674f70016 |
files | asfdec.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/asfdec.c Wed Jul 07 10:19:59 2010 +0000 +++ b/asfdec.c Wed Jul 07 10:39:05 2010 +0000 @@ -396,8 +396,14 @@ st->codec->codec_tag = tag1; st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, tag1); - if(tag1 == MKTAG('D', 'V', 'R', ' ')) + if(tag1 == MKTAG('D', 'V', 'R', ' ')){ st->need_parsing = AVSTREAM_PARSE_FULL; + // issue658 containse wrong w/h and MS even puts a fake seq header with wrong w/h in extradata while a correct one is in te stream. maximum lameness + st->codec->width = + st->codec->height = 0; + av_freep(&st->codec->extradata); + st->codec->extradata_size=0; + } if(st->codec->codec_id == CODEC_ID_H264) st->need_parsing = AVSTREAM_PARSE_FULL_ONCE; }