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 E65CF4BA15 for ; Fri, 9 Aug 2024 11:26:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 20FFB68DA3F; Fri, 9 Aug 2024 14:26:34 +0300 (EEST) Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B70B268D9B7 for ; Fri, 9 Aug 2024 14:26:26 +0300 (EEST) Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-42808071810so14504805e9.1 for ; Fri, 09 Aug 2024 04:26:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723202786; x=1723807586; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=9jA2SoIvk7P7O8dulMUoKfbcmSMz3Iv2sW1Nsm7OP4Q=; b=DwWL9/wqCsebhifEhg/fYEgZu5I6Tqh/ZntCo6Scp8pX5IRFcFVlYFKRwmNRe4bjk4 ONCLDjo/WjKm6smw//VBL2gaSjWbNHvbmXON0a0X6opp6Lm5J9yq9TIwexIPbMQI21IV +zfBs6a/Wp9MC/LPx0b3JDVOAZUjS2JMcj9/oipw1RbrcTDYEHyuidJtcIBDfTXTRGU4 QqObsIZu9Ws25DwM/uZQY7u34HOTwZkIPHDBjLchHve5EMSFK44C8gNu4zr1sIyzDM/T soQ3GjRqLrQTqIcgELm+HIMf14x+gx+jEfx3jTWBck5kl+XYqniS0fL0adkVqGFXiGnQ 0OSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723202786; x=1723807586; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9jA2SoIvk7P7O8dulMUoKfbcmSMz3Iv2sW1Nsm7OP4Q=; b=NWt/2BnEskFGwxnnJ0ubujXyESAqswNyzlWpsD8q966tetpGW+ajgLqv1n0tkDG9mB DTlTvf4FIyGGmo40kQvdXYdb7SpLbqvQKtZ5+W7sTB6OVp+jlH69ExA7rA/3IT139vUN +6pb2ywntuYe1WUx7R3JJZ8xZpQixaZWQgfauR8i9dT2RFcBxzPSh1UmgxXgGZkxY/dh VTicezq3+luCJ+/i7+gv+tvXKOGi2NEU1WlLJ58u+8/baxwrjvl7li1umWJZdz/vywxe Sb/8XQKN6GhJa2ZYaVlNWKCTtggEiSYTRpVjsARkvQP1+Tc9Md2K2bMOCSQ+uoREWyU5 Wu8g== X-Gm-Message-State: AOJu0YwmE2aw5L6fuGX8buc+IPxbHyEy3QcQSMZjKv6zx+Yoly0GEcxu 1QpR3bgktXG9b3j5MjO1utRL1AlYDKXjuhNAIOXAtKK2ikhVEWRyuPsWVOUi X-Google-Smtp-Source: AGHT+IGzfSqbPgiiog2+PwwdJOLUCvPY/pNEx5U2M0FglAjBElZCDwcCq4bWJIFVErS75PnXn0AVKA== X-Received: by 2002:a05:600c:1d86:b0:426:5ee5:3129 with SMTP id 5b1f17b1804b1-429c3a170b7mr9750245e9.2.1723202785437; Fri, 09 Aug 2024 04:26:25 -0700 (PDT) Received: from localhost.localdomain ([2a02:a03f:6610:8700:a59e:a164:e144:7458]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4290c72d6c8sm72385685e9.9.2024.08.09.04.26.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Aug 2024 04:26:25 -0700 (PDT) From: Ramiro Polla To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Aug 2024 13:26:11 +0200 Message-Id: <20240809112612.107000-3-ramiro.polla@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20240809112612.107000-1-ramiro.polla@gmail.com> References: <20240809112612.107000-1-ramiro.polla@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] swscale: export ff_copyPlane so it may be used by simd code 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: --- libswscale/swscale_internal.h | 4 ++++ libswscale/swscale_unscaled.c | 42 +++++++++++++++++------------------ 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index e5610161d0..50127d288f 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -1009,6 +1009,10 @@ int ff_sws_alphablendaway(SwsContext *c, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]); +void ff_copyPlane(const uint8_t *src, int srcStride, + int srcSliceY, int srcSliceH, int width, + uint8_t *dst, int dstStride); + static inline void fillPlane16(uint8_t *plane, int stride, int width, int height, int y, int alpha, int bits, const int big_endian) { diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c index 239258ab8c..dc1d5f3593 100644 --- a/libswscale/swscale_unscaled.c +++ b/libswscale/swscale_unscaled.c @@ -122,9 +122,9 @@ static void fillPlane(uint8_t *plane, int stride, int width, int height, int y, } } -static void copyPlane(const uint8_t *src, int srcStride, - int srcSliceY, int srcSliceH, int width, - uint8_t *dst, int dstStride) +void ff_copyPlane(const uint8_t *src, int srcStride, + int srcSliceY, int srcSliceH, int width, + uint8_t *dst, int dstStride) { dst += dstStride * srcSliceY; if (dstStride == srcStride && srcStride > 0) { @@ -146,8 +146,8 @@ static int planarToNv12Wrapper(SwsContext *c, const uint8_t *src[], { uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY / 2; - copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, - dstParam[0], dstStride[0]); + ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, + dstParam[0], dstStride[0]); if (c->dstFormat == AV_PIX_FMT_NV12) interleaveBytes(src[1], src[2], dst, c->chrSrcW, (srcSliceH + 1) / 2, @@ -167,8 +167,8 @@ static int nv12ToPlanarWrapper(SwsContext *c, const uint8_t *src[], uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2; uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2; - copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, - dstParam[0], dstStride[0]); + ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, + dstParam[0], dstStride[0]); if (c->srcFormat == AV_PIX_FMT_NV12) deinterleaveBytes(src[1], dst1, dst2, c->chrSrcW, (srcSliceH + 1) / 2, @@ -187,8 +187,8 @@ static int planarToNv24Wrapper(SwsContext *c, const uint8_t *src[], { uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY; - copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, - dstParam[0], dstStride[0]); + ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, + dstParam[0], dstStride[0]); if (c->dstFormat == AV_PIX_FMT_NV24) interleaveBytes(src[1], src[2], dst, c->chrSrcW, srcSliceH, @@ -208,8 +208,8 @@ static int nv24ToPlanarWrapper(SwsContext *c, const uint8_t *src[], uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY; uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY; - copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, - dstParam[0], dstStride[0]); + ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, + dstParam[0], dstStride[0]); if (c->srcFormat == AV_PIX_FMT_NV24) deinterleaveBytes(src[1], dst1, dst2, c->chrSrcW, srcSliceH, @@ -250,8 +250,8 @@ static int nv24ToYuv420Wrapper(SwsContext *c, const uint8_t *src[], uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2; uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2; - copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, - dstParam[0], dstStride[0]); + ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, + dstParam[0], dstStride[0]); if (c->srcFormat == AV_PIX_FMT_NV24) nv24_to_yuv420p_chroma(dst1, dstStride[1], dst2, dstStride[2], @@ -1173,12 +1173,12 @@ static int planarRgbToplanarRgbWrapper(SwsContext *c, int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) { - copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, - dst[0], dstStride[0]); - copyPlane(src[1], srcStride[1], srcSliceY, srcSliceH, c->srcW, - dst[1], dstStride[1]); - copyPlane(src[2], srcStride[2], srcSliceY, srcSliceH, c->srcW, - dst[2], dstStride[2]); + ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, + dst[0], dstStride[0]); + ff_copyPlane(src[1], srcStride[1], srcSliceY, srcSliceH, c->srcW, + dst[1], dstStride[1]); + ff_copyPlane(src[2], srcStride[2], srcSliceY, srcSliceH, c->srcW, + dst[2], dstStride[2]); if (dst[3]) fillPlane(dst[3], dstStride[3], c->srcW, srcSliceH, srcSliceY, 255); @@ -1700,8 +1700,8 @@ static int yvu9ToYv12Wrapper(SwsContext *c, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) { - copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, - dst[0], dstStride[0]); + ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, + dst[0], dstStride[0]); planar2x(src[1], dst[1] + dstStride[1] * (srcSliceY >> 1), c->chrSrcW, srcSliceH >> 2, srcStride[1], dstStride[1]); -- 2.30.2 _______________________________________________ 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".