workaround for broken files created by previous versions of asfenc.
authorAnton Khirnov <wyskas@gmail.com>
Mon, 15 Feb 2010 21:14:47 +0000 (21:14 +0000)
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Mon, 15 Feb 2010 21:14:47 +0000 (21:14 +0000)
Patch by Anton Khirnov, wyskas gmail

Originally committed as revision 21840 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/asfdec.c

index ef7c2d3..42c1944 100644 (file)
@@ -436,9 +436,13 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
                     char name[1024];
 
                     name_len = get_le16(pb);
+                    if (name_len%2)     // must be even, broken lavf versions wrote len-1
+                        name_len += 1;
                     get_str16_nolen(pb, name_len, name, sizeof(name));
                     value_type = get_le16(pb);
                     value_len  = get_le16(pb);
+                    if (value_len%2)
+                        value_len += 1;
                     get_tag(s, name, value_type, value_len);
             }
         } else if (!guidcmp(&g, &ff_asf_metadata_header)) {