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 ESMTPS id 417A34DF44 for ; Wed, 5 Mar 2025 20:44:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 015D268DA33; Wed, 5 Mar 2025 22:44:35 +0200 (EET) Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 920C268D6CF for ; Wed, 5 Mar 2025 22:44:28 +0200 (EET) Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-2feae794508so10825152a91.0 for ; Wed, 05 Mar 2025 12:44:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741207466; x=1741812266; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=XnhxzGqTVgXzMUGyxuB4iFpDR6NwWqxvHFdNRLm9sWs=; b=TkK3BD2HopTTCYDSPYI1ztEE9kVaa8IvHymg67jpmO41dqh5RqnTNW8I9hAqAqg0vZ V8VoQGYIRkZkn2PceiYq+u47JgTs3HDm13xEFCuCGXUbiBjtS05upDV5hQQW9IIXsfn/ /OSuQWrvKKUV4yOUmfNtSHAzQvkLntSj3SJ7YPqLVysU5lhka4rWtGXRpMJMWYY3C60o QeSlMuHCKU0WfP+AzolT1g6IozDxjhyK2r9GZ35zyXlVjQjYkeRPQAxGhiHDYRaZZ3Wr IRO+i/EF49Iyb1yEhiBWhyWzsJ08imrZniGZpee54n5hdCaxsQ/h8LJ0D2BZ0bGadIHT CTmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741207466; x=1741812266; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XnhxzGqTVgXzMUGyxuB4iFpDR6NwWqxvHFdNRLm9sWs=; b=gOvDXsEyAgWVJ/feLXEuEwQoHp945PCobnrVve1zPP7RKy8jjLq/VwkBOlGcDAaU9l 6A8TTeYHfVmKIF7khR+2/jAGaLLDUHOmJZtk7ac9nmGx+wru/VmdaGf2WZQ6bAEjjO2p yMtDRhHQSnH8VuxbIpGXPZTurRxE+gGMgTqF6DNIFOnvlIIfGgkhKbkJfe+yBWA833qd H3dmEABCpNGQ1T+20eFUzJlmfHM50VsYQq1ivIGEVXM5cjCDbxQPhLr94v6GeBlKShf4 x12Cw8jYJXLb2DQm3P7TCgm49k4/NK9Q25K36NtCJ5cgdSPhvORznju/DbvgOyRqIfa0 X4jg== X-Gm-Message-State: AOJu0YwloISsqT9EGvgtULE/pZsQwfIr5t39Wl2CA44okd08DwQsvO37 0cyMGQPDq9XdtWF8/ZmvcqBsoCbAHQu+Gbp763/uvIi9lFT6c7worV2ztg== X-Gm-Gg: ASbGncudNpzYhyy1v2TKqfDmZ1PjfGBnu74qpRIGVFZf3S8l4l+eiZ3LwLDnRnwo6yL y96tvj1UmnBEP32Hz+PFSYYWSx7rLeJVWnzza1ZxfKhu7zxr3WqoW3TnDNCvWzkspgkRO/xp/eM NUccY1EVav2NgqUGiP7mUhP7/2B8Tp65KBT6roAy78OFVnrT7PRwGwD/XbnShzxCEtkQDY16Xbj 3LZgs/HsW39Hqr1OdHp+Evq514maCUs8cnYSqGCSVHX1NIwkHlobYDnmUTx7NfLqydrO9Dt9Kgf 3pIBn2zKAhqbETCH6vWpAovtld7lO6tpbj6ry5CuDu3QX8jiXz98CwC2LxIQ X-Google-Smtp-Source: AGHT+IFpCT1OG1z8hnIvCDj9BElsSfbRfMRqukgQ09cxjFAM6ToPGwpR1ZeHvlrpOAOCYs2ke31G3Q== X-Received: by 2002:a17:90b:51cb:b0:2fa:e9b:33b3 with SMTP id 98e67ed59e1d1-2ff4978ffc2mr7033985a91.6.1741207465934; Wed, 05 Mar 2025 12:44:25 -0800 (PST) Received: from localhost.localdomain ([2800:2121:b040:c:d959:d427:c88a:cc02]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2ff4e7bdac8sm1771083a91.42.2025.03.05.12.44.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Mar 2025 12:44:25 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Mar 2025 17:44:11 -0300 Message-ID: <20250305204413.36950-1-jamrial@gmail.com> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avutil/pixfmt: add YAF16 and YAF32 pixel formats 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 --- libavutil/pixdesc.c | 44 ++++++++++++++++++++++++++++++++ libavutil/pixfmt.h | 9 +++++++ tests/ref/fate/imgutils | 8 ++++++ tests/ref/fate/sws-pixdesc-query | 20 +++++++++++++++ 4 files changed, 81 insertions(+) diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 7ffc8f3b2e..1917ae74d8 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -2543,6 +2543,50 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_FLOAT, }, + [AV_PIX_FMT_YAF32BE] = { + .name = "yaf32be", + .nb_components = 2, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 8, 0, 0, 32 }, /* Y */ + { 0, 8, 4, 0, 32 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_FLOAT | AV_PIX_FMT_FLAG_ALPHA, + }, + [AV_PIX_FMT_YAF32LE] = { + .name = "yaf32le", + .nb_components = 2, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 8, 0, 0, 32 }, /* Y */ + { 0, 8, 4, 0, 32 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_FLOAT | AV_PIX_FMT_FLAG_ALPHA, + }, + [AV_PIX_FMT_YAF16BE] = { + .name = "yaf16be", + .nb_components = 2, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 4, 0, 0, 16 }, /* Y */ + { 0, 4, 2, 0, 16 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_FLOAT | AV_PIX_FMT_FLAG_ALPHA, + }, + [AV_PIX_FMT_YAF16LE] = { + .name = "yaf16le", + .nb_components = 2, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 4, 0, 0, 16 }, /* Y */ + { 0, 4, 2, 0, 16 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_FLOAT | AV_PIX_FMT_FLAG_ALPHA, + }, [AV_PIX_FMT_YUVA422P12BE] = { .name = "yuva422p12be", .nb_components = 4, diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index ca1b22762b..6f343cb026 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -479,6 +479,12 @@ enum AVPixelFormat { AV_PIX_FMT_GRAY32BE, ///< Y , 32bpp, big-endian AV_PIX_FMT_GRAY32LE, ///< Y , 32bpp, little-endian + AV_PIX_FMT_YAF32BE, ///< IEEE-754 half precision packed YA, 32 bits gray, 32 bits alpha, 64bpp, big-endian + AV_PIX_FMT_YAF32LE, ///< IEEE-754 half precision packed YA, 32 bits gray, 32 bits alpha, 64bpp, little-endian + + AV_PIX_FMT_YAF16BE, ///< IEEE-754 half precision packed YA, 16 bits gray, 16 bits alpha, 32bpp, big-endian + AV_PIX_FMT_YAF16LE, ///< IEEE-754 half precision packed YA, 16 bits gray, 16 bits alpha, 32bpp, little-endian + AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions }; @@ -554,6 +560,9 @@ enum AVPixelFormat { #define AV_PIX_FMT_GRAYF16 AV_PIX_FMT_NE(GRAYF16BE, GRAYF16LE) #define AV_PIX_FMT_GRAYF32 AV_PIX_FMT_NE(GRAYF32BE, GRAYF32LE) +#define AV_PIX_FMT_YAF16 AV_PIX_FMT_NE(YAF16BE, YAF16LE) +#define AV_PIX_FMT_YAF32 AV_PIX_FMT_NE(YAF32BE, YAF32LE) + #define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE) #define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE) #define AV_PIX_FMT_YUVA444P9 AV_PIX_FMT_NE(YUVA444P9BE , YUVA444P9LE) diff --git a/tests/ref/fate/imgutils b/tests/ref/fate/imgutils index 0951bab161..79e31e80ac 100644 --- a/tests/ref/fate/imgutils +++ b/tests/ref/fate/imgutils @@ -292,6 +292,10 @@ grayf16be planes: 1, linesizes: 128 0 0 0, plane_sizes: 6144 0 grayf16le planes: 1, linesizes: 128 0 0 0, plane_sizes: 6144 0 0 0, plane_offsets: 0 0 0, total_size: 6144 gray32be planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288 gray32le planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288 +yaf32be planes: 1, linesizes: 512 0 0 0, plane_sizes: 24576 0 0 0, plane_offsets: 0 0 0, total_size: 24576 +yaf32le planes: 1, linesizes: 512 0 0 0, plane_sizes: 24576 0 0 0, plane_offsets: 0 0 0, total_size: 24576 +yaf16be planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288 +yaf16le planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288 image_fill_black tests yuv420p total_size: 4608, black_unknown_crc: 0xd00f6cc6, black_tv_crc: 0xd00f6cc6, black_pc_crc: 0x234969af @@ -531,3 +535,7 @@ grayf16be total_size: 6144, black_unknown_crc: 0x72aa7ce2, black_tv_cr grayf16le total_size: 6144, black_unknown_crc: 0xad1b67c6, black_tv_crc: 0xad1b67c6, black_pc_crc: 0x00000000 gray32be total_size: 12288, black_unknown_crc: 0x52baa2c6, black_tv_crc: 0x52baa2c6, black_pc_crc: 0x00000000 gray32le total_size: 12288, black_unknown_crc: 0xc72f7e60, black_tv_crc: 0xc72f7e60, black_pc_crc: 0x00000000 +yaf32be total_size: 24576, black_unknown_crc: 0xa3dc1529, black_tv_crc: 0xa3dc1529, black_pc_crc: 0x0bbcb13e +yaf32le total_size: 24576, black_unknown_crc: 0xfd900236, black_tv_crc: 0xfd900236, black_pc_crc: 0xdcaf0cb1 +yaf16be total_size: 12288, black_unknown_crc: 0x7afe9aae, black_tv_crc: 0x7afe9aae, black_pc_crc: 0x0fc0a5d0 +yaf16le total_size: 12288, black_unknown_crc: 0x94c0068b, black_tv_crc: 0x94c0068b, black_pc_crc: 0xc05ce449 diff --git a/tests/ref/fate/sws-pixdesc-query b/tests/ref/fate/sws-pixdesc-query index 9a1d0d4b52..426794b7f2 100644 --- a/tests/ref/fate/sws-pixdesc-query +++ b/tests/ref/fate/sws-pixdesc-query @@ -37,6 +37,8 @@ is16BPS: y216le ya16be ya16le + yaf16be + yaf16le yuv420p16be yuv420p16le yuv422p16be @@ -212,6 +214,8 @@ isBE: y212be y216be ya16be + yaf16be + yaf32be yuv420p10be yuv420p12be yuv420p14be @@ -295,6 +299,10 @@ isYUV: ya16be ya16le ya8 + yaf16be + yaf16le + yaf32be + yaf32le yuv410p yuv411p yuv420p @@ -607,6 +615,10 @@ Gray: ya16be ya16le ya8 + yaf16be + yaf16le + yaf32be + yaf32le RGBinInt: monob @@ -795,6 +807,10 @@ ALPHA: ya16be ya16le ya8 + yaf16be + yaf16le + yaf32be + yaf32le yuva420p yuva420p10be yuva420p10le @@ -917,6 +933,10 @@ Packed: ya16be ya16le ya8 + yaf16be + yaf16le + yaf32be + yaf32le yuyv422 yvyu422 -- 2.48.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".