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 4A24946CAF for ; Fri, 7 Jul 2023 12:45:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D18C068C7E8; Fri, 7 Jul 2023 15:45:44 +0300 (EEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2133.outbound.protection.outlook.com [40.107.13.133]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C028F68C72C for ; Fri, 7 Jul 2023 15:45:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BYS35+0i224kxeHKSDQi1YXtsr51ft93x/KgKaD9XtxMc1pbLzN9TMp7Cp2TYxyPMBW1RtIIV94SCzlWcTAsjOjPwwk+EJfVZSLAUssQteRMeBBap4D3W5a9+eoBe57ycdYfanMI7wxpwy4ewoIUcFheQqcszJT7b01USmR+G8rh5MXhhlJVPndTnASzUR/21jXVoJUhcz7qog7C5shPfxsxPmu7Ky9QOJFzPNvzdvsxTx1U6Ie6gY+sSk7fHeD/4YwEeCC8lDjVjFXu2M3CA9NOwe1VPj5dec6vFvJVlvmWQUkqlYKQOsvcJ3V3zd8oRly64uewWx+kZVi3DvPaug== 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=oJ9Mvs3w7xa4usasRRmDErJhYJ1doXfCrEE2pqUImls=; b=SW635N0kfgx8/8kKW/fZ9yiG+ErYoW8NlQpDr89+3sq/LvlCtlEOxYF2PcjpEDbBx+JeGL3PdIDZtPB22ipJmtg/2KgN7apMfqQk+K6LyCJMnKGbzU1pdxTcQlz1hb7WyVuJes+Wt32rIuCDPWydXQfx9xJjbE8/E/AkJIiXp75+vP47ETuTvBlYvX5uSZ5aj64xhEYp9IxyLvQBJWWiUoDHhrjT4egcSjKrf8amkpqlpITUZiQ4bwuxTNiJZg7XmELNcN8nSCjEdWo0goDphYMuG5en9PW2nIHd408OtuYMEUaVHZCjmFBGgXdF5WdcRBtF4Y7X/+y9ZQcnFMuwkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=noa-archive.com; dmarc=pass action=none header.from=noa-archive.com; dkim=pass header.d=noa-archive.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=noa-archive.com; Received: from DB4PR09MB5847.eurprd09.prod.outlook.com (2603:10a6:10:38d::8) by DB8PR09MB4342.eurprd09.prod.outlook.com (2603:10a6:10:15c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Fri, 7 Jul 2023 12:45:35 +0000 Received: from DB4PR09MB5847.eurprd09.prod.outlook.com ([fe80::2fbc:2071:c6cb:c209]) by DB4PR09MB5847.eurprd09.prod.outlook.com ([fe80::2fbc:2071:c6cb:c209%6]) with mapi id 15.20.6565.016; Fri, 7 Jul 2023 12:45:35 +0000 From: Tobias Rapp To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 Jul 2023 14:44:38 +0200 Message-Id: <1688733880-23091-1-git-send-email-t.rapp@noa-archive.com> X-Mailer: git-send-email 2.7.4 X-ClientProxiedBy: FR0P281CA0264.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::19) To DB4PR09MB5847.eurprd09.prod.outlook.com (2603:10a6:10:38d::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB4PR09MB5847:EE_|DB8PR09MB4342:EE_ X-MS-Office365-Filtering-Correlation-Id: 20beeec8-706b-4acd-f31b-08db7ee80ed8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dVVy3T44HDSqMn5o1qGIbscazyEKSR3zGTcFa36CkBvfE4xAM2y6APSji0KxtVA8eKlQVT8Tr2e7zFtd6idlMp4Lnn0DQ79Het/4ak3B5ICkfQCrjfSjeISv7bisztknA8xgSkXXqANZRnD4AGfaXsC5/bAWJ6rdSeraaZOsR9C+ptbNfPx8xBiV1JmFWNwQw4nCxgQox2LM1ZkCYZyX+7P9qh0j/zed39H9FxGHWcvJcbtI6ltGSBbQ/w1hu5YFc+cL7owAOg2safs830MwcOxod7lmOUXoh6+EuBXpvfOCLuAXbOOGRV0NofO7tjb9fDRhWfWvJ4Cm3pGVaDltHuYYnMHJEP3G/BHuDyai2LmKU0CoqqBzR7Smf2N9utiRBcMSorQ4G/leWOtyc9JComJrs989hKgQyzLkU392jCLmVgVadiWHC7rLFYLIyoVvO4qSHBvCiIXGqLI39VHZReB/Ee0k0KGnXTpgsxLjSIyKysM+x/fT2LwKxWVpeqfERR1RPvkera+c8mH9I3l7qFHBu5JiQ51veD0EQxc4EjS2xS244uaDLW3WZHcphbZdOFj3v3OtS7tLowba3IeN1JpMV09QhJ4wKAlj7q7fa3ZlWUBHwXW6FQDbpCzkSXzM X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB4PR09MB5847.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(39830400003)(366004)(136003)(346002)(396003)(376002)(451199021)(41300700001)(6512007)(478600001)(316002)(86362001)(52116002)(83380400001)(38350700002)(38100700002)(6486002)(6916009)(66476007)(66946007)(36756003)(2906002)(2616005)(8936002)(66556008)(5660300002)(8676002)(186003)(6506007)(26005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cZEIBN6vylLCIE96Uj40c2bk98hT30yTLkAWe3iusfvUAn/1U6U9Vl9/G7Ew?= =?us-ascii?Q?CZOlwm5+V6kY7TjKIR8JfnJm+C/DHFowJ9WcUvkRXS1sku7g/JwsmZC+4yrP?= =?us-ascii?Q?5JzatmiU/RLl6D6OwN3TfBOAZ8d2Pr2ntIdZA/v13uDDMBC6eui7+zD+rPrY?= =?us-ascii?Q?3/M4E47/Y2kfg3rPMQE/jaE5eMwVj5Auiwfyx74thHfBxHrDmBercvzDaFSj?= =?us-ascii?Q?JHQLBxfNUX8gx75dXu/igD4sPDEeZJSdWLC8K6P7dBUkxc0jckyRmuGRzMH9?= =?us-ascii?Q?OShXyhGEd6OySP5wYnkmv24C0anCeXEQpKJLU3nCStCtdqg1x/AtPOW4akxx?= =?us-ascii?Q?AUVAXffTDq2PyBqPveRF0S4CmwmCqeU5rcZiLVMQbpp2aTZgR1xOfUYkQOpA?= =?us-ascii?Q?F7QZ8AZGQBCowIF25BSiZFMx1RVFSON3M4jnuanpXBtvdhXIMZriyRdYfBhW?= =?us-ascii?Q?6PS+9ojuaWKc/0Uvwm0Bc0o/vY6JDLMvN3zFYcSKgStSI06trTy1haW0yf2a?= =?us-ascii?Q?sALsl1rdXjge9ZPIP+/QBvR5WzlvB1dSy88VeM4fKPM+Yd3xiyHfJzR/Vrcw?= =?us-ascii?Q?KZtK1wuZtAT3ZIAF49ZA4uQ3zJ5nHLXrt2jP8o7EGI7GlDtLZVuUScoJ+1mj?= =?us-ascii?Q?LIya4Xbn1c4HgUrz9luMdjBHfiYVw0nFfk/dgRqJepEiEhh68SKqS5Sa8Zhb?= =?us-ascii?Q?oPyhWDcRbIX4HKZfs2NWbDuQ7m6e6EA7QgsKczGDmfKoXHjFrACijA72XWxk?= =?us-ascii?Q?5GLuZUxT/9WZHmOWdCB1odfAoyn1E0bK7o//LEfCcDYdsfcv1gq4VOMxoOUd?= =?us-ascii?Q?90sQ/f+y1crbs+Y8taH/jSaBBW3N0LwpEBMJF7cmuvBQJbo2NaVCSuo4RyUb?= =?us-ascii?Q?UiyeE3O+WvoadgimQNUEI41mTMZLigzH5d28FMJTcVEddhS9ir3C7qMXI98Z?= =?us-ascii?Q?MRmFv5Ijmg+xXtVvng0uqtxLPaz5xfRim/9TQuROZBWrJwPcChtNTCvLRzr3?= =?us-ascii?Q?6D/B8AFF3sG7lhe5dCHtpV3tUIU8sy1EUp1eJc5FtuOuaPEo73q2f0pGH2eX?= =?us-ascii?Q?oEsR7o3WD0kbcZyhI8ffUjFbCuspA4E2qJW2UKz3+2FwjvMUA/3O1/fxufiF?= =?us-ascii?Q?+SyM746NAlVCohAKu594IBPgqhjpWHrlXkar9v85NtEZ+jr2xZ4G1hmvZcK9?= =?us-ascii?Q?caX7N0h6X/Z8EAWNTk3TwLzjKc1wWGS/brR7hMgIvJCpNQ6KImszbEmz6iwF?= =?us-ascii?Q?JGxzpBbE/ePkeF/sirEKqCmnpJqoWSxkk6fCgh28E36Vh3unonZk1HoLiJ6s?= =?us-ascii?Q?91WTIxrhI0Nv01XCkFaNla7X5Ap5jnvTwFCbaZsGHjBGfJ92lSrSE9VlUNuG?= =?us-ascii?Q?SHhvRXgj8lbE3XdrM47HxGRvpaWeHkobbg5K5m8mjjWfg4L89RfdZUfbO1hl?= =?us-ascii?Q?MGiRSZ8ReZXKOEvqa6Bwn5LLMbK23FEkIgeAoc1mgUMc4+bNPTV1ruIRg7Dn?= =?us-ascii?Q?+SKt6XmqMMRXBgbCU/Ebr8Owxs2KL3ojh7is5JtWXtyPdR/LdaPo6EPVc0gA?= =?us-ascii?Q?vzM9abqLgRQ3h6933N0cGqs1FC65f5N+Utm8NYqJEjwg/wTJbiByJcEWclVW?= =?us-ascii?Q?NQ=3D=3D?= X-OriginatorOrg: noa-archive.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20beeec8-706b-4acd-f31b-08db7ee80ed8 X-MS-Exchange-CrossTenant-AuthSource: DB4PR09MB5847.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2023 12:45:35.1001 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a676c8d7-7f39-4c99-a306-48abb76a98e9 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xrPOZ87zpK5oX5XoPH73HgIaN6+DdH4h0abUV3EaF2HBncxo8bN01imy0kPu87mJHzSAcJBzoZzrKcp14PPeVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR09MB4342 Subject: [FFmpeg-devel] [PATCH 1/3] avfilter/vf_overlay: Add support for yuv444p10 pixel format 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: --- doc/filters.texi | 3 +++ libavfilter/vf_overlay.c | 36 +++++++++++++++++++++++++++++++++++- libavfilter/vf_overlay.h | 1 + 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/doc/filters.texi b/doc/filters.texi index f17488c..3b82edf 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -18605,6 +18605,9 @@ force YUV422p10 output @item yuv444 force YUV444 output +@item yuv444p10 +force YUV444p10 output + @item rgb force packed RGB output diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index 36c04ac..fa39abb 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -156,7 +156,7 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar static const enum AVPixelFormat alpha_pix_fmts[] = { AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, - AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, + AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_ARGB, AV_PIX_FMT_ABGR, AV_PIX_FMT_RGBA, AV_PIX_FMT_BGRA, AV_PIX_FMT_GBRAP, AV_PIX_FMT_NONE }; @@ -204,6 +204,13 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; + static const enum AVPixelFormat main_pix_fmts_yuv444p10[] = { + AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_NONE + }; + static const enum AVPixelFormat overlay_pix_fmts_yuv444p10[] = { + AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_NONE + }; + static const enum AVPixelFormat main_pix_fmts_gbrp[] = { AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_NONE }; @@ -248,6 +255,10 @@ static int query_formats(AVFilterContext *ctx) main_formats = main_pix_fmts_yuv444; overlay_formats = overlay_pix_fmts_yuv444; break; + case OVERLAY_FORMAT_YUV444P10: + main_formats = main_pix_fmts_yuv444p10; + overlay_formats = overlay_pix_fmts_yuv444p10; + break; case OVERLAY_FORMAT_RGB: main_formats = main_pix_fmts_rgb; overlay_formats = overlay_pix_fmts_rgb; @@ -759,6 +770,22 @@ static int blend_slice_yuva444(AVFilterContext *ctx, void *arg, int jobnr, int n return 0; } +static int blend_slice_yuv444p10(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) +{ + OverlayContext *s = ctx->priv; + ThreadData *td = arg; + blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 1, jobnr, nb_jobs); + return 0; +} + +static int blend_slice_yuva444p10(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) +{ + OverlayContext *s = ctx->priv; + ThreadData *td = arg; + blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 1, jobnr, nb_jobs); + return 0; +} + static int blend_slice_gbrp(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) { OverlayContext *s = ctx->priv; @@ -902,6 +929,9 @@ static int config_input_main(AVFilterLink *inlink) case OVERLAY_FORMAT_YUV444: s->blend_slice = s->main_has_alpha ? blend_slice_yuva444 : blend_slice_yuv444; break; + case OVERLAY_FORMAT_YUV444P10: + s->blend_slice = s->main_has_alpha ? blend_slice_yuva444p10 : blend_slice_yuv444p10; + break; case OVERLAY_FORMAT_RGB: s->blend_slice = s->main_has_alpha ? blend_slice_rgba : blend_slice_rgb; break; @@ -925,6 +955,9 @@ static int config_input_main(AVFilterLink *inlink) case AV_PIX_FMT_YUVA444P: s->blend_slice = blend_slice_yuva444; break; + case AV_PIX_FMT_YUVA444P10: + s->blend_slice = blend_slice_yuva444p10; + break; case AV_PIX_FMT_ARGB: case AV_PIX_FMT_RGBA: case AV_PIX_FMT_BGRA: @@ -1084,6 +1117,7 @@ static const AVOption overlay_options[] = { { "yuv422", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV422}, .flags = FLAGS, .unit = "format" }, { "yuv422p10", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV422P10}, .flags = FLAGS, .unit = "format" }, { "yuv444", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV444}, .flags = FLAGS, .unit = "format" }, + { "yuv444p10", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV444P10}, .flags = FLAGS, .unit = "format" }, { "rgb", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_RGB}, .flags = FLAGS, .unit = "format" }, { "gbrp", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_GBRP}, .flags = FLAGS, .unit = "format" }, { "auto", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_AUTO}, .flags = FLAGS, .unit = "format" }, diff --git a/libavfilter/vf_overlay.h b/libavfilter/vf_overlay.h index 7e65095..5974964 100644 --- a/libavfilter/vf_overlay.h +++ b/libavfilter/vf_overlay.h @@ -47,6 +47,7 @@ enum OverlayFormat { OVERLAY_FORMAT_YUV422, OVERLAY_FORMAT_YUV422P10, OVERLAY_FORMAT_YUV444, + OVERLAY_FORMAT_YUV444P10, OVERLAY_FORMAT_RGB, OVERLAY_FORMAT_GBRP, OVERLAY_FORMAT_AUTO, -- 2.7.4 _______________________________________________ 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".