From d6cc1123e37fb3b795b13e66315d90711c6fd9a7 Mon Sep 17 00:00:00 2001 From: Zhentan Feng Date: Tue, 20 Jul 2010 15:11:44 +0000 Subject: [PATCH] Explicitely set the size of the "ff_asf_head1_guid" header chunk, this is part of the spec and causes problems otherwise. Patch by Zhentan Feng . Originally committed as revision 24362 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mmst.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavformat/mmst.c b/libavformat/mmst.c index cfd8919b34..b2f956e657 100644 --- a/libavformat/mmst.c +++ b/libavformat/mmst.c @@ -20,6 +20,14 @@ * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* References + * MMS protocol specification: + * [1]http://msdn.microsoft.com/en-us/library/cc234711(PROT.10).aspx + * ASF specification. Revision 01.20.03. + * [2]http://msdn.microsoft.com/en-us/library/bb643323.aspx + */ + #include "avformat.h" #include "internal.h" #include "libavutil/intreadwrite.h" @@ -473,6 +481,8 @@ static int asf_header_parser(MMSContext *mms) dprintf(NULL, "Too many streams.\n"); return -1; } + } else if (!memcmp(p, ff_asf_head1_guid, sizeof(ff_asf_guid))) { + chunksize = 46; // see references [2] section 3.4. This should be set 46. } p += chunksize; }