From patchwork Thu Apr 4 01:58:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47782 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp46306pzd; Wed, 3 Apr 2024 18:58:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXstOhO3Tn25h+hsQwCpPinmuRTrKmby//3rwSl9FI9G7uTuihwObWbE/byTRDuSMSFmuyMdZqILKhprT4BVRvgk7KDB1WrZx7Byw== X-Google-Smtp-Source: AGHT+IGiBz0BBzoG6MfXzcVoauPBbWAys0Pfm5BKbC+3gbWbd7EHdjFdpEPj7Usg/mrK8PH88FSR X-Received: by 2002:a17:906:349b:b0:a4e:39f5:9bc7 with SMTP id g27-20020a170906349b00b00a4e39f59bc7mr588516ejb.1.1712195931212; Wed, 03 Apr 2024 18:58:51 -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 a25-20020a170906275900b00a4e436d9b0dsi5086600ejd.885.2024.04.03.18.58.49; Wed, 03 Apr 2024 18:58:51 -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=@outlook.com header.s=selector1 header.b=t5EbvJ17; arc=fail (body hash mismatch); 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 535FC68CB2B; Thu, 4 Apr 2024 04:58:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2013.outbound.protection.outlook.com [40.92.74.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 936A668CB2B for ; Thu, 4 Apr 2024 04:58:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iM0ryXkftn9N36DYjII5iTEgHc7lt17gdjfxEDXSIzD9ol6SWtslaLJQmadXFWV3yW+joj7tOS6c6CVS4475Fx/KjzFfDeOMzmgAb89uQKFFalHnr9ZH4MgmUObCkgU6O6vUWF78hOHz7WVM/f8+L52nEZtjXRj7y49K5QFRnLrf5dkZ+KbcHyUwChlesQE4OOiJVZD5r/WGCgUEOAPyTEsJiBaAu6F2kgxj1Gh6v3RkWY1YoDPkvTjaSillOZDx2UBB5/fhbpoXwdG9vXj4OHXsb1m684nYR+nm4tOxvp9oDm+1hceV4HWc5zMXYnDOvkYP+gPZ9I08hla+7RcTvA== 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=9Xi2OLZqw5pO7WraAkdmGtIGsfWlnmJxcSu/R0i8SE4=; b=KI4DQx3aiSELGzMM/Q7gqGqy1LTbyvcdVPz9dKttfrorU1X9GInz+HyaVG8KBjjOzWDsrUtpk3Z/BWVQf40I7nhYfideJHOoaewHpyP1gDybY9crUjMnTtAlfjnop3++WzNBcc1KpUqwQBhDqRmEc9s+gSGPXR/wNyA1uW68FUMRHnlEuJsk3H4KxPlrexpxePmgTK1FTHu9aTwqbO7BEVJpW3b2OtVMf+oGEuiFdwSk83x1gdcqaEth6T6/pL+hokecAaoy4BsFM0IDbCoMM2QKO8KV9IqJGxIzwNHr2PubqXNrlTen2oYwVdqH5l/8zz14M0O9gvJTm2bZMmygrA== 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=9Xi2OLZqw5pO7WraAkdmGtIGsfWlnmJxcSu/R0i8SE4=; b=t5EbvJ17p9C9XRd2HgdFSOGgKXPnHA0vMNSoLhaEVIPYJ1Sr5KD/a7p4fNd8fsj/5W4UGpXDTQeuiQheNbpcXiZVUp1uDq9u1bHTLDaLiBkrLSBuB2jRflTmZOdXv/QM18bIUUSvfRlj4g3P+wK+QJ1D5noAcUa7tnvGUQGkb2GaSR2YTxIGIVvvA7XavpDgjmZ1LxZgXpUp3IcdmGWwvEDTxMaiE9xdsyrG5qhlmRHhmaPxfVSz2fLGwPxXK5RoZSr1AMfd3qJq4imUfMubItjpI8vhCRApEm/lC6k1LSjx594VIZv5D3IHrXzm6/Q80vZ14xJenWEOIRWLPWNnng== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PAXP250MB0600.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:275::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Thu, 4 Apr 2024 01:58:36 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Thu, 4 Apr 2024 01:58:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Apr 2024 03:58:28 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [F4Ox9RrUkh+9X9SoNexXJQIeb1UziwYlorkoArbdG88=] X-ClientProxiedBy: ZR0P278CA0150.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::14) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240404015828.3050173-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PAXP250MB0600:EE_ X-MS-Office365-Filtering-Correlation-Id: a1513fb9-0c05-477e-f5bb-08dc544abd36 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Iy1k2oUxqfop9HbXiyQDgqgGU4GFJpfW85+K7KIy2Oz3QwFBmackroJFAxblKbdUEpfqOLkXhAgtM/d2CZJVPorViFHNt0CXYJfO42PVfyPGOPCtpz4PZwZR8+oPRZc2Pm5ptCVPSMp0Trny3KcBHAdE+ACfWfqhX+KTzUHiZtmJ8GlxX1LwvOrmda2+MXRJ8zoJmU6oKHqRDQWE1Dw25fnsqdOM7N/RRv+JGHCkY6z47fyRPdcu9YgRbYNsqo0xYd1ZHKmqHBWkccH6DrgHlpJlUtjjB1i8v1kW7inXySCgW1c2T6s1BJHlz4YhIb3NftAWu/tnbRqO7E8I3xhEry5w0JlqCRg2WWH6o2AVsUkRyOWb7UsWI7gVudYaxKkvQGa1EN9FJimTdDwnGFK7+U0cC+eS0e3+43nSXzarTs0RRRK2Q8129w7+wqNEJ0vfr+12JarjUP7WkiChKzX6yZarKQHGubMcaUpUz9tNYaJK+qX8daEmkLjZ//ww/PVJ1KcNJkNbviioLizFsBeQh4CFftTErUCQwJhT1GhiTVKec+cK4PqMMl2dt1gN5IpUr5Squiej3x/F0Qiihv0zZhDxPgeKWjBKwWgn0cXY5+mUors9vU95T2FgcU+Jy2EA X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7vaDWb/D4DKYF1RStBXqBELjNZrBQhpN0no4inNKp71sPYx3IZmXAOxfCuCLnIWUe62P1OVzkhGrutTxZ7LrzPAVA4to8ExT9fGvDrgnUUj6cppHuMiDnsMYmYhGoS+Cia6tdBZ79klx/txY+hlrQUTr87NhqzRNCUnRZ7mk1zzKMgriEApC2EaE0C0/N63aXepCpBsfCtVNrflWY2/Y4lQ6ZepA0bfeZYNOlnTHKWnOaxAQyHE1U+oVPwVvl+gmHVJuUpn1E7BmQASACdtTzd+sRkY/kmOwKcSWI8mxstvPn94L5pi8CmfnlgXOvHeXQfUwyjV2RPUUETV1UjuVdvLKol4Y1XjlXsU3ybCfNxKBBsoeYHhhsQTtxZrf5tzEBVOhyMweWcvyGOVP4GidOh1SDmSdJWAzRKPgBpkfdrzgKyGSj3yxn9ZS3enuMxAIdmd7gncDE9gNVScH/+5UJx77kS81gxQk6H+x5deTFFTTgnquwS3+proVqzmDy1OI6pp7dgc/Yqu/TVZAUcLy3gFV+grLLoNMSALZmS15gMEZGiGJdKffxouASC/gEASX/gFqeO9eLkHbpmwKiINx+5Ky4haNvqfAgVKlr811REJqNW9CHZFSHUN+DG//VKc2osqGMY1IE3382jQtALGWz4CZ3vS9xBDLtsgJPGi8j94YWXm/Ku60JjM1IfHkeaE0KLrS0O5Jwp4J4NpVp3Hd9EMZUQ+ogorU+WnPnVFjoBqQtNyRpZYQdqQVshqeoP0u9FSNqLU9GDMNm+8DLS5VNjmQLnDHGISskvhLPFa2A/iXBrUr+r3rUi1wVXvmoL77af9qHWXUlm73s8h90lyrroXdMr9mUpDro4Lwll2fPMUI8lEXsNH+ajmdige7UysADoaLxg8t/uOOkgqygXot8TvnRtJzhImWbxLK4RUnH9WTKrXlgwqIv97W3E1iy7zW0N2pkcRWihjtLJkFMw7GwcgAdHDaEMXvy0/Cq6gppZ40h+zX3+p70aTvGY5SlY8wXPrZqbi4QvA5Klrt7t2xAX1+KZG1WoVtFH4D7r8xK4oxxdEqIe42nabTpzMTdu3UQVxozRNpDdKSZgNSyQaxSuVZa5HjcxW8Zw2G7+xlVAVsopGsA1F+ICLJMxNhpcV2HBsxjACTuL5Ttt244zuqVCwN5uBn7XIaZ7uzDov0mxkt3I4AyhZ9Khp8L+X5c+0l/VmASs1F90vVU+stYcIlSBAiA7Q4CZnJtlEY7+Og3CuHRgEShhC8nECUXgwbzRLouevlV1MEi8Z8OK6FwEf5Xw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1513fb9-0c05-477e-f5bb-08dc544abd36 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2024 01:58:36.0560 (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: PAXP250MB0600 Subject: [FFmpeg-devel] [PATCH] avcodec/lossless_videoencdsp: Don't presume alignment in diff_bytes 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: lQEM/xnVcwdt The alignment of all the parameters in diff_bytes can be anything the despite the documentation claiming otherwise. 8ecd38312210d48ec9e50d78fc223d60e71a30ed was based around said documentation and is therefore insufficient to fix e.g. the misaligned loads that happen in the huffyuvbgra and huffyuvbgr24 vsynth FATE-tests. Signed-off-by: Andreas Rheinhardt --- libavcodec/lossless_videoencdsp.c | 10 ++++------ libavcodec/lossless_videoencdsp.h | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/libavcodec/lossless_videoencdsp.c b/libavcodec/lossless_videoencdsp.c index 8d03a5b5c6..0a3a4ec509 100644 --- a/libavcodec/lossless_videoencdsp.c +++ b/libavcodec/lossless_videoencdsp.c @@ -25,13 +25,11 @@ #if HAVE_FAST_64BIT typedef uint64_t uint_native; #define READ AV_RN64 -#define READA AV_RN64A -#define WRITEA AV_WN64A +#define WRITE AV_WN64 #else typedef uint32_t uint_native; #define READ AV_RN32 -#define READA AV_RN32A -#define WRITEA AV_WN32A +#define WRITE AV_WN32 #endif // 0x7f7f7f7f or 0x7f7f7f7f7f7f7f7f or whatever, depending on the cpu's native arithmetic size #define pb_7f (~(uint_native)0 / 255 * 0x7f) @@ -56,9 +54,9 @@ static void diff_bytes_c(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, } else #endif for (i = 0; i <= w - (int) sizeof(uint_native); i += sizeof(uint_native)) { - uint_native a = READA(src1 + i); + uint_native a = READ(src1 + i); uint_native b = READ(src2 + i); - WRITEA(dst + i, ((a | pb_80) - (b & pb_7f)) ^ ((a ^ b ^ pb_80) & pb_80)); + WRITE(dst + i, ((a | pb_80) - (b & pb_7f)) ^ ((a ^ b ^ pb_80) & pb_80)); } for (; i < w; i++) dst[i + 0] = src1[i + 0] - src2[i + 0]; diff --git a/libavcodec/lossless_videoencdsp.h b/libavcodec/lossless_videoencdsp.h index 07fff584af..7fd0ad32c7 100644 --- a/libavcodec/lossless_videoencdsp.h +++ b/libavcodec/lossless_videoencdsp.h @@ -23,8 +23,8 @@ #include typedef struct LLVidEncDSPContext { - void (*diff_bytes)(uint8_t *dst /* align 16 */, - const uint8_t *src1 /* align 16 */, + void (*diff_bytes)(uint8_t *dst /* align 1 */, + const uint8_t *src1 /* align 1 */, const uint8_t *src2 /* align 1 */, intptr_t w); /**