From patchwork Wed Mar 25 17:56:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 18394 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 8E4BB44B4B6 for ; Wed, 25 Mar 2020 19:57:12 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6B1CB68B0C1; Wed, 25 Mar 2020 19:57:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5256E68B09C for ; Wed, 25 Mar 2020 19:57:05 +0200 (EET) Received: by mail-qt1-f193.google.com with SMTP id t9so2944113qto.9 for ; Wed, 25 Mar 2020 10:57:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=Vf9JaEl7wcWRlRPddLUyK4h1rs2fruwEMCgnGKRvVyo=; b=Oksd3InPLu4kOjCBCG636AXGR4922LsKPBL9f3NaA4B3BZqwSODGBf/MuPuoUOnUYv 0C3///VkElGHGdQe0EgjqAc7jWiD9p0m8YVzDpCMuOc4qonWSxkSpbf/yALm6JZ3zhXf BMSPiUHRG65r/XRLkL7sw5+1tup+S6v8VWbrXeF54eCaxIIcJa4MV70BZimwYl4pU4WP O3BllAXlPjHh/UZKsPBbeONEckxxeicA4OP0IV5q+TTXmEUAW32NmQzSWzMWu8cvMZE+ T4v3yFNwznagtWY+J1IZFMZPDuRyUHl/KX0bUIk6WT+VAv39rc3HG4Nnfkzo+NHOb57G OPTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=Vf9JaEl7wcWRlRPddLUyK4h1rs2fruwEMCgnGKRvVyo=; b=EP6LWm89aTDMBrbqx68HWUQvkkaBoQNFPy8Da3p8AWWLqeiWrqtb9Uixwo0inUhcgH ngWiwWmz8zYkkU1yxgRzvxakgwJblRxp/62dJmH+h3NuYYcnTG473PLeGcFOjz9wg2/6 LEj44XUaRMi1LyxHwZC/MNiUydgku2PpJNPbQgIUW9yg/meNdpZHZK/2QBZNJ4AkzeoO dJoDIfOsltsaWVa76JQ6ZUkwQGGrMIHvyelOFzrRWrs1uXgM4awZ82uYGW3H55YVGTEZ PYpPpiVrOCFXmhmMa20qRWJPHBknTbQQKTSV0daWngaq2Rrq+YoAi7rdq0Vac2jjrSRT ZPVA== X-Gm-Message-State: ANhLgQ2rMYbJ+C8PM5ISsMEXPbHplr7IHOMLalW2OjhO43P7ygtJPdXA yTGtRnE3Xh/3D42xOaVcimFk+Rjr X-Google-Smtp-Source: ADFU+vu3qJ7JRVSqzAbthdOuj2IpEvbCfyhd72lverSu6c421c0cTrInhdZTaolnRoVcTioBIeuPAA== X-Received: by 2002:ac8:4787:: with SMTP id k7mr4176296qtq.267.1585159023921; Wed, 25 Mar 2020 10:57:03 -0700 (PDT) Received: from localhost.localdomain ([181.23.71.173]) by smtp.gmail.com with ESMTPSA id o186sm7098946qke.39.2020.03.25.10.57.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2020 10:57:03 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 25 Mar 2020 14:56:44 -0300 Message-Id: <20200325175644.1458-1-jamrial@gmail.com> X-Mailer: git-send-email 2.25.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/movenc: Reduce size of the allocated MOVIentry array X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Increase it in a linear way instead. Helps reduce memory usage, especially on long, non fragmented output. Signed-off-by: James Almer --- An alternative is using av_fast_realloc(), in a similar fashion as ff_add_index_entry(), which will keep the memory usage more closely tied to the amount of entries needed, but the amount of reallocations will be much higher, so i don't know if the tradeof is beneficial. libavformat/movenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 85df5d1374..ce82acf914 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -5559,7 +5559,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) } if (trk->entry >= trk->cluster_capacity) { - unsigned new_capacity = 2 * (trk->entry + MOV_INDEX_CLUSTER_SIZE); + unsigned new_capacity = trk->entry + MOV_INDEX_CLUSTER_SIZE; if (av_reallocp_array(&trk->cluster, new_capacity, sizeof(*trk->cluster))) { ret = AVERROR(ENOMEM);