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 5F81643A04 for ; Thu, 4 Aug 2022 22:19:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 23C2B68B96D; Fri, 5 Aug 2022 01:19:01 +0300 (EEST) Received: from mail-vs1-f47.google.com (mail-vs1-f47.google.com [209.85.217.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4D7FE68B810 for ; Fri, 5 Aug 2022 01:18:54 +0300 (EEST) Received: by mail-vs1-f47.google.com with SMTP id 129so840421vsq.8 for ; Thu, 04 Aug 2022 15:18:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc; bh=Pjdc+N5zokgUEmUjP4/iBm0BkKKYFUWqyRpQmBP9vBs=; b=E+ThodHmLQtOKXgMhrXJC/zSQ6PjasXTFijUDy5aiKztcHv3OGMcbIfcLOTsA3TcoU CSDxppG98A0m29HwWxrX9szVLtZ1+5X6ZMozbJcwhQ0NlF8hFdDz2koSl66HrwV41bFI ZIBUr+fIiBuTdun0Sb54u35PTFwanwcVwrkOyWxdbl31h259Cfzcufsi3J4fiJsIeCs0 MCaR27IfwGy/zLoR1fl3YF9vJbyZ0CCvf0iYPkQy4TGrhSFH+LjzlXXmUxDiBKnWEDB2 rz9kEe0lY7M7NhjSp5BJunOr0J3ohFL+EyzDOBznEc1aJCkiQKE9deBhmGWV2v62czUn 6x9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc; bh=Pjdc+N5zokgUEmUjP4/iBm0BkKKYFUWqyRpQmBP9vBs=; b=qLlcdNBQannG642uW9UsYFbN/+ZZcRy9gXl3yM8+jsbWkF0OEcSJUGeL7XK58xavZo vHj3V2KMsgdD+UIC7e/Khmn89cUtDpc+fh4d2hlLY96NQtbk6qD6CV+YH1ENQKg3g0m0 KDM5XshwvP7WVG6qvYMrjjj8/MTooctD7uUygAwdRihAaJmg6NcMGFCkRV+d3N/B/uiJ 8f4bX+e38WzJccaOU+VcRUaWZ/P9eD48d5H60qZ9IJ3z2sKTciO3HkAtw/sbvxE2UX7u 3iU0GKWw5/tdwq2nFFKu+VMk7X3/uxZezwZ0FVwusJay44J3HjMqlFlrVglooW3ZkUw6 6GAg== X-Gm-Message-State: ACgBeo2klMmVUR0qc3qtf21UpN0+Wa4w2HvIPDAx7lMU3E4MtkTyYupc EcLGWqXGH7K5AP9aBzlyb7aNFDM3BLk= X-Google-Smtp-Source: AA6agR6p5hf/aTwfUB6xPLjv6xBly3Y9ZvfPkCd/6Km6vaAZwvvcMnKjtchhh/3KURYSovOHQhMGlg== X-Received: by 2002:a67:e012:0:b0:385:33b0:8fbf with SMTP id c18-20020a67e012000000b0038533b08fbfmr1931754vsl.8.1659651531608; Thu, 04 Aug 2022 15:18:51 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.204]) by smtp.gmail.com with ESMTPSA id w8-20020ab07288000000b00384293c4199sm2039371uao.23.2022.08.04.15.18.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Aug 2022 15:18:50 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:18:19 -0300 Message-Id: <20220804221819.3720-1-jamrial@gmail.com> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] swscale/input: add VUYA input support 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: Signed-off-by: James Almer --- libswscale/input.c | 35 +++++++++++++++++++++++++++++++++++ libswscale/utils.c | 1 + 2 files changed, 36 insertions(+) diff --git a/libswscale/input.c b/libswscale/input.c index 750367b28b..68abc4d62c 100644 --- a/libswscale/input.c +++ b/libswscale/input.c @@ -650,6 +650,32 @@ static void read_ayuv64le_A_c(uint8_t *dst, const uint8_t *src, const uint8_t *u AV_WN16(dst + i * 2, AV_RL16(src + i * 8)); } +static void read_vuya_UV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *unused0, const uint8_t *src, + const uint8_t *unused1, int width, uint32_t *unused2) +{ + int i; + for (i = 0; i < width; i++) { + dstU[i] = src[i * 4 + 1]; + dstV[i] = src[i * 4]; + } +} + +static void read_vuya_Y_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused0, const uint8_t *unused1, int width, + uint32_t *unused2) +{ + int i; + for (i = 0; i < width; i++) + dst[i] = src[i * 4 + 2]; +} + +static void read_vuya_A_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused0, const uint8_t *unused1, int width, + uint32_t *unused2) +{ + int i; + for (i = 0; i < width; i++) + dst[i] = src[i * 4 + 3]; +} + /* This is almost identical to the previous, end exists only because * yuy2ToY/UV)(dst, src + 1, ...) would have 100% unaligned accesses. */ static void uyvyToY_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width, @@ -1229,6 +1255,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) c->chrToYV12 = bswap16UV_c; break; #endif + case AV_PIX_FMT_VUYA: + c->chrToYV12 = read_vuya_UV_c; + break; case AV_PIX_FMT_AYUV64LE: c->chrToYV12 = read_ayuv64le_UV_c; break; @@ -1591,6 +1620,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) case AV_PIX_FMT_YA16BE: c->lumToYV12 = read_ya16be_gray_c; break; + case AV_PIX_FMT_VUYA: + c->lumToYV12 = read_vuya_Y_c; + break; case AV_PIX_FMT_AYUV64LE: c->lumToYV12 = read_ayuv64le_Y_c; break; @@ -1746,6 +1778,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) case AV_PIX_FMT_YA16BE: c->alpToYV12 = read_ya16be_alpha_c; break; + case AV_PIX_FMT_VUYA: + c->alpToYV12 = read_vuya_A_c; + break; case AV_PIX_FMT_AYUV64LE: c->alpToYV12 = read_ayuv64le_A_c; break; diff --git a/libswscale/utils.c b/libswscale/utils.c index c0504a6dfc..bc3d1c955c 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -258,6 +258,7 @@ static const FormatEntry format_entries[] = { [AV_PIX_FMT_P416BE] = { 1, 1 }, [AV_PIX_FMT_P416LE] = { 1, 1 }, [AV_PIX_FMT_NV16] = { 1, 1 }, + [AV_PIX_FMT_VUYA] = { 1, 0 }, }; int ff_shuffle_filter_coefficients(SwsContext *c, int *filterPos, -- 2.37.1 _______________________________________________ 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".