From patchwork Mon Sep 19 16:10:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 38052 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1337622pzh; Mon, 19 Sep 2022 09:10:54 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4cLcsa7pQfFH6dbi/+zWgkDyraUZBvu79o3RJOfQEnsOMMGlKfZyG5t65Kcw2tu5NwKKPi X-Received: by 2002:a17:907:6ea1:b0:77e:4c93:130a with SMTP id sh33-20020a1709076ea100b0077e4c93130amr13316804ejc.482.1663603854466; Mon, 19 Sep 2022 09:10:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663603854; cv=none; d=google.com; s=arc-20160816; b=D13VZZHEQytArdIzcd4atgK8g4oY54CJj4+XbMKs25QG31k0CfuCz/P2AHQuI+aeYS egSs7M1Woj58cslNPC5MKSDpUzyd8x1nb+/vjlTQ/gqvsceuKfy9SAMQJ0lRADUKdJrr zk3iF7Odvu21OT1MZoEdJETM/Bcav5kGzf6t3ZUZIqLxfCsrApxF+P7XpaUh5sFa9zUV MIXretHh3ecIZCAqay06uQJXJn9/r7SaEshPKbyYB3/i/Meb6JxTi4k5r3iXaoTL8TLJ 8Tz5GxL04Abr9eTpsauRn3g8E5eglCIWj+/1pB8qts0YgYgo1kkimKE0NtasT/nix7b9 Cq6A== 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:delivered-to; bh=Sd8G9AASFkC9gbd7nws/IjwHTabli8V2hHZVRraR1Bs=; b=VT3sCMQYhNKo5jopCFqZH/FL+mOHBmnSdl6uPU+csPK45Q557R2SiYFPIk9uUFK3n9 C6dntvNNwrVIG/0tUyXTPt5KtMf+pHa4R1YAUSe9eZvmryklkucgn3F/ttK/pzj7lth6 c2wMU7mhikkW7S/upYNDVun68GaEJS+BIMxx8+l+E2D0kgD4e/9zXmrU3v1s1AqpAVmZ xeVurlHnnmhVdLJujOh9Js53alU0jj9pqll0+tbt8b/16yzDI3CPsefBzG3RODc5mEOS OVM/zss9cVOzUMlXOooqrktcsoKrzFjQgxpeKlfJflr+klwIdMqQjrw5otxzd8UXFXL7 27+g== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h11-20020a170906854b00b0073d626e2ef8si11714131ejy.461.2022.09.19.09.10.53; Mon, 19 Sep 2022 09:10:54 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1718D68BCB5; Mon, 19 Sep 2022 19:10:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2CC3968BC63 for ; Mon, 19 Sep 2022 19:10:45 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id C6B9FC0088 for ; Mon, 19 Sep 2022 19:10:44 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Sep 2022 19:10:42 +0300 Message-Id: <20220919161044.19545-1-remi@remlab.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <170537ff-c751-1f40-49aa-d1dfe8b77ce8@gmail.com> References: <170537ff-c751-1f40-49aa-d1dfe8b77ce8@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCHv3 1/3] lavc/vorbisdec: use ptrdiff_t to iterate over intptr_t 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: yoj+GtpM0eGc From: Rémi Denis-Courmont While this probably never overflows, we are better safe than sorry. The callback prototype should probably also use ptrdiff_t or size_t, but I diggress (this would affect the DSP callback prototype). --- libavcodec/ppc/vorbisdsp_altivec.c | 4 ++-- libavcodec/vorbisdec.c | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/ppc/vorbisdsp_altivec.c b/libavcodec/ppc/vorbisdsp_altivec.c index 4dabf2dc7d..c298d8cae3 100644 --- a/libavcodec/ppc/vorbisdsp_altivec.c +++ b/libavcodec/ppc/vorbisdsp_altivec.c @@ -31,12 +31,12 @@ static void vorbis_inverse_coupling_altivec(float *mag, float *ang, intptr_t blocksize) { - int i; vector float m, a; vector bool int t0, t1; const vector unsigned int v_31 = //XXX vec_add(vec_add(vec_splat_u32(15),vec_splat_u32(15)),vec_splat_u32(1)); - for (i = 0; i < blocksize; i += 4) { + + for (ptrdiff_t i = 0; i < blocksize; i += 4) { m = vec_ld(0, mag+i); a = vec_ld(0, ang+i); t0 = vec_cmple(m, (vector float)vec_splat_u32(0)); diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index 38a5367be3..bfc4be6fc6 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1581,8 +1581,7 @@ static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize) { - int i; - for (i = 0; i < blocksize; i++) { + for (ptrdiff_t i = 0; i < blocksize; i++) { if (mag[i] > 0.0) { if (ang[i] > 0.0) { ang[i] = mag[i] - ang[i]; From patchwork Mon Sep 19 16:10:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 38053 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1337729pzh; Mon, 19 Sep 2022 09:11:04 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6lvAG8I+2xpu9ja0Zd+9QwMW1wa/WctbqkMqsEMu+PwYoNeFkQ0qoOG3lV0Hg16bsKHfK9 X-Received: by 2002:a05:6402:184:b0:442:fd54:2a21 with SMTP id r4-20020a056402018400b00442fd542a21mr15962822edv.129.1663603864370; Mon, 19 Sep 2022 09:11:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663603864; cv=none; d=google.com; s=arc-20160816; b=w6sD5swVblgj3Ch5pRHuZH2HMYJ73eLvoS+6nAROvuw8prtE5VuYE4jmGr8LenoHLh JsGtssDndAJzFRUny9MgvJK5/QgmNZTuL3dHTiAvmwMuwIIJccNn4NOeOEJ9kbH1vYeC CchppL6J9P0OZQ9nglSHyzWrCy1IpJcI3fhq6WwL+SzjOXe6BpKgOWSJ2F6UBtf9iozm 8ahM4EhmOKzfzb0Sq/zqqI7PdS/+KbQjo+YAfKlxzanKB24WHX2zbIAypZ5gG6Wn2Kc2 lKNOWfw7XshzIVILhOGEJ2DQqVvesWCNq3fEGxcW0rBZar4Wdx2VI81gGS7OrccERI5+ olxw== 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:delivered-to; bh=gF5rweKQ4kLd2ppPFK++8ZScvEAD6WUGKO/j0+f5BpA=; b=sB0gDv2C+0u6JKC4nYhuO2ikJk4ikJA2dv+50nPkKZQn0dhLuIGJyLqMLfloPgLUjv W3mtL1H52zi5NNcGkCNexf+XdFaDK+1Ckgn6A7DFH0ZVHl7DOuoyz31cmIkwpGP3A90l 0m1D0w3Xtm401fruDqsMTO/suNVnxVF1OOWyK+hI9wDhBJ2Ce6KQLeqMt/BkaFEYykMC Mqbt9OgLvhJtBt0Of4QZRio5iT/3H9DBCzwyWqYLY8ph6EQ/ScGY6ZGcnGdlRvYlZ2HU kOWmt/X1RyUbDgnEfufHO11RwG1xtM2wO8pZz3HMZvcdDZ+iUWVGS+Sn8wvVQqNa2ZQH fHsA== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l6-20020a170906794600b0073dcc5ebf4asi29155415ejo.397.2022.09.19.09.11.02; Mon, 19 Sep 2022 09:11:04 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DB1D468BCBE; Mon, 19 Sep 2022 19:10:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4C36E68BCAF for ; Mon, 19 Sep 2022 19:10:45 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id F3DDDC0098 for ; Mon, 19 Sep 2022 19:10:44 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Sep 2022 19:10:43 +0300 Message-Id: <20220919161044.19545-2-remi@remlab.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <170537ff-c751-1f40-49aa-d1dfe8b77ce8@gmail.com> References: <170537ff-c751-1f40-49aa-d1dfe8b77ce8@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCHv3 2/3] lavc/vorbisdsp: use ptrdiff_t rather than intptr_t 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: LjY/8LkQHUiU From: Rémi Denis-Courmont ... for a difference between pointers. --- libavcodec/aarch64/vorbisdsp_init.c | 2 +- libavcodec/arm/vorbisdsp_init_arm.c | 2 +- libavcodec/ppc/vorbisdsp_altivec.c | 2 +- libavcodec/vorbis.h | 2 +- libavcodec/vorbisdec.c | 2 +- libavcodec/vorbisdsp.h | 4 ++-- libavcodec/x86/vorbisdsp_init.c | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/aarch64/vorbisdsp_init.c b/libavcodec/aarch64/vorbisdsp_init.c index c796f95e61..969343934b 100644 --- a/libavcodec/aarch64/vorbisdsp_init.c +++ b/libavcodec/aarch64/vorbisdsp_init.c @@ -22,7 +22,7 @@ #include "libavcodec/vorbisdsp.h" void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, - intptr_t blocksize); + ptrdiff_t blocksize); av_cold void ff_vorbisdsp_init_aarch64(VorbisDSPContext *c) { diff --git a/libavcodec/arm/vorbisdsp_init_arm.c b/libavcodec/arm/vorbisdsp_init_arm.c index f4b3d80ef6..acda34f468 100644 --- a/libavcodec/arm/vorbisdsp_init_arm.c +++ b/libavcodec/arm/vorbisdsp_init_arm.c @@ -25,7 +25,7 @@ #include "libavcodec/vorbisdsp.h" void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, - intptr_t blocksize); + ptrdiff_t blocksize); av_cold void ff_vorbisdsp_init_arm(VorbisDSPContext *c) { diff --git a/libavcodec/ppc/vorbisdsp_altivec.c b/libavcodec/ppc/vorbisdsp_altivec.c index c298d8cae3..8f301705e9 100644 --- a/libavcodec/ppc/vorbisdsp_altivec.c +++ b/libavcodec/ppc/vorbisdsp_altivec.c @@ -29,7 +29,7 @@ #if HAVE_ALTIVEC static void vorbis_inverse_coupling_altivec(float *mag, float *ang, - intptr_t blocksize) + ptrdiff_t blocksize) { vector float m, a; vector bool int t0, t1; diff --git a/libavcodec/vorbis.h b/libavcodec/vorbis.h index f80187feee..270855da04 100644 --- a/libavcodec/vorbis.h +++ b/libavcodec/vorbis.h @@ -45,7 +45,7 @@ int ff_vorbis_len2vlc(uint8_t *bits, uint32_t *codes, unsigned num); void ff_vorbis_floor1_render_list(vorbis_floor1_entry * list, int values, uint16_t *y_list, int *flag, int multiplier, float * out, int samples); -void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize); +void ff_vorbis_inverse_coupling(float *mag, float *ang, ptrdiff_t blocksize); #define ilog(i) av_log2(2*(i)) diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index bfc4be6fc6..10d187b82a 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1579,7 +1579,7 @@ static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, } } -void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize) +void ff_vorbis_inverse_coupling(float *mag, float *ang, ptrdiff_t blocksize) { for (ptrdiff_t i = 0; i < blocksize; i++) { if (mag[i] > 0.0) { diff --git a/libavcodec/vorbisdsp.h b/libavcodec/vorbisdsp.h index 7abec4e4b7..1775a92cf2 100644 --- a/libavcodec/vorbisdsp.h +++ b/libavcodec/vorbisdsp.h @@ -19,12 +19,12 @@ #ifndef AVCODEC_VORBISDSP_H #define AVCODEC_VORBISDSP_H -#include +#include typedef struct VorbisDSPContext { /* assume len is a multiple of 4, and arrays are 16-byte aligned */ void (*vorbis_inverse_coupling)(float *mag, float *ang, - intptr_t blocksize); + ptrdiff_t blocksize); } VorbisDSPContext; void ff_vorbisdsp_init(VorbisDSPContext *dsp); diff --git a/libavcodec/x86/vorbisdsp_init.c b/libavcodec/x86/vorbisdsp_init.c index da9f9e685e..08a3bb2965 100644 --- a/libavcodec/x86/vorbisdsp_init.c +++ b/libavcodec/x86/vorbisdsp_init.c @@ -25,7 +25,7 @@ #include "libavcodec/vorbisdsp.h" void ff_vorbis_inverse_coupling_sse(float *mag, float *ang, - intptr_t blocksize); + ptrdiff_t blocksize); av_cold void ff_vorbisdsp_init_x86(VorbisDSPContext *dsp) { From patchwork Mon Sep 19 16:10:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 38054 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1337815pzh; Mon, 19 Sep 2022 09:11:11 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5PF4JQWMJc+5fQB4XLpWlYfthK4+BJoypY4Hm0WF+7OPDPxj9UIsOmtbkfZz2YsuQXUUy8 X-Received: by 2002:a17:907:a067:b0:77b:9672:3f83 with SMTP id ia7-20020a170907a06700b0077b96723f83mr13274247ejc.523.1663603871066; Mon, 19 Sep 2022 09:11:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663603871; cv=none; d=google.com; s=arc-20160816; b=jlSJuDTdYm+upZBH4GqQkwEjt3yeAjxEWsGdKdRyQRfajroUKkZSj0/B9cLZm72TAL SZSJWTFTFBbSX/wFkQqzjncA0miR9W29EcXhRfxGhRhcG0Mq7VpD32lfB1vincIBjTBS HwOwe3YO+jkKWw7c20X/IIFJqIxl3aWLcIutE7AwGbBX7yHIBL2lN3dfS1v0SWrB3F8c Pf0Vu0fesm5H8qunUx4Uz2cOiY+WegmiHXWZgEdwjU8sJWGwINvDghWXj2mCNzO4tbDx unotb79X0yOkNGeXGdzHkMA1Ic+xyUkNe1GmsFm4iNsPMeIERBpU+5RU6q5RUYKvt8q5 ZG2w== 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:delivered-to; bh=O4O9aaGNsXSf1ENOGIAToq/twdnuZ3q4Xfayz/wSkck=; b=B1T4OV5shZaqcEb2ht6LtxeFqR32HbXVZFBLve+1UVdVw/N/hH2VZQ1ipaG8w+bbiQ wj7J1QRFUAlja1LMhgcoQlaLwY9VV0j8od8FrxA7vvnYvZF8lxDN+drpMOVJKkstAdRN E5qXIhEQaQjjDZlFH+H0baVTkc7/NhKGH9kAk63THf953JMcObWhWOgGjGspYFciD5/h sFKmzMmda8n+uXVH7X4/8nXUK2XCI5dXBM+UEicIpHrf/sDCYUD4B/iu+v9DC7ztZUHs U/QiZZkkfKIAL1cULJJVrjna+U5uWWcNXXE+i15iWpYSVyGyCgYBhkimHJKNxLDc/IMe balQ== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id sh38-20020a1709076ea600b007419b5feb98si26031828ejc.255.2022.09.19.09.11.10; Mon, 19 Sep 2022 09:11:11 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9EA3E68B9C0; Mon, 19 Sep 2022 19:10:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7613468BCAF for ; Mon, 19 Sep 2022 19:10:45 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 2E708C00AF for ; Mon, 19 Sep 2022 19:10:45 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Sep 2022 19:10:44 +0300 Message-Id: <20220919161044.19545-3-remi@remlab.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <170537ff-c751-1f40-49aa-d1dfe8b77ce8@gmail.com> References: <170537ff-c751-1f40-49aa-d1dfe8b77ce8@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCHv3 3/3] lavc/vorbisdec: use intermediate variables 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: jXXdW8twgDGb From: Rémi Denis-Courmont The compiler cannot infer that the two float vectors do not alias, causing unnecessary extra loads and serialisation. This patch caches the two input values in local variables so that compiler can optimise individual loop iterations. --- libavcodec/vorbisdec.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index 10d187b82a..72b8e8e15b 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1581,22 +1581,22 @@ static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, void ff_vorbis_inverse_coupling(float *mag, float *ang, ptrdiff_t blocksize) { - for (ptrdiff_t i = 0; i < blocksize; i++) { - if (mag[i] > 0.0) { - if (ang[i] > 0.0) { - ang[i] = mag[i] - ang[i]; + for (ptrdiff_t i = 0; i < blocksize; i++) { + float angi = ang[i], magi = mag[i]; + + if (magi > 0.f) { + if (angi > 0.f) { + ang[i] = magi - angi; } else { - float temp = ang[i]; - ang[i] = mag[i]; - mag[i] += temp; + ang[i] = magi; + mag[i] = magi + angi; } } else { - if (ang[i] > 0.0) { - ang[i] += mag[i]; + if (angi > 0.f) { + ang[i] = magi + angi; } else { - float temp = ang[i]; - ang[i] = mag[i]; - mag[i] -= temp; + ang[i] = magi; + mag[i] = magi - angi; } } }