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; }