From c46000c1ff570f30f2255dcb42950b464a219a3d Mon Sep 17 00:00:00 2001 From: Zhentan Feng Date: Fri, 13 Aug 2010 17:08:57 +0000 Subject: Set fixed chunksize for ASF header in MMS streams, as per MSDN documentation. This fixes playback of at least one MMST stream. Patch by Zhentan Feng . Originally committed as revision 24793 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mms.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libavformat/mms.c') diff --git a/libavformat/mms.c b/libavformat/mms.c index 5afa077ccd..cbb4739aca 100644 --- a/libavformat/mms.c +++ b/libavformat/mms.c @@ -68,7 +68,12 @@ int ff_mms_asf_header_parser(MMSContext *mms) p += sizeof(ff_asf_guid) + 14; while(end - p >= sizeof(ff_asf_guid) + 8) { - uint64_t chunksize = AV_RL64(p + sizeof(ff_asf_guid)); + uint64_t chunksize; + if (!memcmp(p, ff_asf_data_header, sizeof(ff_asf_guid))) { + chunksize = 50; // see Reference [2] section 5.1 + } else { + chunksize = AV_RL64(p + sizeof(ff_asf_guid)); + } if (!chunksize || chunksize > end - p) { av_log(NULL, AV_LOG_ERROR, "Corrupt stream (header chunksize %"PRId64" is invalid)\n", -- cgit v1.2.3