From patchwork Tue Aug 23 09:03:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: erkki.seppala.ext@nokia.com X-Patchwork-Id: 249 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp2180052vsd; Tue, 23 Aug 2016 02:05:16 -0700 (PDT) X-Received: by 10.28.32.15 with SMTP id g15mr19706567wmg.25.1471943116526; Tue, 23 Aug 2016 02:05:16 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p184si20018968wmp.85.2016.08.23.02.05.16; Tue, 23 Aug 2016 02:05: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=@nokia.onmicrosoft.com; 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 dis=NONE) header.from=nokia.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2C12F689C88; Tue, 23 Aug 2016 12:04:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0097.outbound.protection.outlook.com [104.47.1.97]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3FB8A689BF3 for ; Tue, 23 Aug 2016 12:04:08 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Pgt/gy01+N86ntdFekTWHCSrma3a6n0AiUZfNAiioBY=; b=TkMW+aOQtp1KSTdJvqPOJtDUjcxVNTbkK9Ga5ZGHdgrvHsxEG2w9JjezmSmbXcT9DzHSVTjftaOJYtdh9LHJOjNxtPT8SgWQOIqWe/RH/LHNy6QVsl72F79W4JlpcVeBGetirSZ/UQEzgnBzIq1r9g/Z/gjGV6izWmEwMQZZfYw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=erkki.seppala.ext@nokia.com; Received: from erkkise-laptop.vincit.intranet (131.228.2.4) by HE1PR0701MB2537.eurprd07.prod.outlook.com (10.168.129.15) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.587.9; Tue, 23 Aug 2016 09:04:08 +0000 Received: by erkkise-laptop.vincit.intranet (Postfix, from userid 1000) id 3F5574449DE; Tue, 23 Aug 2016 12:04:03 +0300 (EEST) From: To: Date: Tue, 23 Aug 2016 12:03:19 +0300 Message-ID: <1471943019-14136-2-git-send-email-erkki.seppala.ext@nokia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1471943019-14136-1-git-send-email-erkki.seppala.ext@nokia.com> References: <1471943019-14136-1-git-send-email-erkki.seppala.ext@nokia.com> MIME-Version: 1.0 X-Originating-IP: [131.228.2.4] X-ClientProxiedBy: VI1PR0901CA0081.eurprd09.prod.outlook.com (10.167.203.177) To HE1PR0701MB2537.eurprd07.prod.outlook.com (10.168.129.15) X-MS-Office365-Filtering-Correlation-Id: 9d03c43a-7e0e-4bd1-dcd9-08d3cb3470d8 X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2537; 2:kfbAZUBTQVCCcKSut1X3eIknI4+KDDWne9Ovrayx+qviCx/0zcG3tMh+NjhNV9hOoCWH/WGGGhZPWnE2wPqA+FnT7sz1eQ6l5AFXU6eZEJiNsR9rTzCDUfSMsXFAbgtORfn9GlVTVtJg63BgK0RMgpaDnwRQF/BAHJDn2uxCie5WGxnSm20T3xRG0SkAc7hE; 3:XVF6VoMWsY1DunFdHZCxbeuVNAlmGObW7yB7GzNg8aTv6gItahDFwf91R2dq+CRysQI3IVKHo2TrrJ+2XikaCWEzEuRU+tzjiRrbRUdnTD4Fg+EcEuFkd/R5BR0oLrVo X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0701MB2537; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2537; 25:xYYnPcT5wOjK8+SeS+xsSiZUsxg5EcdD7F0nmuFBFb+EWDN9xKxS3bflM5udsDFQq0pXxgZyrEhcDiU8WgYMCuCrLzmBQSO8zKO71hw+QTvGYYF2SYKynXKM3icyUmoKhMf7SSSUO934dnnqpmWUIywyNeyDBFKAcLn6xd6hNV6U8vqNOv/Jwwz8kmt7pg2CilWG32MDJDOMa4fqp4ZLv2KJjDKrhtsYRhiDA97N+s9yejGpTYzf0TpnVJYJmjneW+Zk65a1Ot9QSJGVMfW+GpQWCeMYMhhXHkSRNTJw0O5mCAjl9EEoC8qo35CTqC1EFMD0S4TWS91wNLX47QVhGXAMnXncSNNRGd52QH0yEaBPlSJuuRE/Kx1hYjQhO9IR9sVi7f2cz+JtsPSaFSuHxk3xWb+v1RkOS5EKpWQv3tx4hvgVdN2Ts2hcpk4SByaoZ/VJEhzkJ/xDS78MbyDSKimMNYhgD0lABEdsdrQ5LVhDJY5/iA3t8EuF+Mkq3NUgytwJOS+UO856tHIPpjzQSKXLo8ZOXsR5rp223bbiGPUS2hRcnFrKrd7gk5gsMeQiiL/fWJYPZ/Ts8cc+B9pZI4w0Id97lzbtTZNHIc918CSpWKaJUuho9GsDszvzXK1onWEHifisKVlYaBnKt9t3e0ZtmBebUZ+fg2aklwnFD3QCEmIINJ5mFhuETfvCDXqA; 31:UC4M8xCEfpkuFq5O0ssOlL03H9kPMgpgQlj8AJxnh18pjAo3KLSS9+f22YS/DP1JlEjDeTC6W69lkBMDBJ61btqHMBc13SrGmqvsSkuhlDhEzA9eIL57XI/ymRLhc2HMvJ/y23uPrDtVfkhEZwISuhm5z/MA6p0ROOMZ/Ja8jxZ+wt5TmODlBbF8+hGuyfrRGCsmNLcZNeoM4utHMbPVGKLdIzRzt0O/VxUAc/sE6o0= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2537; 20:YecHvOecRMaUOz4jAFWs0Nz6E03TqRhniidD6sCT8wV+0yWJgvX7GS6LgEyeEYdoLV1Qw7QV78F1yWtVADPQ0WUf/nbSY5jNTFAKKdiRA7LdjEpGdeODg5viCYYrW+sUcSMLflJRPvDQ752LsqBjbEQAOEpIl/Dvv6xxSRO1MxkwfiL9qMycU9tCYBOFfuTHFDqUjKbOntTOMckTkQfDK4hcakoXH191xBsoWNehiMHWjVC8RQU7S4k0MFeWmUZIIUiHWIrlE6UVFsCq2P1gk4Dj31NvQFnPeVO3x1vsEBIigaF9qtno/uRQjswNE//4XPqChFFqa8SDgmrbBg5By4ajHsqtWPyz2R8mukp+Yp9qMk9Y0VHVz7+UGKi9qGkqabEPjGs+xpknHCH7o6038n3Ondya7sgVfAdJDcSkJjK/U6axupIi266fA2DWdQrlg9fo7tyXzXrIRRVJNPAt+WrHW1774zWfMI/08N13HWxysJw4yGWOaL+XW7YbL5V8 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(131327999870524)(82608151540597); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:HE1PR0701MB2537; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0701MB2537; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2537; 4:OReEb0yjdSWj+jvqdYq0LBdd1EpPnUtRnDuy2IK/zCDhzGt607wtvB5fDjrM+DHWNxKYMwEP2OLvpR9H9sjf8j6hNEFE63vsMJelIGiy3nDGKXnh2UGqg/piAp3IpvYeZ+H6dh2AKSfFP9XO7VHkuP9IyPOCIjorpuqUxYc5lWCxuPIxiFZp2KEQvdilf46i7+YbpCST9i9HdstgzeoHcloF6qnoHONUOl1sPV+VlyAc2Rbe7nryGuqxbuOAeR9Re/qobS8hOrfe7XJ6ZnqdXQ1pCtwDtJppnt7SgMHl+zc9lT447IEaFJ2Sfcnj6JxSUiTTB0tmGu0qp2IOsfZnLT3DoWRBlEn9SJ7VpJtqT3Ta8xeGivX8zvQEMTLAKxcwZdYBwy4OIrT2Y98zzprSxngGKa0Vd/dgZ5Mvm1oHV50kCHFca7GDsoyTOXMyOCc4BZcWezO3F44D5+sY7os8ixSUugIxV5IfwLwncB25YbE= X-Forefront-PRVS: 004395A01C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(97736004)(23676002)(5820100001)(4001430100002)(86152002)(66066001)(47776003)(42186005)(68736007)(92566002)(106356001)(4326007)(6116002)(5660300001)(2950100001)(2876002)(586003)(3846002)(90966002)(450100001)(2906002)(2870700001)(122856001)(76176999)(46386002)(33646002)(105586002)(36756003)(45336002)(50466002)(107886002)(8676002)(81156014)(81166006)(110136002)(189998001)(50226002)(229853001)(2351001)(7736002)(86362001)(52956003)(575784001)(19580395003)(50986999)(305945005)(101416001)(19580405001)(7846002); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0701MB2537; H:erkkise-laptop.vincit.intranet; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: nokia.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA3MDFNQjI1Mzc7MjM6akNiNWR5aWMxRUtibC82Rk43ODdwY1FH?= =?utf-8?B?SjVCenNaaGxJand5aGVxMFNxK3BuNTlLcTROeXRKckQ1YWZYTjN2ZXpJcnN2?= =?utf-8?B?RWFFb1o5S1hMSVZVcVFDbEU4Uk5RRU9IMmsvRnUyQWRmZFEzN3RNakd2TTFv?= =?utf-8?B?SW5hSVRPTVZ3YnJrQk9IQnhSVDllTkN4NkUwSSs5N3J3aENKWmdCRzZlNTg0?= =?utf-8?B?dkdTOUt4dzBBc1htSkpEeUhNN2R1cFJkYU81VUwxRmlaSjRHcHc0eEREYTRt?= =?utf-8?B?Vlh5djJVMFQyNE5QWFJpc0hVaEdWSTRVaXUvaDRub2s4dVRFdWc4anpxSFpR?= =?utf-8?B?a2tUT2ZTQjNZQ0tkVElhSHZjdEUvQ1oyMzdEejcrTlF2cnVKeDV2ZkJnVXoy?= =?utf-8?B?MHhVbzJCNjNjRXMydXIzVU1BYWZIb3dSNGJBWEJadmV5aEp3UFErdlNsWEcw?= =?utf-8?B?cWxFeTNNTkpJZ2RDd1A1OSt6Ym8reCtWLzF3RFYwcVBsN1dDSXg1T0lxZUNa?= =?utf-8?B?SWh2Q2VwWkU2bWpTZ3ZlTGxVbHRnOVR5M3Z0a3JzYk83N1oraThnSlZBSUli?= =?utf-8?B?aW1vVmJ3NVQrTTFYRlFPWURXUEVKNVRIeEVFWW5BamF2LzZmTk43OEpLdTh1?= =?utf-8?B?QlhsQlhtVllvcnFRRUJYdTdqcURyNjJuSGkxRW9uOU5HVm02eHpoTHRkdDZD?= =?utf-8?B?QmNkQ3krZytlTFk1MFVNYm1lZFFjeERFRi9tTG9GQ1pGb1pIOXZuaWFJWTBv?= =?utf-8?B?SGZRVXJ1dmtSVGgwYWZqQW9LM2crVGlLQU1NMHUzdEN3Q1hWUmYrOFJla1NK?= =?utf-8?B?ZnIvRXA4QzkrcjhzOG1xd3dMZFBrSU45R3l1UERpZGFWL0tpT0VJbjdiY2E2?= =?utf-8?B?UDhBaUNySDVBVWptQnY4VkwxQTB6ZXpIR2grZGxlSXRZdkpySXRYZ28vY0dS?= =?utf-8?B?RGZkTFVqMVBnZU5jU3pXMndBNGlvVUhYWWpkb3ZqQVZ2QU4zZUpBTTY4aWlt?= =?utf-8?B?U09DK1BVWFdwaU5VZjg1dStKTGpzUDdPYzR3UHhKdG1weTZSd21TbHp4cU9r?= =?utf-8?B?a2xOL2lSNm5SZVdpcUFwZXhOaVp0YTQ5VjlkUEZZMUhKZXZ2Vlo3UHBKQThm?= =?utf-8?B?T1JtRjJ2ZmVXVk5VWm5xdlZLMDlzU25malpCR016dGVXSjFsejlvSHB3dmtQ?= =?utf-8?B?cXhZdzM3RXRWWjhjUUM1MHRaaFBzazQ0VGZIQnRXTG1OanBGdHhuenNvanBC?= =?utf-8?B?SDU1dFFkNVRKckdNc2o0dnJEZHpSODFDK0duWWNEUGtmR3BNRHFPVDFUMTM1?= =?utf-8?B?SkNUalFPd01ob2xKVGVvelh6eFBMU21Od3pjWldTbU1qVW1qSkF5SGxuajNu?= =?utf-8?B?U2Z5R0ZaQThmQTNwVmZKTlZ1NXBhMGU3aXBtZUo1dTlxZDRyTGMyOWVUcG5j?= =?utf-8?B?dWF5TDYrUEdwemtENWJkL0NRaWlETmtnbHV6NmF2UElPeERJUlJ6Qi9zZm1P?= =?utf-8?B?TFo1V2x6aWxHSjlFbHVMdGdRbStTbElHUUYvckd6VFBOc0EwbmxVZHZSc2Iy?= =?utf-8?B?dXpTUmRWR2NWQkhQTjhrMjUrZ21sYVpVRXJzVnJ2N0c3YUdEcy9mNHRNS04z?= =?utf-8?B?QkRyM1FodytWcGpsQ2NUMm1nMGNrK0ErZ0I0UHMzanhyRjZYRzlJc21VN1ZS?= =?utf-8?B?T2JoQUVOQkZ4ZnRTRDJUaWxld3JrWDFGK1lLQVQvendhK2sxcUhId3B5U1Q3?= =?utf-8?B?WG1nWWY1SXZxSGllc2s0WndPVWVIQkNXa3l0bURXV09pV3FYeWw3THczZU9u?= =?utf-8?Q?gNV+umXeKMT07sX?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2537; 6:k2aSMtfq1BAmDd8qfENDBaS13A7RYBBUkqs8MrdGr7OVWPk1B6xFR1ZEOzNFAGooRbcv/UP0mgHc7mivdW+uxaqvc/HzF5F8qztBH9m7oHdN/oUSQhakBLE+2FzGwDoB25RmjQi3+51tGgZG/C63xpSDpUvCCiSO+iB+Q0Bg0gso/dT1+lIJDGveWXlBnrAx5c0VyblUeDQc+Dxh5emBwdBK8OU2LTXuumQjz/qSranAYLmN1IDYGFZNldoo36QH2WV9K92UMs10v6r3xAkEc8yJhUjfArYp5NdsBqo1Nh/J0l+cUAf7hOHXusWdePT/GcPWsugQzzXHG+QsGeGA3w==; 5:0bRZTtACoxkz7w77JnmvzZ6FIBWavNpkbNVD8D4qBaSjKZ4vZHUBf0KII70bGH4jVhr45W98NUcme1tvbWsM/uNy2QjkWZD5JZnEIeKfE/8+u6RP73NfjVoRJ5PMUKZHD5xgXQUp6k9HE0g3PJ0bAw==; 24:Gjf2heG/YyKGoHOPHbyBAliZoBnynBTtr80WjnSlkRtsk00aFtgjYjD2NMjro0NfYh0vNLdjB9D8YtIepm5tRhL1VQrqjOIojN/QXM76cUY=; 7:mKzh/GivAiBqmwFlI5AJ93j8Kg1aCU0XTHFpRyhGZy76P3vx3kwhvubMaW1QzOpK4KAIcEpOInzA9nW9lgtlb4K81WNecMUk1NpUOU1dnZacPYSMZbOp0pjJv8QWs3sH/+TK+AAMaR+744iEO6JyaTqvGVEpp3fvEfRPS2J7XuZ5iHDNig4jDJAH5MAgYhRzogmrXCpNuw7q68yuWj8Q21RK8E9q2PPg2WWlWlsq+ld8bvMnvU9jp89xAc11yhWg SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2016 09:04:08.0539 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2537 Subject: [FFmpeg-devel] [PATCH 01/21] libavutil/mem: added av_arraydup to accompany av_realloc*_array functions 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 Cc: =?UTF-8?q?Erkki=20Sepp=C3=A4l=C3=A4?= , OZOPlayer Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Erkki Seppälä This allows copying an array so that is compatible with the array reallocation functions. av_memdup won't do, as it uses av_malloc underneath, but this one uses av_realloc_array for the allocation. Signed-off-by: Erkki Seppälä Signed-off-by: OZOPlayer --- libavutil/mem.c | 11 +++++++++++ libavutil/mem.h | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/libavutil/mem.c b/libavutil/mem.c index 1a8fc21..c74374e 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -307,6 +307,17 @@ void *av_memdup(const void *p, size_t size) return ptr; } +void *av_arraydup(const void *p, size_t nmemb, size_t size) +{ + void *ptr = NULL; + if (p) { + ptr = av_realloc_array(NULL, nmemb, size); + if (ptr) + memcpy(ptr, p, nmemb * size); + } + return ptr; +} + int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem) { void **tab; diff --git a/libavutil/mem.h b/libavutil/mem.h index 7f0c610..08ed520 100644 --- a/libavutil/mem.h +++ b/libavutil/mem.h @@ -514,6 +514,17 @@ char *av_strndup(const char *s, size_t len) av_malloc_attrib; void *av_memdup(const void *p, size_t size); /** + * Duplicate the array p. This array is compatible with the av_realloc + * functions. + * @param p array to be duplicated + * @param nmemb number of elements in the array + * @param size size of an element in the array + * @return Pointer to a newly allocated array containing a + * copy of p or NULL if the buffer cannot be allocated. + */ +void *av_arraydup(const void *p, size_t nmemb, size_t size); + +/** * Overlapping memcpy() implementation. * * @param dst Destination buffer