From patchwork Sun Sep 25 23:01:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38318 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1912454pzh; Sun, 25 Sep 2022 16:01:51 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6RHvJ1nNNOroUTVrKFx+OHVfyRzK7uY1KPs68PTHIO7iLnv9XU70Ff/CbZoIy6VXdMJ97N X-Received: by 2002:a17:906:5d0d:b0:783:10cb:2829 with SMTP id g13-20020a1709065d0d00b0078310cb2829mr6216711ejt.209.1664146911054; Sun, 25 Sep 2022 16:01: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 hq19-20020a1709073f1300b0077d6d63bd0dsi17345241ejc.184.2022.09.25.16.01.50; Sun, 25 Sep 2022 16:01: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=r47ktANF; 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 46F3468BB15; Mon, 26 Sep 2022 02:01:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2025.outbound.protection.outlook.com [40.92.90.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DA78968B7C7 for ; Mon, 26 Sep 2022 02:01:40 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m8X8FP1hcO4QgMDDpAgbJIDVI3gUyRScVhCPop86b58/lISUXYjTMgHynoY6b9kt4niwurycFNdjWekZhoYmfrromIQVDBEPTommdEMrMP5xrcp005JcXIBbo+n07eR5+jjG/DVc3UGjP6Zb0lmFWV/p8tpeQ+VpomPWHhpmUmdzTUqceblxg8gBe9wmYS/CsrrpnR/7ExhdKEomA8tXON1P49rldZqZUmWbaSGt+THrvjHuJ44xtbBbueeGPX1HSM9izxqDKFrU9JQHjfZyBLOZ9qPrSr3/eQGS2UffRUE/QkKZ2+9/CgNGP2GyIMLCiRVVX1cvbrKZNZTRbTG9VA== 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=imsym6n8j2t0NvtJkMO7HJ/Ur6YRzgjdIAoTwm3sS+A=; b=EJJcI3qATxmJ7U4YUYmstl6vILhB41sWnyMbfbcf8HKFb3AbtWKw5IX++j4q40Sisg0ql3B+YwceIM9+fK5aUepOh0FSjdQaGye7hsNmdSAylqgguG2I8I/qCWEEvNKb80pJTyUzHvEdPJtqv8HuonKE5dAWgKWDZ0ESs42Sa+f0LOsEFAn24ElzBKvM7MLdjodX/outpUMETd0sGkqCJFfiEZXsnTTVGZJMW0WcW6kPxIFlXIl4bbsL09uiwxgFuCzI2jIOMAIwK/o3RmkuIBrnkACMZrPkQV+7jlV7h0RNEwJw5k33YlhoTPT8cVCrs5S/ex5xX10oo/3Sj6sWYw== 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=imsym6n8j2t0NvtJkMO7HJ/Ur6YRzgjdIAoTwm3sS+A=; b=r47ktANFQQpTn7yxswocBLDYNgNbd5OAfjUIOb8fXV7E23G0TA974zqyOsumuCmlN1eP0M+sk/Q7ou+xqSLbw9+1+Cs8QYLTd33YbMOLo0N0V11nlyLmF0CSHk+P69EwRtbDuklsbzpXZ9K+T5N0SbmyRa5eHexKd81p0uQgdI3X1JwCMbi/4K81YF3afHg52rVeFZc7wbaohAmsghCxrr0LSbckmwPv+IAUeMdpmJY8tNlC5zHttDFyegj++EDcNFQH94YugXjwDB2MzrGU6Zy+Cv5VSAQYTymqccg2nXfMnnp+k/9wZZjrWbFlVm43PiQvQOwvYiXi3xettJxKlw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0327.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:32a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.25; Sun, 25 Sep 2022 23:01:39 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::85ac:1b92:90f:dc18]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::85ac:1b92:90f:dc18%4]) with mapi id 15.20.5654.016; Sun, 25 Sep 2022 23:01:38 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Sep 2022 01:01:38 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [8ooFdjQJ7olOVX/e7x05YIuF9UCIGaVlEfomX64jqAc=] X-ClientProxiedBy: FR3P281CA0040.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::8) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20220925230138.3044461-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0327:EE_ X-MS-Office365-Filtering-Correlation-Id: 626df3ea-9f7b-4b58-1099-08da9f49e733 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmovRtSN2t7hJKsCnEPTlSpOfVGAsNbT212LLKVQtRVdIPvhALghzF5JUk10t9naotNIVlop31qVg7z/UDyqLqkIA/sg0b4kONfttVpgPQdzRoaprNO9BIOlqFdYbpqzVqB5VTYf0CxqON4M2lzc531i7yJLdAXno7kE50AM7jF+oPizn1mpBxYLWRvIG+rgnovSk1CkRTIOh+pYQ69GQIFgqjQ+W7zJSGrFK1ve3VgPw7HRIGfs+cqc7VWCMXHK7GEFEj0mcU14Yc8BUvzLxUfqlCfBMk842cEJ5wz7cfebLnSjGIVaRFkyDXOPMMj4SxV64XD1hbnBfN4mMRoDHSx+ZLx0nn0K4VHCUBpvfyivReaTogYCC1hIRkAVrMgsulaqBhZ5zcW2LRKIl+4AVDHBfBAxyG/fDrFYom1UJ3PDdQ56+LrOX8ajTEJhA/AvIhGps/9Rv/9wd5pHabT1TbUvpwD7JuAYOzbnV9l02DV4s2zx9WbJxy2kM6kE3S/lg4CnJwo9LVsmxKR/I36gmlqp0EdgPF6VFT5KwvEOkt/njLQMVMaZNiA9Q5HLMdGUOkR8RnqOKZuvFqQ+54cqGD3lg5VW2WOu47X04dh3oTWcCdHAkmuI9SigOWaFinVc7Zi8mAkDB7dia+vAhVd0mPRezUTmgh4pIxcKIshjPQaxFJT3SNyvFM/UH1zxFsNm6FkePo1aFFRgCgX0/EG/L/y6EaxoyxjQycQJ8wjIIHLiUulitPfFt6C+/OIQ5MiwUs0= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pG2S8Gx6N47Me4oa6kQDOUMZ0tefgKbBDN2VnwKnzKaJeb2D/GFzn8PGVZOjAfHWxtAegCiGV8wNbiwumWS43icsp4wHNypDK1ARRhLOnx+6dlPON/mLMuPiv7OqZ5iUhee+PfGnZWogqNbjG/E4KczWHBQoFVDP+zFxgd37o0q581XSl8FZFKpX7S4RXiNJ1N+zxasjddys+ySQHw13jpmXAq9/zRWOacltlIfHLWSQFuGUUI++hk30aZ2vmm6dOiutsa4SUMtrsIeAt4JqcxjXGa0xQSNoLiqfH8h/UoFnvug3GQARv3rhq1IlPMn4x1s5SCeZ8sKTMnvXQyP4sQugK8GH/C4f6J4FG+U5htK8WxcVvXYb1DvMUfeBeCrpx1oxkTz8pFbQKy3tvWff0mK9jku6rLBupsDiVp8Q84Vim2S3OnuZSIhUDzArqkhdMivWhy6yYy6G9vnVpd+ADpWdJ5d7Lzj+NVThCp+D9dcTaQZ1pEAqJPQOh7wpUHAB6bAU0olJdgUPQjRLSpAS+nV60l6ZGGyLVcCyQ07CkdlA9lWqWz3/X5Ce8n9tMtddHUTD77SYCiXEfToy5p23s+Rsun7ZeARFmpsee/IDiJTsco00Az6bJciW3t3bZohF5Joa0nXiUjTus3AaDlLLDg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: OJZIeulFhlL5OiciIEuOqDDN29dVqV4tZQz87G38bzCP9E41zzHkgWctPqmgMOMCd6/uuR/mpbwq8+6fKhZ7lrT/mRHxh+3AIJTNFhRX5u0YtwPCuxFDq5DHLdXf+xOjKcMWe0rv7ElWSH7ejpjgTIk8GrEJB6iroGUitxuQJotQmvE6yi2nKfQETk3wmTen+wR/YxCsU7RF13BjmoOYq0Fyazmh6bF2jw0wbq9kniv+bxezrtnFPyvQWWtqZMVImuLMgnOfLnlG45t8p/VkrzMPdlgiY8oSsHHTHC3vhzk/Yc/UiIXJqTiQ3r+hN9rPx55n1kC4Y1VU+qMAg1l0JbAy7G0qKzfizAAHiSC402g378fBcETAKpznKDm3gDIJ0QSCRwj3xYxjb7vkeLsos6tSiQp5YgmxZnNe/piAiyy2RWpDoL03jn//AwadJJlJxa0nS7024Z9CU4JEnR+zBi67lQOr/WXDk7AFCVkL/5TdSgegy/1j2L1FYOpuN6ivjsIyXeowZlB5IZ5iLF8juUDfhNdRtFnUrlnUwqKIDkp+Pz5gfJ5l4zolzvTVMc3Z3JiX0SwEhnqhWLKosRdmoEzJdsBa81VIKSymcdTKUj4wurtg6pqWH/TbnsGW3Hpk9BBbjfFGS9sapGwH6q/AFl2JBWtFnsCPb6FxwIrMeXJHLzZtbqUkpeATkJSpZj0pncy+oMRwnNcrhuC/zqhFtqpHIkRqSwceNvoXyI98t66RqgFZyR+yn8X6dfKXN8jxc/+N+RonJQr5wT98LnmzF714i+1qFKA6VhlWJwgIz1xfpz4WcMYOA3y2g97MRkXYP/eJ9my7zIr+CZHYJHCg/v2rfEfHOJ4mMI7LtGyKqDR5I4Q0OPciIf1tKwOo49kwmM9EyrRRf+ANQT3llm50R+TsaesyYunkztVA2r03McRRcTnEXwRjx3QGnFSAuwaKB494fHCUGJQXEHI6o/FmBspbT1200ZXOgMVgWgyghALbtnEFVW0PtMf9CBTKwFP0orPDwvI7Ra2/Lo4s08ZXJH4drYKrUbrsnbHCGKkVYnPQ+9/3G9N2zqVt2sfvLpc1axYezvht1dXIzAwLwOCoxsnSl9qvSlAGoOKpvDMwmA4bK43UeFQ8lKTrko0Pfr+owrPIMrl+KlSpQhkqVHrHHe8h+LCdBjLcbjdWJV1XvtEDZFGRxQVkkxoG8ikaBJnlY8/LL2AWt9S26dVi3OZ7opflSPt8hoAmIzfcOCDjYTgjYmPBTShRA58Xdcv/Bf2oKJV2mywgDIpxqYMC9DMKyZogXO2WcH6iQcBh6KseZfJK9RMcNHhKTkBnUVzGUPNX X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 626df3ea-9f7b-4b58-1099-08da9f49e733 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2022 23:01:38.8533 (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: AM8P250MB0327 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/dirac_dwt: Avoid conversions between function pointers and void* 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: tQ0htzQynD8g Pointers to void can be converted to any pointer to incomplete or object type and back; but they are nevertheless not completely generic pointers: There is no provision in the C standard that guarantees their convertibility with function pointers. C90 lacks a generic function pointer, C99 made every function pointer a generic function pointer and still disallows the convertibility with void *. Both GCC as well as Clang warn about this when using -pedantic. Therefore use unions to avoid these conversions. Signed-off-by: Andreas Rheinhardt --- libavcodec/dirac_dwt.h | 13 +++++---- libavcodec/dirac_dwt_template.c | 52 ++++++++++++++++----------------- libavcodec/x86/dirac_dwt_init.c | 16 +++++----- 3 files changed, 42 insertions(+), 39 deletions(-) diff --git a/libavcodec/dirac_dwt.h b/libavcodec/dirac_dwt.h index 994dc21d70..84f71d9120 100644 --- a/libavcodec/dirac_dwt.h +++ b/libavcodec/dirac_dwt.h @@ -61,11 +61,14 @@ typedef struct DWTContext { int support; void (*spatial_compose)(struct DWTContext *cs, int level, int width, int height, int stride); - void (*vertical_compose_l0)(void); - void (*vertical_compose_h0)(void); - void (*vertical_compose_l1)(void); - void (*vertical_compose_h1)(void); - void (*vertical_compose)(void); ///< one set of lowpass and highpass combined + union { + vertical_compose_3tap tap3; + vertical_compose_5tap tap5; + vertical_compose_9tap tap9; + } vertical_compose_l0, vertical_compose_h0; + vertical_compose_3tap vertical_compose_l1; + vertical_compose_3tap vertical_compose_h1; + vertical_compose_2tap vertical_compose; ///< one set of lowpass and highpass combined void (*horizontal_compose)(uint8_t *b, uint8_t *tmp, int width); DWTCompose cs[MAX_DECOMPOSITIONS]; diff --git a/libavcodec/dirac_dwt_template.c b/libavcodec/dirac_dwt_template.c index f1d7f8b22f..0d39754ed8 100644 --- a/libavcodec/dirac_dwt_template.c +++ b/libavcodec/dirac_dwt_template.c @@ -338,8 +338,8 @@ static void RENAME(vertical_compose_daub97iL1)(uint8_t *_b0, uint8_t *_b1, uint8 static void RENAME(spatial_compose_dd97i_dy)(DWTContext *d, int level, int width, int height, int stride) { - vertical_compose_3tap vertical_compose_l0 = (void*)d->vertical_compose_l0; - vertical_compose_5tap vertical_compose_h0 = (void*)d->vertical_compose_h0; + vertical_compose_3tap vertical_compose_l0 = d->vertical_compose_l0.tap3; + vertical_compose_5tap vertical_compose_h0 = d->vertical_compose_h0.tap5; DWTCompose *cs = d->cs + level; int i, y = cs->y; @@ -362,8 +362,8 @@ static void RENAME(spatial_compose_dd97i_dy)(DWTContext *d, int level, int width static void RENAME(spatial_compose_dirac53i_dy)(DWTContext *d, int level, int width, int height, int stride) { - vertical_compose_3tap vertical_compose_l0 = (void*)d->vertical_compose_l0; - vertical_compose_3tap vertical_compose_h0 = (void*)d->vertical_compose_h0; + vertical_compose_3tap vertical_compose_l0 = d->vertical_compose_l0.tap3; + vertical_compose_3tap vertical_compose_h0 = d->vertical_compose_h0.tap3; DWTCompose *cs = d->cs + level; int y= cs->y; @@ -384,8 +384,8 @@ static void RENAME(spatial_compose_dirac53i_dy)(DWTContext *d, int level, int wi static void RENAME(spatial_compose_dd137i_dy)(DWTContext *d, int level, int width, int height, int stride) { - vertical_compose_5tap vertical_compose_l0 = (void*)d->vertical_compose_l0; - vertical_compose_5tap vertical_compose_h0 = (void*)d->vertical_compose_h0; + vertical_compose_5tap vertical_compose_l0 = d->vertical_compose_l0.tap5; + vertical_compose_5tap vertical_compose_h0 = d->vertical_compose_h0.tap5; DWTCompose *cs = d->cs + level; int i, y = cs->y; @@ -409,7 +409,7 @@ static void RENAME(spatial_compose_dd137i_dy)(DWTContext *d, int level, int widt // haar makes the assumption that height is even (always true for dirac) static void RENAME(spatial_compose_haari_dy)(DWTContext *d, int level, int width, int height, int stride) { - vertical_compose_2tap vertical_compose = (void*)d->vertical_compose; + vertical_compose_2tap vertical_compose = d->vertical_compose; int y = d->cs[level].y; uint8_t *b0 = d->buffer + (y-1)*stride; uint8_t *b1 = d->buffer + (y )*stride; @@ -425,8 +425,8 @@ static void RENAME(spatial_compose_haari_dy)(DWTContext *d, int level, int width // Fortunately, this filter isn't used in practice. static void RENAME(spatial_compose_fidelity)(DWTContext *d, int level, int width, int height, int stride) { - vertical_compose_9tap vertical_compose_l0 = (void*)d->vertical_compose_l0; - vertical_compose_9tap vertical_compose_h0 = (void*)d->vertical_compose_h0; + vertical_compose_9tap vertical_compose_l0 = d->vertical_compose_l0.tap9; + vertical_compose_9tap vertical_compose_h0 = d->vertical_compose_h0.tap9; int i, y; uint8_t *b[8]; @@ -450,10 +450,10 @@ static void RENAME(spatial_compose_fidelity)(DWTContext *d, int level, int width static void RENAME(spatial_compose_daub97i_dy)(DWTContext *d, int level, int width, int height, int stride) { - vertical_compose_3tap vertical_compose_l0 = (void*)d->vertical_compose_l0; - vertical_compose_3tap vertical_compose_h0 = (void*)d->vertical_compose_h0; - vertical_compose_3tap vertical_compose_l1 = (void*)d->vertical_compose_l1; - vertical_compose_3tap vertical_compose_h1 = (void*)d->vertical_compose_h1; + vertical_compose_3tap vertical_compose_l0 = d->vertical_compose_l0.tap3; + vertical_compose_3tap vertical_compose_h0 = d->vertical_compose_h0.tap3; + vertical_compose_3tap vertical_compose_l1 = d->vertical_compose_l1; + vertical_compose_3tap vertical_compose_h1 = d->vertical_compose_h1; DWTCompose *cs = d->cs + level; int i, y = cs->y; @@ -552,29 +552,29 @@ static int RENAME(spatial_idwt_init)(DWTContext *d, enum dwt_type type) switch (type) { case DWT_DIRAC_DD9_7: d->spatial_compose = RENAME(spatial_compose_dd97i_dy); - d->vertical_compose_l0 = (void*)RENAME(vertical_compose53iL0); - d->vertical_compose_h0 = (void*)RENAME(vertical_compose_dd97iH0); + d->vertical_compose_l0.tap3 = RENAME(vertical_compose53iL0); + d->vertical_compose_h0.tap5 = RENAME(vertical_compose_dd97iH0); d->horizontal_compose = RENAME(horizontal_compose_dd97i); d->support = 7; break; case DWT_DIRAC_LEGALL5_3: d->spatial_compose = RENAME(spatial_compose_dirac53i_dy); - d->vertical_compose_l0 = (void*)RENAME(vertical_compose53iL0); - d->vertical_compose_h0 = (void*)RENAME(vertical_compose_dirac53iH0); + d->vertical_compose_l0.tap3 = RENAME(vertical_compose53iL0); + d->vertical_compose_h0.tap3 = RENAME(vertical_compose_dirac53iH0); d->horizontal_compose = RENAME(horizontal_compose_dirac53i); d->support = 3; break; case DWT_DIRAC_DD13_7: d->spatial_compose = RENAME(spatial_compose_dd137i_dy); - d->vertical_compose_l0 = (void*)RENAME(vertical_compose_dd137iL0); - d->vertical_compose_h0 = (void*)RENAME(vertical_compose_dd97iH0); + d->vertical_compose_l0.tap5 = RENAME(vertical_compose_dd137iL0); + d->vertical_compose_h0.tap5 = RENAME(vertical_compose_dd97iH0); d->horizontal_compose = RENAME(horizontal_compose_dd137i); d->support = 7; break; case DWT_DIRAC_HAAR0: case DWT_DIRAC_HAAR1: d->spatial_compose = RENAME(spatial_compose_haari_dy); - d->vertical_compose = (void*)RENAME(vertical_compose_haar); + d->vertical_compose = RENAME(vertical_compose_haar); if (type == DWT_DIRAC_HAAR0) d->horizontal_compose = RENAME(horizontal_compose_haar0i); else @@ -583,17 +583,17 @@ static int RENAME(spatial_idwt_init)(DWTContext *d, enum dwt_type type) break; case DWT_DIRAC_FIDELITY: d->spatial_compose = RENAME(spatial_compose_fidelity); - d->vertical_compose_l0 = (void*)RENAME(vertical_compose_fidelityiL0); - d->vertical_compose_h0 = (void*)RENAME(vertical_compose_fidelityiH0); + d->vertical_compose_l0.tap9 = RENAME(vertical_compose_fidelityiL0); + d->vertical_compose_h0.tap9 = RENAME(vertical_compose_fidelityiH0); d->horizontal_compose = RENAME(horizontal_compose_fidelityi); d->support = 0; // not really used break; case DWT_DIRAC_DAUB9_7: d->spatial_compose = RENAME(spatial_compose_daub97i_dy); - d->vertical_compose_l0 = (void*)RENAME(vertical_compose_daub97iL0); - d->vertical_compose_h0 = (void*)RENAME(vertical_compose_daub97iH0); - d->vertical_compose_l1 = (void*)RENAME(vertical_compose_daub97iL1); - d->vertical_compose_h1 = (void*)RENAME(vertical_compose_daub97iH1); + d->vertical_compose_l0.tap3 = RENAME(vertical_compose_daub97iL0); + d->vertical_compose_h0.tap3 = RENAME(vertical_compose_daub97iH0); + d->vertical_compose_l1 = RENAME(vertical_compose_daub97iL1); + d->vertical_compose_h1 = RENAME(vertical_compose_daub97iH1); d->horizontal_compose = RENAME(horizontal_compose_daub97i); d->support = 5; break; diff --git a/libavcodec/x86/dirac_dwt_init.c b/libavcodec/x86/dirac_dwt_init.c index 9200618283..13b42b60cb 100644 --- a/libavcodec/x86/dirac_dwt_init.c +++ b/libavcodec/x86/dirac_dwt_init.c @@ -165,23 +165,23 @@ void ff_spatial_idwt_init_x86(DWTContext *d, enum dwt_type type) switch (type) { case DWT_DIRAC_DD9_7: - d->vertical_compose_l0 = (void*)vertical_compose53iL0_sse2; - d->vertical_compose_h0 = (void*)vertical_compose_dd97iH0_sse2; + d->vertical_compose_l0.tap3 = vertical_compose53iL0_sse2; + d->vertical_compose_h0.tap5 = vertical_compose_dd97iH0_sse2; break; case DWT_DIRAC_LEGALL5_3: - d->vertical_compose_l0 = (void*)vertical_compose53iL0_sse2; - d->vertical_compose_h0 = (void*)vertical_compose_dirac53iH0_sse2; + d->vertical_compose_l0.tap3 = vertical_compose53iL0_sse2; + d->vertical_compose_h0.tap3 = vertical_compose_dirac53iH0_sse2; break; case DWT_DIRAC_DD13_7: - d->vertical_compose_l0 = (void*)vertical_compose_dd137iL0_sse2; - d->vertical_compose_h0 = (void*)vertical_compose_dd97iH0_sse2; + d->vertical_compose_l0.tap5 = vertical_compose_dd137iL0_sse2; + d->vertical_compose_h0.tap5 = vertical_compose_dd97iH0_sse2; break; case DWT_DIRAC_HAAR0: - d->vertical_compose = (void*)vertical_compose_haar_sse2; + d->vertical_compose = vertical_compose_haar_sse2; d->horizontal_compose = horizontal_compose_haar0i_sse2; break; case DWT_DIRAC_HAAR1: - d->vertical_compose = (void*)vertical_compose_haar_sse2; + d->vertical_compose = vertical_compose_haar_sse2; d->horizontal_compose = horizontal_compose_haar1i_sse2; break; }