From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 6663A4E8A6 for ; Sat, 7 Feb 2026 23:25:07 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'ICnZcb/VDwFm2zHGoOGFtzxFrmfiKpq1a7b1U6NUXXA=', expected b'jVjjZyhfYvP9dZcBZsGOmSm4agZuSgV7uG/ehe89wqE=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1770506683; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=ICnZcb/VDwFm2zHGoOGFtzxFrmfiKpq1a7b1U6NUXXA=; b=hzmX8MBwW+DkvHlnpS9Kf1YOgGzRUqA6p8g7klw6gatlrX6tFEj4KukdLsvUHO7L6bNJw vJSWcv9In0T47P8rsmgGKhrDckQaQjSbASR6b4tWWi/KaupyyBo+2u/aZbCFt0enpIkSRGG UQ35xSvkDzzNmtCMdYxr5roKeqkpImK4Isn/MZqtA794jjze5REikZJsnv1f+7NuxoKh1RC pzBIIdgVG2J+HocyOaknJqyEIKUVnyQROmFmdFm2IxThq6e4Bu4IVTVAB0DasGZ9ORJuTbD /tKQFQulS6bnJEk5Xz/tp4n0o2iLNRuowXpTl2DRtEMa8bErC+9/kNVcECbg== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id F2CED691106; Sun, 8 Feb 2026 01:24:42 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1770506667; b=jNIEbRtHEx5asf5evWAdweTFzcPbhApGC2VDT5ePYo7Wf4YchJkVV3tDI1p3CzWD2IyzL YF8CGdPpAcPTMsKhusn5dSzIlsdxtkUTvun1uoJjifj3gigD/psWosELQQjH1zJTIeLGy5F TfuGskC/X0YFIE/CwNTHm23IPRdQyqkZNSWYfk9TwqUcQ/tjVTUqAA6gJBbhObcrIy3fcI5 qTCxnye/84sTs7GdS36uvoWfACEB1zAf9W27Pclm92ifkmuit1dCNX9w8BSEo9skXtEpeZl WwF4EwKBHRtqLR66sMOpX+Mc8cyC/71er9A3F91c3ETfuz4oXQaCAjlAar2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1770506667; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=6D2wunVlXh3u3DAnhfZ63EbSTnP8zNhN8dBlzsCgVdk=; b=UrwUR/7360VySsKcSbL8FyNE8jc6O2hPXiK6Hy1IIbm/n4HzOmxnWY0oP6eO1YGATl9sZ 61JYPbcFYBQ7fa38wCsKS7tA7ux9pxoNFaaPJDHW7r3V2j/0EQUOg51Xwlken244GAOqNPy QcSuKIjLYl3i1kMmt1K6WnUhzCRFqAetFtv1LxpcgFdGyEen3j4GuYKwpmHVIfdbAW6kZGW TnE/wwrb4gAHeEQ5in/M7BKPoBEpsWwouJOMgne9tuoT2mgOLEjYOZe0HwShyjMnznDZQGR y+5Vt7l1FaJDVWFNrtuCu4Eau++U14Ku5SOCZWo0Xit9Na0Hp3WGvEseBMCw== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1770506659; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=jVjjZyhfYvP9dZcBZsGOmSm4agZuSgV7uG/ehe89wqE=; b=yPl2J9xvbAPfVstEahiKDGCAD+yJOIDltObSVIyt8U2KBTdmQrNoIAMZBJiQmJGYlZR+T 5g7J7Rm97Bud4s/YWJYNEawmW/kQplOL35thNJdYkJWKqCJIGGCpT/Ib5J4WXE3iQW3sYkq CJwG9A+ytMT6cYHCpEb9n7mVC7P32WFpnLIoMOkpbwsklV7GFtIg/s3uc2Xhz5VN2fbYlwy Mmhai+1yVfL8QwUNCNnf3LLxiSrGht2I0kHXPKJNNYMov/DKqDfpkdpmq5rJ+L1YLyOrXOC wkk5CKnN9oIRFgSeEZWDk53gRZrAI6D/VbIrMUjuf88pi34POfRyeTmzHVUQ== Received: from c8d966988b92 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 2F20068FB76 for ; Sun, 8 Feb 2026 01:24:19 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Sat, 07 Feb 2026 23:24:18 -0000 Message-ID: <177050665940.25.16964438772835944835@4457048688e7> Message-ID-Hash: XEMPIZVJ5QWPTZOSFIKGPE2I3MBHXEJL X-Message-ID-Hash: XEMPIZVJ5QWPTZOSFIKGPE2I3MBHXEJL X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] webm, libvpx: add experimental support for alpha pixel formats other than YUV 4:2:0 (PR #21678) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Marton Balint via ffmpeg-devel Cc: Marton Balint Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21678 opened by Marton Balint (cus) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21678 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21678.patch This patch series started as an experiment, because I was suprised that there is no proper support for RGB / YUV444 videos on the web with transparency. I could not find any documentation which disallows the use of transparency in WEBM files with VP9 codec for pixel formats other than YUV 4:2:0, so this patch series add support for creating and reading such files: 4:2:2, 4:4:4, RGB, and their high bit depth variants. It is not quite clear if the alpha channel should be encoded using the same pixel format as the normal channels, or it should always be YUV 4:2:0. I sticked to the same format as the normal color components. Unfortunately the browsers I tested (chrome, firefox) only support 4:2:0 properly, so let's require an experimental flag to encode VP9 with the new, more exotic pixel formats. Maybe browsers will pick up support if something at least can generate such files... >>From d55a1694beed59c0f337366b56b1f2f9d5b4dff0 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 7 Feb 2026 00:19:47 +0100 Subject: [PATCH 1/4] avformat/matroskaenc: only write AlphaMode for VP8 and VP9 AlphaMode should indicate whether the BlockAdditional Element with BlockAddID of "1" contains Alpha data, as defined by to the Codec Mapping for the `CodecID`. Only VP8 and VP9 Codec Mappings define this, so writing it for all codecs with a pixel format of YUVA420P was wrong. Signed-off-by: Marton Balint --- libavformat/matroskaenc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 50188c396c..ef5f3d0259 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include #include "config_components.h" @@ -1757,6 +1758,14 @@ static void mkv_write_blockadditionmapping(AVFormatContext *s, const MatroskaMux #endif } +static bool codec_has_blockadditional_alpha(const AVCodecParameters *par) +{ + if (par->codec_id != AV_CODEC_ID_VP8 && + par->codec_id != AV_CODEC_ID_VP9) + return false; + return (par->format == AV_PIX_FMT_YUVA420P); +} + static int mkv_write_track_video(AVFormatContext *s, MatroskaMuxContext *mkv, const AVStream *st, const AVCodecParameters *par, AVIOContext *pb) @@ -1785,7 +1794,7 @@ static int mkv_write_track_video(AVFormatContext *s, MatroskaMuxContext *mkv, if (ret < 0) return ret; - if (par->format == AV_PIX_FMT_YUVA420P || + if (codec_has_blockadditional_alpha(par) || ((tag = av_dict_get(st->metadata, "alpha_mode", NULL, 0)) || (tag = av_dict_get( s->metadata, "alpha_mode", NULL, 0))) && strtol(tag->value, NULL, 0)) ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOALPHAMODE, 1); -- 2.52.0 >>From e2e08682059c5aab9a68ff019c392ddc11bc47e6 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 7 Feb 2026 00:36:07 +0100 Subject: [PATCH 2/4] avformat/matroskaenc: write AlphaMode flag for all VP8 and VP9 pixel formats with alpha Let's check the pixel format descriptor flags instead of hardcoding a specific pixel format. Signed-off-by: Marton Balint --- libavformat/matroskaenc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index ef5f3d0259..2eec6cfb7f 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1760,10 +1760,11 @@ static void mkv_write_blockadditionmapping(AVFormatContext *s, const MatroskaMux static bool codec_has_blockadditional_alpha(const AVCodecParameters *par) { + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(par->format); if (par->codec_id != AV_CODEC_ID_VP8 && par->codec_id != AV_CODEC_ID_VP9) return false; - return (par->format == AV_PIX_FMT_YUVA420P); + return desc && (desc->flags & AV_PIX_FMT_FLAG_ALPHA); } static int mkv_write_track_video(AVFormatContext *s, MatroskaMuxContext *mkv, -- 2.52.0 >>From 80b04671d0bb0721f5966edc6f939e48c9c13bf0 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 7 Feb 2026 00:58:37 +0100 Subject: [PATCH 3/4] avcodec/libvpxdec: add support for decoding pixel formats other than YUV420 with alpha Signed-off-by: Marton Balint --- libavcodec/libvpxdec.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/libavcodec/libvpxdec.c b/libavcodec/libvpxdec.c index 1257a3607c..317725bf31 100644 --- a/libavcodec/libvpxdec.c +++ b/libavcodec/libvpxdec.c @@ -140,23 +140,28 @@ static int set_pix_fmt(AVCodecContext *avctx, struct vpx_image *img, #if CONFIG_LIBVPX_VP9_DECODER case VPX_IMG_FMT_I422: avctx->profile = AV_PROFILE_VP9_1; - avctx->pix_fmt = AV_PIX_FMT_YUV422P; + avctx->pix_fmt = + has_alpha_channel ? AV_PIX_FMT_YUVA422P : AV_PIX_FMT_YUV422P; return 0; case VPX_IMG_FMT_I440: + //TODO: Add alpha support once the pixel format becomes available avctx->profile = AV_PROFILE_VP9_1; avctx->pix_fmt = AV_PIX_FMT_YUV440P; return 0; case VPX_IMG_FMT_I444: avctx->profile = AV_PROFILE_VP9_1; avctx->pix_fmt = avctx->colorspace == AVCOL_SPC_RGB ? - AV_PIX_FMT_GBRP : AV_PIX_FMT_YUV444P; + (has_alpha_channel ? AV_PIX_FMT_GBRAP : AV_PIX_FMT_GBRP) : + (has_alpha_channel ? AV_PIX_FMT_YUVA444P : AV_PIX_FMT_YUV444P); return 0; case VPX_IMG_FMT_I42016: avctx->profile = AV_PROFILE_VP9_2; if (img->bit_depth == 10) { - avctx->pix_fmt = AV_PIX_FMT_YUV420P10; + avctx->pix_fmt = + has_alpha_channel ? AV_PIX_FMT_YUVA420P10 : AV_PIX_FMT_YUV420P10; return 0; } else if (img->bit_depth == 12) { + //TODO: Add alpha support once the pixel format becomes available avctx->pix_fmt = AV_PIX_FMT_YUV420P12; return 0; } else { @@ -165,15 +170,18 @@ static int set_pix_fmt(AVCodecContext *avctx, struct vpx_image *img, case VPX_IMG_FMT_I42216: avctx->profile = AV_PROFILE_VP9_3; if (img->bit_depth == 10) { - avctx->pix_fmt = AV_PIX_FMT_YUV422P10; + avctx->pix_fmt = + has_alpha_channel ? AV_PIX_FMT_YUVA422P10 : AV_PIX_FMT_YUV422P10; return 0; } else if (img->bit_depth == 12) { + //TODO: Add alpha support once the pixel format becomes available avctx->pix_fmt = AV_PIX_FMT_YUV422P12; return 0; } else { return AVERROR_INVALIDDATA; } case VPX_IMG_FMT_I44016: + //TODO: Add alpha support once the pixel format becomes available avctx->profile = AV_PROFILE_VP9_3; if (img->bit_depth == 10) { avctx->pix_fmt = AV_PIX_FMT_YUV440P10; @@ -188,11 +196,13 @@ static int set_pix_fmt(AVCodecContext *avctx, struct vpx_image *img, avctx->profile = AV_PROFILE_VP9_3; if (img->bit_depth == 10) { avctx->pix_fmt = avctx->colorspace == AVCOL_SPC_RGB ? - AV_PIX_FMT_GBRP10 : AV_PIX_FMT_YUV444P10; + (has_alpha_channel ? AV_PIX_FMT_GBRAP10 : AV_PIX_FMT_GBRP10) : + (has_alpha_channel ? AV_PIX_FMT_YUVA444P10 : AV_PIX_FMT_YUV444P10); return 0; } else if (img->bit_depth == 12) { avctx->pix_fmt = avctx->colorspace == AVCOL_SPC_RGB ? - AV_PIX_FMT_GBRP12 : AV_PIX_FMT_YUV444P12; + (has_alpha_channel ? AV_PIX_FMT_GBRAP12 : AV_PIX_FMT_GBRP12) : + (has_alpha_channel ? AV_PIX_FMT_YUVA444P12 : AV_PIX_FMT_YUV444P12); return 0; } else { return AVERROR_INVALIDDATA; -- 2.52.0 >>From e8aac616fcc815adae46758999f42ea38c0a453c Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 7 Feb 2026 18:17:41 +0100 Subject: [PATCH 4/4] avcodec/libvpxenc: add experimental support for alpha pixel formats other than YUV 4:2:0. I could not find any documentation which disallows the use of transparency for pixel formats other than YUV 4:2:0, so this patch adds support for transparency using 4:2:2, 4:4:4, RGB, and their high bit depth variants. It is not quite clear if the alpha channel should be encoded using the same pixel format as the normal channels, or it should be always YUV 4:2:0. I sticked to the same format as the normal color components. Unfortunately the browsers I tested (chrome, firefox) only support 4:2:0 properly, so let's require an experimental flag to generate files with the new, more exotic pixel formats. Signed-off-by: Marton Balint --- libavcodec/libvpxenc.c | 47 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 082709c41f..e54fb1b673 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -825,6 +825,7 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps, *img_fmt = VPX_IMG_FMT_I420; return 0; case AV_PIX_FMT_YUV422P: + case AV_PIX_FMT_YUVA422P: enccfg->g_profile = 1; *img_fmt = VPX_IMG_FMT_I422; return 0; @@ -833,12 +834,15 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps, *img_fmt = VPX_IMG_FMT_I440; return 0; case AV_PIX_FMT_GBRP: + case AV_PIX_FMT_GBRAP: ctx->vpx_cs = VPX_CS_SRGB; case AV_PIX_FMT_YUV444P: + case AV_PIX_FMT_YUVA444P: enccfg->g_profile = 1; *img_fmt = VPX_IMG_FMT_I444; return 0; case AV_PIX_FMT_YUV420P10: + case AV_PIX_FMT_YUVA420P10: case AV_PIX_FMT_YUV420P12: if (codec_caps & VPX_CODEC_CAP_HIGHBITDEPTH) { enccfg->g_profile = 2; @@ -848,6 +852,7 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps, } break; case AV_PIX_FMT_YUV422P10: + case AV_PIX_FMT_YUVA422P10: case AV_PIX_FMT_YUV422P12: if (codec_caps & VPX_CODEC_CAP_HIGHBITDEPTH) { enccfg->g_profile = 3; @@ -866,10 +871,14 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps, } break; case AV_PIX_FMT_GBRP10: + case AV_PIX_FMT_GBRAP10: case AV_PIX_FMT_GBRP12: + case AV_PIX_FMT_GBRAP12: ctx->vpx_cs = VPX_CS_SRGB; case AV_PIX_FMT_YUV444P10: + case AV_PIX_FMT_YUVA444P10: case AV_PIX_FMT_YUV444P12: + case AV_PIX_FMT_YUVA444P12: if (codec_caps & VPX_CODEC_CAP_HIGHBITDEPTH) { enccfg->g_profile = 3; *img_fmt = VPX_IMG_FMT_I44416; @@ -1004,12 +1013,21 @@ static av_cold int vpx_init(AVCodecContext *avctx, vpx_svc_extra_cfg_t svc_params; #endif const AVDictionaryEntry* en = NULL; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt); av_log(avctx, AV_LOG_INFO, "%s\n", vpx_codec_version_str()); av_log(avctx, AV_LOG_VERBOSE, "%s\n", vpx_codec_build_config()); - if (avctx->pix_fmt == AV_PIX_FMT_YUVA420P) + if (desc && (desc->flags & AV_PIX_FMT_FLAG_ALPHA)) { ctx->is_alpha = 1; + if (avctx->pix_fmt != AV_PIX_FMT_YUVA420P && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { + av_log(avctx, AV_LOG_ERROR, + "Pixel format '%s' is not widely supported. " + "Use -strict experimental to use it anyway, or use 'yuva420p' pixel format instead.\n", + av_get_pix_fmt_name(avctx->pix_fmt)); + return AVERROR(EINVAL); + } + } if ((res = vpx_codec_enc_config_default(iface, &enccfg, 0)) != VPX_CODEC_OK) { av_log(avctx, AV_LOG_ERROR, "Failed to get config: %s\n", @@ -1695,15 +1713,24 @@ static int realloc_alpha_uv(AVCodecContext *avctx, int width, int height) av_freep(&planes[VPX_PLANE_U]); av_freep(&planes[VPX_PLANE_V]); - vpx_img_wrap(rawimg_alpha, VPX_IMG_FMT_I420, width, height, 1, + vpx_img_wrap(rawimg_alpha, ctx->rawimg.fmt, width, height, 1, (unsigned char*)1); planes[VPX_PLANE_U] = av_malloc_array(stride[VPX_PLANE_U], height); planes[VPX_PLANE_V] = av_malloc_array(stride[VPX_PLANE_V], height); if (!planes[VPX_PLANE_U] || !planes[VPX_PLANE_V]) return AVERROR(ENOMEM); - memset(planes[VPX_PLANE_U], 0x80, stride[VPX_PLANE_U] * height); - memset(planes[VPX_PLANE_V], 0x80, stride[VPX_PLANE_V] * height); + if (ctx->rawimg.bit_depth > 8 && ctx->vpx_cs != VPX_CS_SRGB) { + int val = 0x80 << (ctx->rawimg.bit_depth - 8); + AV_WN16(planes[VPX_PLANE_U], val); + AV_WN16(planes[VPX_PLANE_V], val); + av_memcpy_backptr(planes[VPX_PLANE_U] + 2, 2, stride[VPX_PLANE_U] * height - 2); + av_memcpy_backptr(planes[VPX_PLANE_V] + 2, 2, stride[VPX_PLANE_V] * height - 2); + } else { + int val = (ctx->vpx_cs == VPX_CS_SRGB) ? 0x00 : 0x80; + memset(planes[VPX_PLANE_U], val, stride[VPX_PLANE_U] * height); + memset(planes[VPX_PLANE_V], val, stride[VPX_PLANE_V] * height); + } } return 0; @@ -2085,9 +2112,12 @@ static const enum AVPixelFormat vp9_pix_fmts_highcol[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, + AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GBRP, + AV_PIX_FMT_GBRAP, AV_PIX_FMT_NONE }; @@ -2095,19 +2125,28 @@ static const enum AVPixelFormat vp9_pix_fmts_highbd[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, + AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV420P10, + AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUV422P10, + AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV444P10, + AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV440P12, AV_PIX_FMT_YUV444P12, + AV_PIX_FMT_YUVA444P12, AV_PIX_FMT_GBRP, + AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRP10, + AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GBRP12, + AV_PIX_FMT_GBRAP12, AV_PIX_FMT_NONE }; -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org