From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 8AF6748368 for ; Thu, 29 Feb 2024 11:34:49 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 69A9268D126; Thu, 29 Feb 2024 13:34:46 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2021.outbound.protection.outlook.com [40.92.74.21]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4AA9368D0B7 for ; Thu, 29 Feb 2024 13:34:39 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AyO3Cj34ORoh8dRKh++gpydy/hxzmIrV6hfVrgpSPvujq/eFfqP5YQkzZ+faafK76FAgccxUBhMmir9GHC/97U1aEaUrhdWjtjBKhfWfXg0Y68DQGS8GPloesMea/sD8g/qT2UoFwDD3eUIP0AU93l61M+7yhJ/qRWtJ9LvvAgAP1qrObztP8BI62zBVpP3IAwk7F8Zhutq16qjYD/TSY4vnF400BooErIeecQc351j2+e0tIxkJd9Ejbqy9wJeF0PMOgdAIui6Du6MF50B79EydSB/GuZ9F9UveSywBarWCVFGMSlu3MhTPPHhQaD0Cp9jMCBcxJoKvjlRblChqCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TfkJDjwwbH3SPFl9dI2jBTdn9Xh5RTzduC4IPrBpj9o=; b=UBY8wg1Ndyen/RC136bfC+KYAyG2410sDl0r0mRDwKAJUyrvSHCrxZpTTMsY5dKoy9bUrrFaYwYWhD71pqDQ7SA9nw/RWRwmXY2cCE2OWKSoxzUENdw+nC5JpbvzcKY+6TIwGO3Vd6BOFgJFMZw31PaO9MCgYl1gqYAN/cixPNeTSnPIcFIktEicw6tZZxUERLrYffWiLiZ+shJtt3ZDwpVwWmSucFvRxFikoPpBP/sMJJ5KgzfU1oJDmQtFB5QRIlxQDRWI83FUs1zQFyE3FNg0u+k7yfTJGJyaa5KEsEbqV4Sf8Ct/EeTvJTuvWgo3xih1X6ATb5f3hglycmX2Fw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TfkJDjwwbH3SPFl9dI2jBTdn9Xh5RTzduC4IPrBpj9o=; b=BPGWCoVODB0E7VLJk+ESf5cJyRx8ed9hATtbAlr/M7BFh5I8tps1IOmq49ghP9mhhY1+Sx3eAeIGU8pzeGXzI3hZMh1e63PFSRvtopWoiBZi13Pq0AAmca5+9qXFgMjWtqwvn5dSyJbY7jTAoHXvTNTk/wtys9UG7LYEzoWbhSazCI8IRf6jCZl+o1lhCnhzMS/zdM1LiUCPvN3YR6W/XFrFVupZ3yU6Y51EaFLwJFrOm0Y9XBUIfRDb6+lumiDTNq+Wh74BCTdAKqlI5mD7THLNJzWEJzyxWfEhcxQOh2RxHCd8CELA2APImHzaCigLcUuwY6migQ14JV1q/ys1vw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0273.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.41; Thu, 29 Feb 2024 11:34:37 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7316.023; Thu, 29 Feb 2024 11:34:37 +0000 Message-ID: Date: Thu, 29 Feb 2024 12:36:36 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240226143521.57913-1-ffmpeg@haasn.xyz> <20240228165605.GB85477@haasn.xyz> <20240229120301.GB20801@haasn.xyz> From: Andreas Rheinhardt In-Reply-To: <20240229120301.GB20801@haasn.xyz> X-TMN: [iqQdUv+LHSkjETW1Wd/50oojlk8FqezrvwNAdSMtYw0=] X-ClientProxiedBy: FR0P281CA0126.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <0d3a0899-74f5-4fc2-b1a2-7aae91b90e8b@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0273:EE_ X-MS-Office365-Filtering-Correlation-Id: 850835ea-2279-4b09-f533-08dc391a68b9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0N7v7UP6nSZBwbDPIp1niJ3lLmFJC9IxJaUUgJ1cRW4rU6oElBXxiVVMmtS9sPDlWAeAftqq2rwW8dQoC/jT0aJ1zMKP+h4kCnlQaHyAIsvR8uDLNWmlhUWNYGkTK4fgePKfQPoJrjlyiaxob0Yg8zk0aMQDT/DaAh7lz/cf+Jf0h2LtMMNuEAxj5NB6+64WC+TkzYNegiT8vhh8ETV+galoJECVR82SRHiuVNrpGWKNNopmEX4MGpx4vbePqekM2vX+zerSjNLkzuye7BINd32IfGgjk3cXlogAicFbAymm4qPedeTKf3Zmw89wnu264l3iScT//NUy5dXcVicN8hKDPJ7CJH1snWSl9AP3v+9d+4TGm5rv5sYY0aTawkRR7LNQXqnNgPUU1F2211lP3m1Qtoy+KeDoY8XrppfYK9EgQlEYdyTi6OgNkNpPaJ9iM/m9eC8T1ZTmOXc6cXpEC6znpQx89nDA3mlga5KF3/C0mbQWKEFal+GqrQG+U2Ro864vWeXSPNljy9C0ti1EujZl2cvP1IKVHU3OLAIUWRxvi3HuVJr6I2gZOaphQLnI X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WVp2aEFOd0dyT0dzVk1IazY3U21VYjB4T1NIVndVakFQNFZOS1dTK2lLR0Nw?= =?utf-8?B?TkNLdTFkNXRGTzNISmFHTVpRb3J1b2wvK2pkRy9xYkRSM2U2ZGhhbjZNWUkw?= =?utf-8?B?S3lUYzNCbVJTNFkxTDZ3cVJsL29sdk9jOTVZN3hNSkFFOFBnaWcvRUxZMGFX?= =?utf-8?B?UUF2Rk1XMklrMFFpeHFPRDFQOFpBUkFtdGNxbWJTNG9hakZGeWFoQVdDQnZN?= =?utf-8?B?NU1zRzRaV3loRUdncktQd3c1NnAySzVwaGR3a3hnYXJMVGhPMTJaZU9BWmRh?= =?utf-8?B?Y29vYzVGMXZBTGdMRzNWZGlPVVh6QXZDZW9CR3ZnYkd5K2xqb3IrclFKTHV6?= =?utf-8?B?RHRKN1NVSlNoK0V2TkloMzZqbU5vM1Z3aXJmMGZaSmF0am92eXY4bGRlL2JH?= =?utf-8?B?N0x6ZlllOW1FN25jZkdiZTcxQjJQaTBEZ3ZDcWp6MWRQa21kWTlhT1RGWGFI?= =?utf-8?B?QnVlaGpkQzUzcGRFeEpZZFlPTUhzMlVaeCtoV2M5MDFjcFhVejVEMkNTQVll?= =?utf-8?B?Z3FSZldoNEVWNVJFRTZ2emhJbTVRa0ZmSXk3UDVNcWFOanpVamxxRm5VV0NY?= =?utf-8?B?VXRCNXd2V0JPcDZ0cVJuWm5aMEYzT2dJZUpUYnUxV09NVWhnRVd2aWdxNm9T?= =?utf-8?B?UVFOVmgwWXFRbWIzMDJyU2tFaVNna0l3UkZuVFdNYndoWFJkZTNNakFzMWZo?= =?utf-8?B?VGcvbk5XRmkrMlE1OGllaFB0UmdHNmd1U0Q0Q2ZNR3JwUktqWGFvbWpLR2E5?= =?utf-8?B?eUV3ZkFSdEsrQW5DMXFqMUhxcHA2SjhhZzVYbVBnOUN2M3E5MnJRRWg1dWxz?= =?utf-8?B?a1E5QzBsQlZFWVJnblYxQkFJTXR5aUtqb3hHcjQxd01FUU4zSG1XOEZQRnZm?= =?utf-8?B?bDhjR1BUNzlVbFhhUzlvaGhSbUdKeFY3RkhOY2RVdUIxVGJRbFM1cVpKMWU3?= =?utf-8?B?ajA4b2FhOTI5WUVBZ1RUN2FIaEJidkxIM3JaVzJmWUtxZEhGMUMwVGRWV1F3?= =?utf-8?B?am0rQ1AvTzFvSTcxWkZmM0lscUJ6VTdhek1lMTlkc0Z6VlRvb2psU3dBUmhq?= =?utf-8?B?cUY5KytWRG5hRkE1clRvRURlYkk4VzBpYVhESWhtbjh3K3A3cDlaN3FuVWFl?= =?utf-8?B?RXh3REJmbVJuWFN3VmZkQTNKMU5XTjdLcXl0YmhKRjgzV09EVUJ2YzlHQXdH?= =?utf-8?B?QVg2aUp1MC8rWTVKcFdxK1l2Y3d6RnVaWFVaNVJUV3cvMzR6cGxvaFE2NU5I?= =?utf-8?B?OGcxRHhBc2hGOExrYVJhcjJwWFdUMnpTSytPdmt4b25hN29jVWUzVkxqRVli?= =?utf-8?B?NjE5Vm1rV1I0bnFqYzBZTkhOTWNBeXF3L2lZM2NvWTJCd3h2d0Voa2tRK0lM?= =?utf-8?B?L3J5b3RKQUl6R20xOUt5NjdMWDZVZzFUYi9nZmxIQ0tXWDRmNFBPM0FkYTFL?= =?utf-8?B?MVAwUm9EdjVGczYzbG9UKzVSR20wSE0xaS9FN2JSdHJ3b1dEejFWTnR6QkhP?= =?utf-8?B?OWttaVJ4dmxpWHdOZnNKVE5iTi9USUFOTjhhRHRCaGcxdXVrMXR0TmdCcHV3?= =?utf-8?B?YTRDUHY5cVpoUXR2b2hoOWdzNC96SlFXN1BwVFdSdUsvSXZnTHdualpTL0RJ?= =?utf-8?B?Vm1CUmRpWVdtZW0xaHFZL1RsTWkxdjZkMjF3MWhlTmh5dVNrbGNXNFVVV2lQ?= =?utf-8?B?VDJxRmFSUGwyNnB4YnA1VEp5UXQwMnkrZlRrVE9EdFRnWEZyQWpDNWtRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 850835ea-2279-4b09-f533-08dc391a68b9 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Feb 2024 11:34:37.0948 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P250MB0273 Subject: Re: [FFmpeg-devel] [PATCH 1/4] avcodec/aom_film_grain: add AOM film grain synthesis 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Niklas Haas: > +#if BIT_DEPTH > 8 > +# define entry int16_t > +# define bitdepth_max ((1 << bitdepth) - 1) > +# define HBD_DECL , const int bitdepth > +# define HBD_CALL , bitdepth > +# define SCALING_SIZE 4096 > +#else > +# define entry int8_t > +# define bitdepth 8 > +# define bitdepth_max UINT8_MAX Why are you using signed types, but unsigned max values? > +# define HBD_DECL > +# define HBD_CALL > +# define SCALING_SIZE 256 > +#endif > + > +// Symbols that do not depend on bit depth > +#ifndef PXSTRIDE > +# define PXSTRIDE(x) ((x) / sizeof(pixel)) There are several things that are wrong with this pattern: 1. sizeof is size_t and this has a conversion rank >= int/ptrdiff_t on all systems I am aware of, therefore the division will be performed with unsigned types, i.e. it is a logical right shift. And this will just not work with negative linesizes (but given that pointer arithmetic via a pixel* commonly involves a multiplication by sizeof(pixel), it often happens to work in practice, but e.g. UBSan warns about this). 2. It presumes that linesize is always a multiple of the sizeof of the underlying type. This need not be so. Imagine a system where there are no alignment requirements whatsoever (i.e. the required alignment of every type is 1 and vector instructions (if existing) also have no alignment requirement). Then it is legal for our callers to use frames where linesize can be anything. 3. Even if linesize is always a multiple of sizeof(pixel), the compiler does not know this and therefore will have to mask the low bits. So instead of src_row + (y) * PXSTRIDE(stride) + (x) + bx use (const pixel*)((const char*)src_row + (y) * stride) + (x) + bx (Please don't cast const away on intermediate pointers when changing this.) > +# define GRAIN_WIDTH 82 > +# define GRAIN_HEIGHT 73 > +# define SUB_GRAIN_WIDTH 44 > +# define SUB_GRAIN_HEIGHT 38 > +# define FG_BLOCK_SIZE 32 > +#endif > + ... > + // Copy over the non-modified planes > + if (!data->num_y_points) { > + av_image_copy_plane(out_frame->data[0], out_frame->linesize[0], > + in_frame->data[0], in_frame->linesize[0], > + out_frame->width * sizeof(pixel), out_frame->height); > + } > + for (int uv = 0; uv < 2; uv++) { > + if (!data->num_uv_points[uv]) { > + av_image_copy_plane(out_frame->data[1+uv], out_frame->linesize[1+uv], > + in_frame->data[1+uv], in_frame->linesize[1+uv], > + AV_CEIL_RSHIFT(out_frame->width, subx) * sizeof(pixel), > + AV_CEIL_RSHIFT(out_frame->height, suby)); > + } > + } > + This is generic and can be moved out of the template. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".