Use the h264 parser when decoding VSSH in avi.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Tue, 7 Jan 2014 21:49:05 +0000 (22:49 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Wed, 8 Jan 2014 09:24:03 +0000 (10:24 +0100)
Fixes ticket #3261 visually.

Analyzed-by: Michael Doilnitsyn
(cherry picked from commit 94cf4f8bac12c58e30ce3b5d72cf5898baafe9a8)

Conflicts:
libavformat/avidec.c

libavformat/avidec.c

index 4852e44..2d60bfb 100644 (file)
@@ -639,6 +639,8 @@ static int avi_read_header(AVFormatContext *s)
                     st->codec->codec_tag = tag1;
                     st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, tag1);
                     st->need_parsing = AVSTREAM_PARSE_HEADERS; // This is needed to get the pict type which is necessary for generating correct pts.
+                    if (st->codec->codec_tag == MKTAG('V', 'S', 'S', 'H'))
+                        st->need_parsing = AVSTREAM_PARSE_FULL;
 
                     if(st->codec->codec_tag==0 && st->codec->height > 0 && st->codec->extradata_size < 1U<<30){
                         st->codec->extradata_size+= 9;