From ab1189766a82a95f108005463cde75f73fcc0ae5 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Mon, 3 Jun 2013 13:32:48 +0300 Subject: [PATCH] movenc: Increase the cluster array allocation by doubling MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The previous allocation increment of 16384 meant that the cluster array was allocated for 0.6 MB initially, which is a bit excessive for cases with fragmentation where only a fraction of that ever actually is used. Therefore, start off at a much smaller value, and increase by doubling (to avoid reallocating too often when writing long non-fragmented mp4 files). Bug-Id: 525 Signed-off-by: Martin Storsjö --- libavformat/movenc.c | 2 +- libavformat/movenc.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index e259168..e819d75 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -2870,7 +2870,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) } if (trk->entry >= trk->cluster_capacity) { - unsigned new_capacity = trk->entry + MOV_INDEX_CLUSTER_SIZE; + unsigned new_capacity = 2*(trk->entry + MOV_INDEX_CLUSTER_SIZE); if (av_reallocp_array(&trk->cluster, new_capacity, sizeof(*trk->cluster))) return AVERROR(ENOMEM); diff --git a/libavformat/movenc.h b/libavformat/movenc.h index 2aa8ffb..103b918 100644 --- a/libavformat/movenc.h +++ b/libavformat/movenc.h @@ -26,7 +26,7 @@ #include "avformat.h" -#define MOV_INDEX_CLUSTER_SIZE 16384 +#define MOV_INDEX_CLUSTER_SIZE 1024 #define MOV_TIMESCALE 1000 #define RTP_MAX_PACKET_SIZE 1450 -- 2.7.4