From patchwork Sat Jan 20 04:29:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Muhammad Faiz X-Patchwork-Id: 7357 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.156.27 with SMTP id q27csp330260jak; Fri, 19 Jan 2018 20:35:59 -0800 (PST) X-Google-Smtp-Source: AH8x225nhtqn/mbRcTrG5r2Jx45/I/aVeKJNY3bFR8qf9lzX2obTTQaKaf7GWZFkf26v0HqmWYML X-Received: by 10.223.136.24 with SMTP id d24mr572925wrd.203.1516422958973; Fri, 19 Jan 2018 20:35:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516422958; cv=none; d=google.com; s=arc-20160816; b=XeHIlGDN79GsYw6tVB0WDQ3DPxu84hMhqDcTcsd3aWZn1DT1agjv37bxINeMAm1hQ8 ETMT8jeqYWqG2riJJU/n2HLWTUapM6zAaaJHjq2MxIHC3RBTJQ3z1GS0sJv2oXL0c0Qc viMI4f1FUsrP9YOZlBFQZ8bhXNp4h74MdkQUY87gTXedAEipk1AI92F9rvlQg0nfKTYI MhXzY1ycMDnpM0YtX95im7JsZ52J24N9nooAMHxdpurm0r0kP4nG3LNAw7UZD0fCOcBp glnlD5AhS7XNMSOBG7YHZjM/2olXy8pgexRnoxQBVZjWvQuP3rl3lf2ZV5rsvO0UtFtr HQuQ== 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:arc-authentication-results; bh=EwpUgfce2mNOBLNXuQkTEd97D1eGAAQWe3ZRZbjXRlc=; b=s2Ru7NgKX0rRBRRz+ZMb+K6xXWMg0sH5SQVrR+PK4na8CVADtBTHKvVGEir3idk/Co +9KDBEU0naQW1JrAltg1sL1S90y9SGTgpQJIJEkwG5LozmHrDa1jJlQmTl54TVPbBF3W sOLVy9f4oEMbA6P+BFZ68+RP9KjoCK+rQeN75dgtAYMtHZMNJTHrF6bK3PUCD3zMRrqm uTiZGc3PDdZM7B5ggXZLO+U18RSylylSkStDCDngwQqNM5WstWLJHINF95ondRJFMrgy 1M4asXehYGdIor2WWV3CcXUfCh6BoN+4DPNz+gKjIb3x6Tc0nR5PbOSWQ45XUAjAmK1Y 5Bkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=IKKwoEhX; 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=NONE 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 g131si1867040wma.139.2018.01.19.20.35.58; Fri, 19 Jan 2018 20:35:58 -0800 (PST) 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=IKKwoEhX; 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=NONE 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 E49E9689D56; Sat, 20 Jan 2018 06:35:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f195.google.com (mail-pf0-f195.google.com [209.85.192.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4AC29689C7E for ; Sat, 20 Jan 2018 06:35:50 +0200 (EET) Received: by mail-pf0-f195.google.com with SMTP id y26so2877810pfi.10 for ; Fri, 19 Jan 2018 20:35:51 -0800 (PST) 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=5WXO0RCPldB8ypDprnabJd9cOKZIa+W9DApcF7JDcQI=; b=IKKwoEhX6H/2WMXnOSGuZWzFVcipEBlUqg+ZL4m18i07oNOndLqD12Bd7pQqqxJq93 yNG6dFlI3mINZtLerTcZ1tMkNQA6QJcj+gLEWpIAWsQ9U4vOfIJHboDnxU48XN3FCHJz oKOFmuNuY6cnWhwhX9wVnKR01TLvHek/gYPy8ETqyQH2KCTQV6nEEJppxqurcE2fOGRQ zsu/SmkvyOGa4wjmeFMIS5gZBTSZxJxBBwxPJLAMT/hS6WrybRMxzmKJpLlkFyccEA0P Pvj9l9sVMjptyB1ANgONrIlV0rD+9hsckQzxBgClDvywGuJKhqqxTz7GYSm/48KtKiax DLQA== 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=5WXO0RCPldB8ypDprnabJd9cOKZIa+W9DApcF7JDcQI=; b=JTqn8sxcusLpVzSVQc7sWCvxkgIBfM3/J0XofyWp7kLqKJo/QfPILlQKJnPm+z2pCB W8Hd60zjhcy7dM1ANJac0seh44wfIp9mxCwmeN5+cxoCh66Qah2KwYfXPjkbFFKYjwIZ tFtyBqZVr/ykkUXvqcAoRLuiLh/niFwHxxvjT6RS7osMHQXidZwMKX07chQium2qH7uv suGX++Fq6puT/Ws+NuIFrPDxvVGmf+cQrGBB4kWcY7WqJzS4g90LMbSVUrWkymsRA2vK fslnP7xgHLya5GK9BXPDnWcuokcfxphaX9NXrxSGXxW8KgLTew8nUexykFmSaf/4qSny +Juw== X-Gm-Message-State: AKwxytdqLHrDBi1D3Z3rTBKfNz/sSzR4C1frzzZnaYX+bsW/gri2Cp1F 3doznwv12KQXqLp1jsR037HGpj6r X-Received: by 10.99.114.90 with SMTP id c26mr825309pgn.114.1516422575711; Fri, 19 Jan 2018 20:29:35 -0800 (PST) Received: from localhost.localdomain ([114.124.138.76]) by smtp.gmail.com with ESMTPSA id s67sm22663416pfe.133.2018.01.19.20.29.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jan 2018 20:29:35 -0800 (PST) From: Muhammad Faiz To: ffmpeg-devel@ffmpeg.org Date: Sat, 20 Jan 2018 11:29:14 +0700 Message-Id: <20180120042915.9161-2-mfcc64@gmail.com> X-Mailer: git-send-email 2.13.2 In-Reply-To: <20180120042915.9161-1-mfcc64@gmail.com> References: <20180120042915.9161-1-mfcc64@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avutil/buffer: use staticpool 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" Use default size 1024. Benchmark: time ./ffmpeg -f s16le -ac 5 -ar 48000 -t 10000 -i /dev/zero \ -af "aformat=s16p, asetnsamples=256" -f null - old: 27.616s new: 22.079s Signed-off-by: Muhammad Faiz --- libavutil/buffer.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/libavutil/buffer.c b/libavutil/buffer.c index 8d1aa5fa84..6dd3f0441b 100644 --- a/libavutil/buffer.c +++ b/libavutil/buffer.c @@ -24,6 +24,11 @@ #include "common.h" #include "mem.h" #include "thread.h" +#include "staticpool.h" + +FF_STATICPOOL_DECLARE(AVBufferRef, 1024) +FF_STATICPOOL_DECLARE(AVBuffer, 1024) +FF_STATICPOOL_DECLARE(BufferPoolEntry, 1024) AVBufferRef *av_buffer_create(uint8_t *data, int size, void (*free)(void *opaque, uint8_t *data), @@ -32,7 +37,7 @@ AVBufferRef *av_buffer_create(uint8_t *data, int size, AVBufferRef *ref = NULL; AVBuffer *buf = NULL; - buf = av_mallocz(sizeof(*buf)); + buf = FF_STATICPOOL_MALLOCZ(AVBuffer); if (!buf) return NULL; @@ -46,9 +51,9 @@ AVBufferRef *av_buffer_create(uint8_t *data, int size, if (flags & AV_BUFFER_FLAG_READONLY) buf->flags |= BUFFER_FLAG_READONLY; - ref = av_mallocz(sizeof(*ref)); + ref = FF_STATICPOOL_MALLOCZ(AVBufferRef); if (!ref) { - av_freep(&buf); + FF_STATICPOOL_FREEP(AVBuffer, &buf); return NULL; } @@ -92,7 +97,7 @@ AVBufferRef *av_buffer_allocz(int size) AVBufferRef *av_buffer_ref(AVBufferRef *buf) { - AVBufferRef *ret = av_mallocz(sizeof(*ret)); + AVBufferRef *ret = FF_STATICPOOL_MALLOCZ(AVBufferRef); if (!ret) return NULL; @@ -112,13 +117,13 @@ static void buffer_replace(AVBufferRef **dst, AVBufferRef **src) if (src) { **dst = **src; - av_freep(src); + FF_STATICPOOL_FREEP(AVBufferRef, src); } else - av_freep(dst); + FF_STATICPOOL_FREEP(AVBufferRef, dst); if (atomic_fetch_add_explicit(&b->refcount, -1, memory_order_acq_rel) == 1) { b->free(b->opaque, b->data); - av_freep(&b); + FF_STATICPOOL_FREEP(AVBuffer, &b); } } @@ -262,7 +267,7 @@ static void buffer_pool_free(AVBufferPool *pool) pool->pool = buf->next; buf->free(buf->opaque, buf->data); - av_freep(&buf); + FF_STATICPOOL_FREEP(BufferPoolEntry, &buf); } ff_mutex_destroy(&pool->mutex); @@ -314,7 +319,7 @@ static AVBufferRef *pool_alloc_buffer(AVBufferPool *pool) if (!ret) return NULL; - buf = av_mallocz(sizeof(*buf)); + buf = FF_STATICPOOL_MALLOCZ(BufferPoolEntry); if (!buf) { av_buffer_unref(&ret); return NULL;