Browse Source

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

Originally committed as revision 24082 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Michael Niedermayer 15 years ago
parent
commit
3124766959
1 changed files with 7 additions and 1 deletions
  1. +7
    -1
      libavformat/asfdec.c

+ 7
- 1
libavformat/asfdec.c View File

@@ -396,8 +396,14 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)


st->codec->codec_tag = tag1; st->codec->codec_tag = tag1;
st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, 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; 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) if(st->codec->codec_id == CODEC_ID_H264)
st->need_parsing = AVSTREAM_PARSE_FULL_ONCE; st->need_parsing = AVSTREAM_PARSE_FULL_ONCE;
} }


Loading…
Cancel
Save