From 67197656d19fa9e084e47b5331c262a9c7842335 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Fri, 13 Aug 2010 17:30:01 +0000 Subject: [PATCH] Remove use of MAX_STREAMS in MMSContext->streams[] array. Instead, dynamically allocate the array. Originally committed as revision 24794 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mms.c | 3 +++ libavformat/mms.h | 3 ++- libavformat/mmst.c | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libavformat/mms.c b/libavformat/mms.c index cbb4739aca..73f4e6b671 100644 --- a/libavformat/mms.c +++ b/libavformat/mms.c @@ -99,6 +99,9 @@ int ff_mms_asf_header_parser(MMSContext *mms) //Please see function send_stream_selection_request(). if (mms->stream_num < MAX_STREAMS && 46 + mms->stream_num * 6 < sizeof(mms->out_buffer)) { + mms->streams = av_fast_realloc(mms->streams, + &mms->nb_streams_allocated, + (mms->stream_num + 1) * sizeof(MMSStream)); mms->streams[mms->stream_num].id = stream_id; mms->stream_num++; } else { diff --git a/libavformat/mms.h b/libavformat/mms.h index 675d6b93ee..7ee0485204 100644 --- a/libavformat/mms.h +++ b/libavformat/mms.h @@ -29,7 +29,7 @@ typedef struct { typedef struct { URLContext *mms_hd; ///< TCP connection handle - MMSStream streams[MAX_STREAMS]; + MMSStream *streams; /** Buffer for outgoing packets. */ /*@{*/ @@ -54,6 +54,7 @@ typedef struct { /*@}*/ int stream_num; ///< stream numbers. + unsigned int nb_streams_allocated; ///< allocated size of streams } MMSContext; int ff_mms_asf_header_parser(MMSContext * mms); diff --git a/libavformat/mmst.c b/libavformat/mmst.c index ccfc212b1f..3d12d82b73 100644 --- a/libavformat/mmst.c +++ b/libavformat/mmst.c @@ -468,6 +468,7 @@ static int mms_close(URLContext *h) } /* free all separately allocated pointers in mms */ + av_free(mms->streams); av_free(mms->asf_header); av_freep(&h->priv_data);