From patchwork Mon Dec 11 12:02:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Izen X-Patchwork-Id: 45059 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp2861880pzf; Mon, 11 Dec 2023 04:02:53 -0800 (PST) X-Google-Smtp-Source: AGHT+IHrIunAYZK4hGaULIwdfz+BzzS4lVzQ1Ti+nXNdGtf1Ggfa0aRPge3N7IDPlU1Daosvarem X-Received: by 2002:a50:c30b:0:b0:54c:47cc:cae6 with SMTP id a11-20020a50c30b000000b0054c47cccae6mr1958603edb.44.1702296173089; Mon, 11 Dec 2023 04:02:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702296173; cv=none; d=google.com; s=arc-20160816; b=P/mkiYoNMKKQCUZ2HcnILcQL32Pj3huYW5mq9Fv6TsxbTxPteGIiBgqaWqylg+ZuJh wpEpYJ3dI0vYGk69+RnLuuYZrzBzjSTfPdSIoEJBKwzvmOGxNMuzEvctpNSsAjY4a7T+ t8J/1dqcFCJFvSFNXYczOHRQGJwLbKwHQmarAO24raPJW6dq72E4im2EBN/f64x5Nkaz pbCJw0tLY8q2Jw1gYxR0dgO5O2a00EwZzspC73EjxWOwxueuxLKy8huch+au0/whRidE qza+X4OYHiQfwN2Vi4I+sQu3JCVo3sdboNdiKb/2RjHnLlSFwpjOu4zdakNpsACqw12S 6SEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=2kgDbrV+aoHcr86jEO4zOf5VaY9u0CP14Kx9+ydTSBk=; fh=+bdjGe20eEUjtjncwA1dnEEVYNfJL4vyhV+sIRR4l+g=; b=f58kWN6mJLGihjTZDZdmvP5qvFWYRNpD3O1DkRj1/9+nVZrgHXpY728atti6RpipID +9392rbZuRnDpTeaiH8paHaNrjRb9YBro8GbCkj0klfeV3cIabAEIQh9FA6eSifaY95n afBjuThDQUu0DhOKyZ0Y0phd66gTj0+f0Vx6060EyKAOef+FztPW25WPb9WnmnHNJW57 fUHlJVg4r5R4McNWtEB9wZZXCsCTJ7C/g45olCM9AFcLXdPn0rjDZrEyh3OiQm566XQ7 czGrkmwWIdeBPyQcXEPR0FNrPAQZUxCRZ//WYqt0ydTZK/hb8mCRXoCIFqdSXynHcFQ5 HI/w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=XuXWFAh3; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b7-20020a056402278700b0054c4ac17250si3804075ede.237.2023.12.11.04.02.52; Mon, 11 Dec 2023 04:02:53 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=XuXWFAh3; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0D12868D17D; Mon, 11 Dec 2023 14:02:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7CD9668D17D for ; Mon, 11 Dec 2023 14:02:42 +0200 (EET) Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-4257902247cso10092791cf.0 for ; Mon, 11 Dec 2023 04:02:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702296161; x=1702900961; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=uueADPvMC/yCZpMXox+p6MMA1Qk06uO1955a3Nosm9g=; b=XuXWFAh3sj7sLIj9tk1nNW1etLp+PuTv8D93KUyt5QtStIgObC4Zx7sGmLJ2df6V2F a3LMP1V6VwHAe7LKteFOnxPtkuz9I4F3Xc1XbHQg87mRE/KNrhK/nozqCg2ADxZO0/nN kd5Ku6MbVUUzrs7UHA1w0yNAGg5eObtH/BnL1IYw4ZyyQiQxnxxbKNEpv40by3hY1I/R 2HHNGgif6LnB09lCGquKC0Vk0myKq7KPt7FI7E2HqrWX68ncVp/sxBeK5psJ+kyod7E1 1RpIOD5PSWJlGotsPc2V9D/z0SwNbzC3+p+VFDD7nn/t5YaWkiVipzNW9MSti+4UN/0B DhWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702296161; x=1702900961; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uueADPvMC/yCZpMXox+p6MMA1Qk06uO1955a3Nosm9g=; b=b1IL9PMoOH27IcISCeUEdMUYmJZ5VFkGH2zyY4KAnYK/Q0RSwrmhPo4v48SCbcL2aO mSjTBeCNt87m7Fp5CBoi+FFFLI5vfl+jhNX37kArWHay+wl3lDdWl5QsXYPYhwwHPnMN Me+PoKjKVQ+iztRRhwmCN874aFLnxezT3UgJt5COQdO2obn/sdGWGnndW4AdOdMdYgjS VfMGU8EicULO8XMRQsFj0X1NDO432I4wF80MhJ1A2Qpmo6/ZGT9ihjIrjSLZW1en5s47 N0btbytJSlzmIQrK5V2EFGsEs8RJTJBe96aJjzJJUrtMsSlKX1STcruddHd8qjCaFVuU uDng== X-Gm-Message-State: AOJu0YwkY7rqzJDOc1iXi03Gu7HFHVLsv4cRiIC6kog/msgiZBMtKmjO 97gX3oRAz5KJ1CyUBzqYZcP6DSFF9Fs= X-Received: by 2002:a05:620a:199f:b0:77d:8c81:ea2d with SMTP id bm31-20020a05620a199f00b0077d8c81ea2dmr8191250qkb.0.1702296161088; Mon, 11 Dec 2023 04:02:41 -0800 (PST) Received: from gauss.local (c-68-56-149-176.hsd1.mi.comcast.net. [68.56.149.176]) by smtp.gmail.com with ESMTPSA id ty5-20020a05620a3f4500b0077f15eb3528sm2865698qkn.70.2023.12.11.04.02.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Dec 2023 04:02:40 -0800 (PST) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Mon, 11 Dec 2023 07:02:32 -0500 Message-ID: <20231211120233.408208-1-leo.izen@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/libjxldec: produce rgbf32 and rgbaf32 frames 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 Cc: Leo Izen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 19PQGp54wuyJ These pixel formats have always been supported by libjxl, but at the time this plugin was written, they were not in FFmpeg yet. Now that they are in FFmpeg, we should support them. Signed-off-by: Leo Izen --- libavcodec/libjxldec.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/libavcodec/libjxldec.c b/libavcodec/libjxldec.c index 494060ac8c..f763294eee 100644 --- a/libavcodec/libjxldec.c +++ b/libavcodec/libjxldec.c @@ -130,10 +130,11 @@ static enum AVPixelFormat libjxl_get_pix_fmt(AVCodecContext *avctx, LibJxlDecode return basic_info->alpha_bits ? AV_PIX_FMT_YA8 : AV_PIX_FMT_GRAY8; } if (basic_info->exponent_bits_per_sample || basic_info->bits_per_sample > 16) { - if (basic_info->alpha_bits) - return AV_PIX_FMT_NONE; - format->data_type = JXL_TYPE_FLOAT; - return AV_PIX_FMT_GRAYF32; + if (!basic_info->alpha_bits) { + format->data_type = JXL_TYPE_FLOAT; + return AV_PIX_FMT_GRAYF32; + } + av_log(avctx, AV_LOG_WARNING, "Downsampling gray+alpha float to 16-bit integer via libjxl\n"); } format->data_type = JXL_TYPE_UINT16; return basic_info->alpha_bits ? AV_PIX_FMT_YA16 : AV_PIX_FMT_GRAY16; @@ -145,10 +146,10 @@ static enum AVPixelFormat libjxl_get_pix_fmt(AVCodecContext *avctx, LibJxlDecode format->data_type = JXL_TYPE_UINT8; return basic_info->alpha_bits ? AV_PIX_FMT_RGBA : AV_PIX_FMT_RGB24; } - if (basic_info->exponent_bits_per_sample) - av_log(avctx, AV_LOG_WARNING, "Downsampling float to 16-bit integer via libjxl\n"); - else if (basic_info->bits_per_sample > 16) - av_log(avctx, AV_LOG_WARNING, "Downsampling larger integer to 16-bit via libjxl\n"); + if (basic_info->exponent_bits_per_sample || basic_info->bits_per_sample > 16) { + format->data_type = JXL_TYPE_FLOAT; + return basic_info->alpha_bits ? AV_PIX_FMT_RGBAF32 : AV_PIX_FMT_RGBF32; + } format->data_type = JXL_TYPE_UINT16; return basic_info->alpha_bits ? AV_PIX_FMT_RGBA64 : AV_PIX_FMT_RGB48; } From patchwork Mon Dec 11 12:02:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Izen X-Patchwork-Id: 45060 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp2862079pzf; Mon, 11 Dec 2023 04:03:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IFjmwJ5JzRXd/DMAW5eaXhzYqrH1IEn9+tFKjOSK3A6z7JIE5ZyvtgPV7oNrOAnGQWNqUsY X-Received: by 2002:a05:651c:10b6:b0:2cb:2bb2:6607 with SMTP id k22-20020a05651c10b600b002cb2bb26607mr1406409ljn.13.1702296187584; Mon, 11 Dec 2023 04:03:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702296187; cv=none; d=google.com; s=arc-20160816; b=Zf3KyChplf/yJ8BcivmmevC146gnJOgtd7DDA/UERRuZXKJbsWrwkG7xd3ju7B0Dgv LO5qpovJM+II5G77z92acvDNHP1L7nFruS86LlzsnTSqIAk/OaokUjUDsbSEiKPZ3vJR mvEXSpYtk6vWdGri+prO3DNMzL/9g4qotdlzbmSEcJusj8H+JGpaGxslYFccCg9FyaL+ 0divUASE/pKnJyWvCtBohuLzvSQTciNHp2flUccsrAZDbOIHbYrOf0us/kdtYz5rBouQ 2j44EhS43wY7Vj+J/JU9mObtphwW47xH4s7a+2vS3mJSXKOK2/PRA8ergi45fFGKL8Oa d0Ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=TUB8eApUBtUllGU8yarYUSnyZboZVWrbMZZqmREbxHg=; fh=+bdjGe20eEUjtjncwA1dnEEVYNfJL4vyhV+sIRR4l+g=; b=u6CEDHaDu9G5yQuU/i1KAVkgGDMlCYRFoywXw3d4qy1+eefmEa9efFiAXxBYVyBBlX dtISF2O4S0nSMLbCnMkTmcZqPz1VG4PXJUKHblNopOgZo+4qpcb0y90jlLDJsLnX4ZKo 1xlMgI/V+dfq+YMGW9G8u+2om0z9bZbE+Mm9jyRdW5NpijdByRoBV1T/+F3c1R6CVXs4 QuZzOU49OtzBsA0Gi8DcXEig0fnoPd5wgSqkIDTk01MbRd7ZVRmnWjM8p7e/BcXVoi8b ZlzuhJdZ1/citQpDpkfaNJFGtLE7VnvMYkmmajSaNXAwI5fDnKmc51E0ui/kFAHygrlj b+5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=LmqIKtWg; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id oy25-20020a170907105900b00a1cc16013a4si3437886ejb.901.2023.12.11.04.03.01; Mon, 11 Dec 2023 04:03:07 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=LmqIKtWg; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3FBA668D1B4; Mon, 11 Dec 2023 14:02:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4E35468D17F for ; Mon, 11 Dec 2023 14:02:43 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-67a9a51663fso8230896d6.1 for ; Mon, 11 Dec 2023 04:02:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702296162; x=1702900962; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dW3DhTPkDNdcJ7e9y/SX/xDUrqrJliKeISf4o2DKXBE=; b=LmqIKtWg5LHEALVahIkH+MZztNHEW0QjwhDl6W0CRMclJI0p7BtwDufwSQz3WFcTus yBOcd7Wm3cV/6SSArNy8UFf2/GKZTfGMD/htm9rN85fjkm1vTthS4YpSGD6WPBRyNXvq Q1bWXZeYf36xcy/oAZ1tUzKMKZIxMWZKyycTzo5xpOi0L9WETjQCqpfT3GoXjfFYQ/wY H7LgXESjZBWiBL8o7koAQUrSe63wqr1q0mO4bR+gaASDObCnoENEvwD/ZQCkQWhtuBLS JQ5/e4eJpGqS3hpHWInNPHXQSzEWCwPpbAvFJjIYrHwJKfgQqtEhaqwoDeQk9Cyb7rxa JzXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702296162; x=1702900962; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dW3DhTPkDNdcJ7e9y/SX/xDUrqrJliKeISf4o2DKXBE=; b=qJr4DL/jqu986RXBIh/qLnhcgcHPdnxvGoVr2pR1MeQYQfBGzq2GudWVssqPPiL6nA 2m2ksDg2wkZujbl7yAgX7/QmOlVOpYLpy0Qngt2V6UGwSBlcGB8p2ATqi/htIqpAk45N m6nH5x440Ei4FY+cBEWbnUMGtj/yGgPoELyhFSh04Jd0N8i3RYvjjvzJwOuRDbHecMZN nWSdel3WKntWRCZ/s6av+WtzUMtd754pR+infl4gu9MBCyJTcBUTXuqU81Hg8OfPHWbl 4gCTAS2vJhFueaSyuCJi0/QlgVFny8cVujr+cMdRKDjihgMHDtluvtc/xlDi6TZEJOw2 eE6w== X-Gm-Message-State: AOJu0YwEBv3Xf3wHDOHeF1lwhfHumllP5DZ39YrAEmEw6tqeUBGv9cws DLA2+M5cBzABVvM0kp4E74lLCFOqz5c= X-Received: by 2002:a05:620a:45a6:b0:774:17d6:31dc with SMTP id bp38-20020a05620a45a600b0077417d631dcmr8428504qkb.4.1702296161807; Mon, 11 Dec 2023 04:02:41 -0800 (PST) Received: from gauss.local (c-68-56-149-176.hsd1.mi.comcast.net. [68.56.149.176]) by smtp.gmail.com with ESMTPSA id ty5-20020a05620a3f4500b0077f15eb3528sm2865698qkn.70.2023.12.11.04.02.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Dec 2023 04:02:41 -0800 (PST) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Mon, 11 Dec 2023 07:02:33 -0500 Message-ID: <20231211120233.408208-2-leo.izen@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231211120233.408208-1-leo.izen@gmail.com> References: <20231211120233.408208-1-leo.izen@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/libjxlenc: accept rgbf32 and rgbaf32 frames 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 Cc: Leo Izen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: SBCYaa6KE+qZ These pixel formats have always been supported by libjxl, but at the time this plugin was written, they were not in FFmpeg yet. Now that they are in FFmpeg, we should support them. Signed-off-by: Leo Izen --- libavcodec/libjxlenc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/libjxlenc.c b/libavcodec/libjxlenc.c index d707f3a61b..780dbb9e2e 100644 --- a/libavcodec/libjxlenc.c +++ b/libavcodec/libjxlenc.c @@ -493,6 +493,7 @@ const FFCodec ff_libjxl_encoder = { .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB48, AV_PIX_FMT_RGBA64, + AV_PIX_FMT_RGBF32, AV_PIX_FMT_RGBAF32, AV_PIX_FMT_GRAY8, AV_PIX_FMT_YA8, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YA16, AV_PIX_FMT_GRAYF32,