From patchwork Thu Feb 18 14:41:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 25768 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 57EA944A7F7 for ; Thu, 18 Feb 2021 16:41:34 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3350F689A52; Thu, 18 Feb 2021 16:41:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C229C680972 for ; Thu, 18 Feb 2021 16:41:27 +0200 (EET) Received: by mail-qk1-f181.google.com with SMTP id x14so2273014qkm.2 for ; Thu, 18 Feb 2021 06:41:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=j/ohCaFzC4hQ6pyPEzraOAgfmCRodFCfelHoxedOuBw=; b=TywU+GRr3zEHuvCMAmjOJ/ICUcQGxNBrxbtejxjMVkp1OtrZ8ZSlygriFWNX/pGjAN gPInD/lRKcqcyEP9pQNtwGQ/P8UJBK3wO9kyA1/CkZzhKNsrJMcL598xkwoc5T9Iyevm Dzi56NGp5ad8iyoFXLV6HbSsOjnSKdA8Gg4rGWyzJnwtKSbP3vcSEeq5uTYjr3yBjhCg jAyXIwwVMqljf1DdGaKWl79gK898fLIzOujShp0vpgDx/BU5JxKnnYun1b8dIgfb81he ly0xWOcyhrQO+lyjAEK6U0eD8YTrsUizk8eBRSered2Pevnmo9vEPwWIH3wK932T8Z1B Vcmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=j/ohCaFzC4hQ6pyPEzraOAgfmCRodFCfelHoxedOuBw=; b=jvEc/GslzlyAKLldNSizKJB/JV18fEGREceyxhKLVceL0H0LG37KFVhKBNdn8zXq/T i2Du5aYvy6RMSy8DZFO8JIDS3oTaV+oQohBGHRTmny52u6ab8/+xSqXovz57KFKzAHq3 NQkbj/4LK/qBx1/0Pc5P5F3hIrdPZIJGAPii3MJtnkvDqEZ8UONfMaKqTkZDelPv/Qe0 yqDg9LIPmQvLnBl1qKwYVU932jk7cqM56Lx9Fz8bk6oYoQCmDk9T+hl5YlaIR1UZs4em V00kmhn1sm9Mn42nasCXP8rHNgyU3rqMnM6zv74ClUuhD4JTAilyKWXZXkr+kYd4Kvml TDAw== X-Gm-Message-State: AOAM531juV3qaLcJcVhFV+pMt456wCtR0DZicZMQoer/IrRi9EEmkBO+ k+RqWabmtnHBaM0Ls9WOsjCAmVzkN0A= X-Google-Smtp-Source: ABdhPJy/G1xhophR41XQwRLzbSllvaW+ugXX8FjF05LUraEvWr6a54IxZeUOAgPebuBUlvs/rcFhtg== X-Received: by 2002:a37:9f06:: with SMTP id i6mr4661330qke.390.1613659286032; Thu, 18 Feb 2021 06:41:26 -0800 (PST) Received: from localhost.localdomain ([181.23.76.251]) by smtp.gmail.com with ESMTPSA id o45sm3494969qto.91.2021.02.18.06.41.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Feb 2021 06:41:25 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 11:41:07 -0300 Message-Id: <20210218144107.13356-1-jamrial@gmail.com> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] swscale/x86/swscale: fix mix of inline and external function definitions 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This includes removing pointless static function forward declarations. Signed-off-by: James Almer --- libswscale/x86/swscale.c | 40 ++++++++++++++++++------------- libswscale/x86/swscale_template.c | 1 - 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/libswscale/x86/swscale.c b/libswscale/x86/swscale.c index 316a824e87..12e7799d0f 100644 --- a/libswscale/x86/swscale.c +++ b/libswscale/x86/swscale.c @@ -63,16 +63,6 @@ DECLARE_ASM_ALIGNED(8, const uint64_t, ff_bgr2UVOffset) = 0x8080808080808080ULL; DECLARE_ASM_ALIGNED(8, const uint64_t, ff_w1111) = 0x0001000100010001ULL; -#define YUV2YUVX_FUNC_DECL(opt) \ -static void yuv2yuvX_ ##opt(const int16_t *filter, int filterSize, const int16_t **src, \ - uint8_t *dest, int dstW, \ - const uint8_t *dither, int offset); \ - -YUV2YUVX_FUNC_DECL(mmx) -YUV2YUVX_FUNC_DECL(mmxext) -YUV2YUVX_FUNC_DECL(sse3) -YUV2YUVX_FUNC_DECL(avx2) - //MMX versions #if HAVE_MMX_INLINE #undef RENAME @@ -206,8 +196,8 @@ void ff_updateMMXDitherTables(SwsContext *c, int dstY) } } } +#endif /* HAVE_INLINE_ASM */ -#if HAVE_MMXEXT #define YUV2YUVX_FUNC_MMX(opt, step) \ void ff_yuv2yuvX_ ##opt(const int16_t *filter, int filterSize, int srcOffset, \ uint8_t *dest, int dstW, \ @@ -241,17 +231,19 @@ static void yuv2yuvX_ ##opt(const int16_t *filter, int filterSize, \ return; \ } +#if HAVE_MMX_EXTERNAL YUV2YUVX_FUNC_MMX(mmx, 16) +#endif +#if HAVE_MMXEXT_EXTERNAL YUV2YUVX_FUNC_MMX(mmxext, 16) +#endif +#if HAVE_SSE3_EXTERNAL YUV2YUVX_FUNC(sse3, 32) +#endif #if HAVE_AVX2_EXTERNAL YUV2YUVX_FUNC(avx2, 64) #endif -#endif - -#endif /* HAVE_INLINE_ASM */ - #define SCALE_FUNC(filter_n, from_bpc, to_bpc, opt) \ void ff_hscale ## from_bpc ## to ## to_bpc ## _ ## filter_n ## _ ## opt( \ SwsContext *c, int16_t *data, \ @@ -379,8 +371,22 @@ av_cold void ff_sws_init_swscale_x86(SwsContext *c) if (INLINE_MMXEXT(cpu_flags)) sws_init_swscale_mmxext(c); #endif -#if HAVE_SSSE3_EXTERNAL - if (EXTERNAL_SSSE3(cpu_flags)) { +#if HAVE_MMX_EXTERNAL + if (EXTERNAL_MMX(cpu_flags)) { + if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)){ + c->yuv2planeX = yuv2yuvX_mmx; + } + } +#endif +#if HAVE_MMXEXT_EXTERNAL + if (EXTERNAL_MMXEXT(cpu_flags)) { + if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)){ + c->yuv2planeX = yuv2yuvX_mmxext; + } + } +#endif +#if HAVE_SSE3_EXTERNAL + if (EXTERNAL_SSE3(cpu_flags)) { if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)){ c->yuv2planeX = yuv2yuvX_sse3; } diff --git a/libswscale/x86/swscale_template.c b/libswscale/x86/swscale_template.c index cb33af97e4..97d8cae613 100644 --- a/libswscale/x86/swscale_template.c +++ b/libswscale/x86/swscale_template.c @@ -1435,7 +1435,6 @@ static av_cold void RENAME(sws_init_swscale)(SwsContext *c) } } else { c->use_mmx_vfilter= 1; - c->yuv2planeX = RENAME(yuv2yuvX ); if (!(c->flags & SWS_FULL_CHR_H_INT)) { switch (c->dstFormat) { case AV_PIX_FMT_RGB32: c->yuv2packedX = RENAME(yuv2rgb32_X); break;