From patchwork Sat May 22 22:09:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 27923 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp1696162iof; Sat, 22 May 2021 15:10:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTXkyXoq35882SBKixeRBl1jlBkGRe6eYhfR+px5E67Kk9xcSF9jm9lgMGwY65dnC/cwQ1 X-Received: by 2002:a05:6402:2681:: with SMTP id w1mr18129492edd.223.1621721407675; Sat, 22 May 2021 15:10:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621721407; cv=none; d=google.com; s=arc-20160816; b=f+VxKtDqTwW9eIcLCDwYJLZeHGE5I/RJf78PlM52KprQamii8xL0TnSTGyyaCsn11u xGH4bIgolwDu97Dm1qp/M8sJrAQK9fXgWLnrxxLe329MEd+2YtKfjiv60Iy1/BXEUMSd Nr3vc5KVX/wCeCosMiurqrO75cEhWQ4uINRBMVBPXmrNFtA4rr/lVPYDYlscaoaZnq9a rlw7Q3CjZY2yMoHjAq99HbWQDwADpxSe399rc3el7ccau5OQNYlfX823JaTt/SLJBGG7 tTrvZ7MYZ8s9MtGsTMR1Ss0tpA1nltP8arRqXdrr103RzE7q+qx9wD02uMQBBhef543s 2htQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=VMuZNRzJpSVgKcC248dB6u8y2rfoNRVQtwAptABHYM0=; b=OwijXsUtrxBiBG0ahR2HwHPpsrQMVeSTJ5BR8t+TZQMBj2y5+OYmxJCsng+sZF/p/c 5k1pkua8MkU0oV5yV1H/rLT7wpynBDM/9hHdvB2rbTcpUcwJ3KoLuV5qRT6ktuuBGro9 EUCIQ+SxDgVJfQLZNRv3yaoSc178Cdrouc8DvAF5pDEXW2cvy6PohiqdP9JZ3ZxfrMiE DOURDUEZfYRem6pBFPtJtxAPf7uB+PFG9UI5bH810xu7NMdRPCDR2l7p3/Wg2CnYdF4s NqmydrGiY5t3KXrvVp/xXkvCEs/Cr3dmyPIMNLq2o4zs121MI2EGTNqH30uczZL1nLwk ykOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=e3uh6BM2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p22si8523299eds.368.2021.05.22.15.10.07; Sat, 22 May 2021 15:10:07 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=e3uh6BM2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 098246882D8; Sun, 23 May 2021 01:10:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E4EC680AAD for ; Sun, 23 May 2021 01:09:56 +0300 (EEST) Received: by mail-qk1-f177.google.com with SMTP id i67so23490012qkc.4 for ; Sat, 22 May 2021 15:09:56 -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=crY8N48Cn2+t/K9cI7CZpUdvPSnoMB6iPlbi8iYQ5Ek=; b=e3uh6BM217wgP8+0/O4D/dMH/emw4+NJP2e14vuVyOwl1WPL7akPFSDEWMQSS1Qh2O HM3o+bMJM5mwSMozl2MyYuFKbpfbgNsQ3ut+390uh2r1pKaVZdHc/NaKNmBKTvUqx7Bl NtQ1MOrreKvPZHaCp6SxdARWW/B8h9JajzksmLdxMUlrreAz+Nytyd8P0AqEXjxbtlPi HOY0Y+/IXTsi5XulNhNX8cLYS1j1t3sn5IZg/HoejlUhbIYM3RYpWFuqF19JxHCF0Bgj GPkk2kkkKWA2tQ8fArZslZkFhzy8/uzkbq019YPTi4WYlsucAXlNhEdrKilaNS4Pr6Xo arUw== 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=crY8N48Cn2+t/K9cI7CZpUdvPSnoMB6iPlbi8iYQ5Ek=; b=hVr5HLLO8vqvd1CLSfj0cWSSZKKL2ST4NZ8q11wI+dnxvCM8tHhhlA1Z5pd9VzpdXV eIMfNd5QeyTauTCkgjsq+xromjwUsF6WDNo/Ybi6dIaxjXaNrSIb/4NP3pMcYPgY6+ij sFB1UnDv9cKUFhEeNjKKZHJYCpVVa8MkwKB2SYuXaNl9RUNu9lVF46e86cFIdxvMV2wb EZ6hAVVEEo82ozIKWcLISwwwFEiavKYvY8XoifDIMsxYiBT47gcqENNGZwlg76scpBMG sh+nA4oboAn0uIr1MEJj2pyxuvEc8SvEwM3yLQt/nU7RMpUhUFHd9wRSoC4O0EYPF/jN ZIng== X-Gm-Message-State: AOAM5308avunhHnf5Si+VtSxv70r34At3ycxxqA34Mk3/aUuYDumVYqN o7eII939OU7jvRwpClc704smvymYkgY= X-Received: by 2002:a05:620a:408f:: with SMTP id f15mr19973014qko.398.1621721395108; Sat, 22 May 2021 15:09:55 -0700 (PDT) Received: from localhost.localdomain ([191.83.214.167]) by smtp.gmail.com with ESMTPSA id 20sm8007327qks.64.2021.05.22.15.09.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 May 2021 15:09:54 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 22 May 2021 19:09:02 -0300 Message-Id: <20210522220904.7012-1-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avutil/mem: make max_alloc_size an atomic type X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: AWIRJV58R3ZE This is in preparation for the following commit. Signed-off-by: James Almer --- libavutil/mem.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/libavutil/mem.c b/libavutil/mem.c index fa227f5e12..c12c24aa90 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #if HAVE_MALLOC_H #include @@ -68,17 +69,17 @@ void free(void *ptr); * dynamic libraries and remove -Wl,-Bsymbolic from the linker flags. * Note that this will cost performance. */ -static size_t max_alloc_size= INT_MAX; +static atomic_size_t max_alloc_size = ATOMIC_VAR_INIT(INT_MAX); void av_max_alloc(size_t max){ - max_alloc_size = max; + atomic_store_explicit(&max_alloc_size, max, memory_order_relaxed); } void *av_malloc(size_t size) { void *ptr = NULL; - if (size > max_alloc_size) + if (size > atomic_load_explicit(&max_alloc_size, memory_order_relaxed)) return NULL; #if HAVE_POSIX_MEMALIGN @@ -134,7 +135,7 @@ void *av_malloc(size_t size) void *av_realloc(void *ptr, size_t size) { void *ret; - if (size > max_alloc_size) + if (size > atomic_load_explicit(&max_alloc_size, memory_order_relaxed)) return NULL; #if HAVE_ALIGNED_MALLOC @@ -483,15 +484,19 @@ void av_memcpy_backptr(uint8_t *dst, int back, int cnt) void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size) { + size_t max_size; + if (min_size <= *size) return ptr; - if (min_size > max_alloc_size) { + max_size = atomic_load_explicit(&max_alloc_size, memory_order_relaxed); + + if (min_size > max_size) { *size = 0; return NULL; } - min_size = FFMIN(max_alloc_size, FFMAX(min_size + min_size / 16 + 32, min_size)); + min_size = FFMIN(max_size, FFMAX(min_size + min_size / 16 + 32, min_size)); ptr = av_realloc(ptr, min_size); /* we could set this to the unmodified min_size but this is safer From patchwork Sat May 22 22:09:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 27921 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp1696372iof; Sat, 22 May 2021 15:10:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxY3OlX/u8tMwuBmQYxu5k3z8GZYTZY+4g3qI4jQTvAqsaY3vwfZtbkqQ/2KkdLUDtzJuI0 X-Received: by 2002:a17:907:768c:: with SMTP id jv12mr15769171ejc.215.1621721425802; Sat, 22 May 2021 15:10:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621721425; cv=none; d=google.com; s=arc-20160816; b=w3Qj0Nd9JbI6aH6uTy23CMpW/7TX+Fyo/egztYJEsLKe3oX8EBVOppaQa0vxqX9VH3 0dJmuAoG26Bc0kpiHla5BoPN7QT3gmkpRmulRPkcls+zig8Ci9Ywrl6MSCKYOaS4OA6r cB+hytAceSbVhWsiFQre246D4ZMXD+R8veCSGANqkbJwiGR87v939+dqUaCVfA9gKr0z C1V/woyXeOZpFNCqKm581FRvHBUfzoGzXNmg4UvgZCoB7zhgsB8yJr5BzE9mYJipPRl2 ahyk+rq8/YKJxadmK5kS78hNlmANRwpLfzMprokdJOG2d8biNh8k9ad11/77M9CdtKCJ F8gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=as1FLSa/Un8ic2Jt6Lk763St886+JgOetEWznrHcd30=; b=Zbls6bFCygox41AG36FJ0AFkCjFiBT2HD2d3q5tspemK1/Yxr22YPnROSuRpn17c64 TUK4d3jFSAwlu0DWIxPMjULGTu9hrHS7sRKKMH6ZbADmP6884eB6G8AgqARXxmEP0CBu MLvghdkNg5m+mwBjp2nuFx2nibZmK9DBs5mgsYHh7z8zta5f4scU7bNOXoU0mS35a5fj IgN/z8AUoom/yjE9CYaaCbFL4Y79resRXMfhhq52WtJc2UkYC+mXUyl1iC/cYOK+G4HF LnoQSAoNub33F5ez6pn1QqSvXpGzG+scPXcpydRox2QarsC6LI6o6kVXBehVCTvUmL3x vgvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=p+imNVnr; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o15si7872825edc.604.2021.05.22.15.10.25; Sat, 22 May 2021 15:10:25 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=p+imNVnr; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 080646882FB; Sun, 23 May 2021 01:10:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF49D6882FB for ; Sun, 23 May 2021 01:09:58 +0300 (EEST) Received: by mail-qv1-f44.google.com with SMTP id z1so12352875qvo.4 for ; Sat, 22 May 2021 15:09:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=x/MfkEHGPZ5M9KUZMJR4mCbMi4+mDKMNIjWGLzVSLEg=; b=p+imNVnrWpEPM7Cs8Wzhibkixo8BrJ9yoS9v8bdgQdPPaA/OAY0iBVMRJlYhQ4f7m7 WZzBLPJS7EKuS4+gFntMGU398zmTVZdd4RIlF13O8VbKkMh/UPLPDm2cYMGvRWADn2M4 Yq1kblpHQ31jAf2TXk01CY1NFczM34Hi0Crfsk109u4WR0EcMSM2L3OBGGHO01fliJRj s5DzbhTSaM3ANlGMJvt8dgVdR1b2KTCYtlZnhCMSQ4dQLSIeOkn13lCvsHchIT1rH0jy 56iazaKJU8C6UzuR1GJCVoQUTLDp3mES52GW04KyFxarTqgZ+IKjZe/cXkWwIGkrCwFr NtYA== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=x/MfkEHGPZ5M9KUZMJR4mCbMi4+mDKMNIjWGLzVSLEg=; b=g5OpfbS2fYy7Ly3zpTx3ChseCJ9crFBkIiqM8V8pfCLkao0aC4yEzcy/+Cb5lLLUD6 7QsYvx46KAAOVM1th4kog1C6IAnrlofxtRRf0tOBrxg5/e1PGLr3W7hyinFjrnX7tvLx sriWcl46gA8dCinC+dqASd77thnQ4QCiHCPlwvdLmNX9UwIFbp/qJCi3AadUS9HCczgk ymDIjJ+lM45wpyihVFKJicAoe4ddFGq6DP84q4WnUyYVgBvL/tQA3eMQ91fOIvZnSZKS V+GQSl1YcVV0yhjt8OWr9wwI2+QOcbgk/FrcyB05jh8ZdOH+eHdcz2mPr0CYm2Ln1fCx 8mxQ== X-Gm-Message-State: AOAM533MFQkkhKyxuqqLMMI2v34Y0k/rph9RSjKLXrlcxax5H8cpHuJv CpTESN1n3v2WDZKB+BJgUJYT7BzQdHo= X-Received: by 2002:a0c:8d44:: with SMTP id s4mr10459874qvb.43.1621721396205; Sat, 22 May 2021 15:09:56 -0700 (PDT) Received: from localhost.localdomain ([191.83.214.167]) by smtp.gmail.com with ESMTPSA id 20sm8007327qks.64.2021.05.22.15.09.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 May 2021 15:09:55 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 22 May 2021 19:09:03 -0300 Message-Id: <20210522220904.7012-2-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210522220904.7012-1-jamrial@gmail.com> References: <20210522220904.7012-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avutil/mem: add a function to retrieve the current max_alloc_size value X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: yr0RkTordfnU Signed-off-by: James Almer --- Missing APIChanges entry (Do i bump version? We're still in open ABI season). libavutil/mem.c | 4 ++++ libavutil/mem.h | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libavutil/mem.c b/libavutil/mem.c index c12c24aa90..495eed880d 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -75,6 +75,10 @@ void av_max_alloc(size_t max){ atomic_store_explicit(&max_alloc_size, max, memory_order_relaxed); } +void av_max_alloc_get(size_t *max) { + *max = atomic_load_explicit(&max_alloc_size, memory_order_relaxed); +} + void *av_malloc(size_t size) { void *ptr = NULL; diff --git a/libavutil/mem.h b/libavutil/mem.h index e21a1feaae..322d6acb68 100644 --- a/libavutil/mem.h +++ b/libavutil/mem.h @@ -698,6 +698,19 @@ static inline int av_size_mult(size_t a, size_t b, size_t *r) */ void av_max_alloc(size_t max); +/** + * Get the maximum size that may be allocated in one block. + * + * The value returned by this function is effective for all libavutil's @ref + * lavu_mem_funcs "heap management functions." + * + * @param max Pointer where to store the value + * + * @see av_max_alloc() + * + */ +void av_max_alloc_get(size_t *max); + /** * @} * @} From patchwork Sat May 22 22:09:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 27922 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp1696246iof; Sat, 22 May 2021 15:10:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxfomR9E8nF8CdcLIBiHFAZn4q0aB3xJ8W75Fv0ghREdyUoMhJ96N1NZje2FPjEptLq+TRF X-Received: by 2002:aa7:db57:: with SMTP id n23mr18254073edt.229.1621721416773; Sat, 22 May 2021 15:10:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621721416; cv=none; d=google.com; s=arc-20160816; b=jnnlY5SU+5a0C9lt4OtTNCM9zOYjfUAG4KjCbpB6VvMkLmsVgL+GOuETMx2wzohKCn XIghxpe42ebigag7x4DEptadR62BZcYjtU8dp8i+aNtlm9tLZgonz90E7zzOx9DRR9bc Le35agVpqrLwHwD95d5Rl5V9kdNVEsdKJFTWrXYHHIIAUs2QyP0h2p23+eorFUlZ27iy BDSQs9uBgz13bUW3jZMusmtSj/s+A7wFw5R/rfWyFayqV/ttDh+3dgPkbm5qoBp/4BtW iUgaHANal3pMQeUYogK8lkQ/djiyGWFg0HjHHk4vbapDLt967/2skU0E2IMaImnStW7S jTLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=WOqnS+lY2L2ekOboNZxuIp8lNa6b+lspCa6VZvFet7M=; b=k2vhatKp/P+duz7kIKeklMr58XVX6WzCPAkvvez6zV7aZItFjnVgKzRUdaQsp9JgKQ LlKbmwhwZOg+ATs2VmEozoDWHOpvhfdAMSBTOpi5lIs8B/HZv+ddlgx+OKiGZ8ZeHZPi VCzVepMK7OpAEWec79bC/nr6w2Z2mSIhJWejTNBei677F2rxavoiHJpjqArT3dao96qq YMFnzNpKoHEFThIf48qQGiaQlWimzQ6OZxDC4f1wXzzhlZZuEbpqBtrMdUTXwjnE+GdL aJ8N4wqLXCxcviyOw+a//O4Jvo9kqX9RR35FhY7A/yjvjaOvZM1PycqxYLt/WJv/mUsj wUbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=O5e6dKOm; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n15si2047719eje.4.2021.05.22.15.10.16; Sat, 22 May 2021 15:10:16 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=O5e6dKOm; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 02C036883DD; Sun, 23 May 2021 01:10:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BD5C2687FFA for ; Sun, 23 May 2021 01:09:58 +0300 (EEST) Received: by mail-qk1-f176.google.com with SMTP id f18so23487891qko.7 for ; Sat, 22 May 2021 15:09:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=ZzQKzSUOr2C0BNmqKrUBLqk5bxiYYzq8i6+6xUXr3nI=; b=O5e6dKOmhaZJf7AKVkKHLx9Lwtqia7tKWRGTfRlatNWuGK9oO+9TDMXAt0mv2p8qIJ wChXSnWYyM0wJr04JZ2s6E9Ztsiytgcr1Syn6No/0jGGQaipUAZsnXJTIjf1gHi/3PY2 4JnGe4UBIsn49MKZaK0L3W0LsiTkOke7Wj2Cg93EGG2hzaGSL+WWe7DlfC+jOPhPUQJt x2kldWpsa/ATi60U+8y92y5Oh3QYAVTGjZQkNOraWVIZcF67yzfkNMiITANxdxTuOuv7 6INecclXnUiCiHSr/G+Pwm/OnzrV58ARmUjZy4FGmcc1MwXmJaytjRg3u1AUT91EsQv5 E9wQ== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZzQKzSUOr2C0BNmqKrUBLqk5bxiYYzq8i6+6xUXr3nI=; b=kEYOEQGjK4olWKKjTtsoYBj0yzdhF9HBu8rTyiW9LbKdNhiiIfqdD8evTp7pvsyW5z D7ypWOazYbH1VowD4YR3X79Vegmsy128Pl9nXUr/iWMvgN2PxKgDu3jOLkTWeYiCiEG7 MUBlysnf+eCqfCtxKW6f518JyzaGYFkBUVfgD5/eqv/SMjaMLE75K49RvV9n77J01Jyw 4/nkazN2T3YsZXGnPpsSEiExb1udSlHrhcCDzaQ6e8fmWsCl4yAU91JCz9moAq9MLjAX GhWh0W59Ip+5tLCqi2zmdsiUTZtASMTVw3Fn/Vfq/2mms+GY6zwLzHZ0ApBqTOScbhV8 dY/g== X-Gm-Message-State: AOAM533qRv0eqjXCOwB3FZL6CAfFNGVC8ThotT5ElYPnaKrmkzj4swH5 UGQ7byueIzliIq/tTml5nVt61R2aRLA= X-Received: by 2002:a05:620a:112d:: with SMTP id p13mr20603810qkk.375.1621721397289; Sat, 22 May 2021 15:09:57 -0700 (PDT) Received: from localhost.localdomain ([191.83.214.167]) by smtp.gmail.com with ESMTPSA id 20sm8007327qks.64.2021.05.22.15.09.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 May 2021 15:09:57 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 22 May 2021 19:09:04 -0300 Message-Id: <20210522220904.7012-3-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210522220904.7012-1-jamrial@gmail.com> References: <20210522220904.7012-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avutil/mem_internal: use av_max_alloc_get() in ff_fast_malloc() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: pPeaBXjwgZYl This puts ff_fast_malloc() and av_fast_malloc() in line with ff_fast_realloc() Signed-off-by: James Almer --- The alternative to this set would be to move av_fast_padded_malloc() from avcodec to avutil, and moving ff_fast_malloc() from mem_internal.h to mem.c, in which case it will no longer be inlined for easy use. libavutil/mem_internal.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libavutil/mem_internal.h b/libavutil/mem_internal.h index ee2575c85f..76277d3fe4 100644 --- a/libavutil/mem_internal.h +++ b/libavutil/mem_internal.h @@ -24,6 +24,7 @@ #include "config.h" #include +#include #include "avassert.h" #include "mem.h" @@ -138,14 +139,21 @@ static inline int ff_fast_malloc(void *ptr, unsigned int *size, size_t min_size, int zero_realloc) { + size_t max_size; void *val; + av_max_alloc_get(&max_size); + memcpy(&val, ptr, sizeof(val)); if (min_size <= *size) { av_assert0(val || !min_size); return 0; } - min_size = FFMAX(min_size + min_size / 16 + 32, min_size); + if (min_size > max_size) { + *size = 0; + return 1; + } + min_size = FFMIN(max_size, FFMAX(min_size + min_size / 16 + 32, min_size)); av_freep(ptr); val = zero_realloc ? av_mallocz(min_size) : av_malloc(min_size); memcpy(ptr, &val, sizeof(val));