From patchwork Mon Jul 8 16:59:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Leo Izen X-Patchwork-Id: 50412 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:cc64:0:b0:482:c625:d099 with SMTP id k4csp5920039vqv; Mon, 8 Jul 2024 10:09:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU2maC/yqa4a9WkAGkadFLtZZzfRLsede7Avz12RFLJKj6A3Xqvk7M1AeqLKMuIvb6Tgsot944L7cXm2++Z5BupMQqG9LkSm3TQuA== X-Google-Smtp-Source: AGHT+IEkhSvMvq4vehG65qPWfgnk8FWNHpT//3PHq7eK8G1NjNgmW01TCzdPZdoOJE6FWK6q1Kim X-Received: by 2002:a05:6402:5ce:b0:57c:6d89:eaf0 with SMTP id 4fb4d7f45d1cf-594baf912efmr190057a12.14.1720458545692; Mon, 08 Jul 2024 10:09:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1720458545; cv=none; d=google.com; s=arc-20160816; b=QIWHor+EwHa1zWuWaSqSSgNW83HbZ+cX8Dpm7pTud2HhM9bwt1gOzyf7AHV4lNaVlP O+gUPcDuvLz0OktLb2+/beltKnXDDhUq6fEg2J7z0/sPXrO31O2+mEqF+RtjzcJEOZuN kImgdRjvk7V2oEq78DKdCK6i1dF/bUpwsOnarPviyUw4lMytdFDB9JT5L179Ciy0JASj Gmny2IVkGLKAaDdfisZT1diNv1tZEmq9eUKKxe84WjMBb1pjczfnLC8HiTJrcF3h3Pw5 rNbQJz++3RFiwnnaLCiRTu2UI3/MEi07Eu4ssM5xNy+x+iqbHI3ZL/eU51LvcXFGtvMS CduA== 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=f61/U3P2s4WdLh/iZcKQkdyovOxDhLde2rO1uAgjDvM=; fh=kC9Ao2sIcKNtL4nhvyjeTga5a0/N/p3kuWLTfrNwaQw=; b=HZhnCz4fw2k/a4LbFr7gYlZyrTMpnZ8F6iGqXquqh870jD5QkwDAOPudMHojFT1TnR j2qKaz03/RSbwcrDCjaf9d57OiBnJeYugG39p3KC3vv/9lpGvXTs4SfioIASMbKE3maN 2OsZErgwJvsJI1XQ/yUcwBe+9TKJeuU4oeL4/O0e2u7YFpHHZyAiCNaxBCrzOL6BQ0j+ nKqgB3SyUXrtsgqdOluUUDNW44Mtxgz1XWqc7+QJ9lExNB7UsNwM3F3sbMKcaczB8FO7 atl9GCBuT1qt7W0OqUq20ZsjFz6CMG/s3nOJvVggzG4KPQI58lfVe6Y3miUBJU4n5vUI a5cw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=h7v6hZoT; 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 4fb4d7f45d1cf-594bc3f29c7si55360a12.143.2024.07.08.10.09.05; Mon, 08 Jul 2024 10:09:05 -0700 (PDT) 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=h7v6hZoT; 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 5F48968DC31; Mon, 8 Jul 2024 19:59:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vk1-f177.google.com (mail-vk1-f177.google.com [209.85.221.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AD99368DC27 for ; Mon, 8 Jul 2024 19:59:48 +0300 (EEST) Received: by mail-vk1-f177.google.com with SMTP id 71dfb90a1353d-4f2e0a2bf79so194104e0c.2 for ; Mon, 08 Jul 2024 09:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720457986; x=1721062786; 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=y9E4H1i3LuZIjnQhkC8EHkDJry713NFzBKZBAfBSjdQ=; b=h7v6hZoTV5ptcafXtwsuMr10MDkRRmGQEFRj4/Uz+9qDCnamg4gZGlO9kWcNYd+QTf 9Itb+Z00VJk1C6hetyJBxfb6zqoyil9rxwoU5nws/tqBPtL2aQTnQNxVIa7d02gGdjE9 wrr9aD2/tf5s3ONz7gXVcNWVqQrRps2WfScsx6Mj9O9t8SvVJqkcmWG24/Gm1t6o9FZz jT1mmymtfD8pj6DEE5SNl6QONTBYJ1I4eBLykWs+7img/E6JyCDXGaJDgBL0+qlrwBAa WKL/BVqky5gzE+GzW8RWP6BNfXRIzY803eQSdWJh+zzbAiZ6/M1lRabkH0LAJU0m5U+A t2Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720457986; x=1721062786; 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=y9E4H1i3LuZIjnQhkC8EHkDJry713NFzBKZBAfBSjdQ=; b=oyfmSvxyTebGBs+PNz5x5UYIZRpsSjbabcJ60FfcosCqYuSkCfUHUCBtkScRUTUPQp GY+2gOEPqrPinj1Y1e6MekSCohg5zzceZIXDoGz8t7oP5KwOu83s4IiY3u5wGzYgICJR g4fyu74Q39ujtT7YefmNOLke/7wYMu3ABSFHiW4WIHFE8+KCd63aRqUW78R4stauhxWT iEH2vEprJhPPg6X1RydclY3VYVLarlybeVMYApR5u9zoSwEFHIiuQgIyqx6rKMgNs8iL e9w5a72LdUZ4fIBsPAPdM+EZFxWMF69+88kXpHAVGuNhaFgt2Iar/DAUg+WUL6LwnEio N+jA== X-Gm-Message-State: AOJu0YxPcSTGMl86W5Djq6acpEIefq7ACKUIMvrUtIpA+ij7ijpQqFQc 5P88rbcJ38PhdslyHgKZhpyAj0e53FoKrebYwXiUeFO/D+U5xkq27yTYzg== X-Received: by 2002:a05:6102:4421:b0:48f:df2c:6d58 with SMTP id ada2fe7eead31-49032229d22mr19044137.3.1720457986192; Mon, 08 Jul 2024 09:59:46 -0700 (PDT) Received: from gauss.local (c-68-56-149-176.hsd1.mi.comcast.net. [68.56.149.176]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-447f9bf950bsm1188311cf.89.2024.07.08.09.59.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jul 2024 09:59:45 -0700 (PDT) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Jul 2024 12:59:44 -0400 Message-ID: <20240708165944.474761-1-leo.izen@gmail.com> X-Mailer: git-send-email 2.45.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] fate/png: add mDCv read and write test 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: =?utf-8?q?Jan_Ekstr=C3=B6m?= , Leo Izen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 6Fa7+Y7aEP6E This test confirms that we can write mDCv chunks and read them back via the png decoder. It uses an HEVC conformance sample with this metadata as the base source for the side data in the frames. Signed-off-by: Leo Izen Reported-by: Jan Ekström --- tests/fate/image.mak | 5 +++++ tests/ref/fate/png-mdcv | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 tests/ref/fate/png-mdcv diff --git a/tests/fate/image.mak b/tests/fate/image.mak index 753936ec20..ec2375f703 100644 --- a/tests/fate/image.mak +++ b/tests/fate/image.mak @@ -416,6 +416,11 @@ FATE_PNG_PROBE-$(call ALLYES, LCMS2) += fate-png-icc-parse fate-png-icc-parse: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_frames \ -flags2 icc_profiles $(TARGET_SAMPLES)/png1/lena-int_rgb24.png +FATE_PNG_TRANSCODE-$(call TRANSCODE, PNG HEVC, IMAGE2 HEVC IMAGE_PNG_PIPE) += fate-png-mdcv +fate-png-mdcv: CMD = transcode hevc $(TARGET_SAMPLES)/hevc/hdr10_plus_h265_sample.hevc image2 \ + "-sws_flags +accurate_rnd+bitexact -pix_fmt rgb24 -vf scale -c png" "" \ + "-show_frames -show_entries frame=side_data_list -of flat" + FATE_PNG-$(call DEMDEC, IMAGE2, PNG) += $(FATE_PNG) FATE_PNG_PROBE-$(call DEMDEC, IMAGE2, PNG) += $(FATE_PNG_PROBE) FATE_IMAGE_FRAMECRC += $(FATE_PNG-yes) diff --git a/tests/ref/fate/png-mdcv b/tests/ref/fate/png-mdcv new file mode 100644 index 0000000000..b719152557 --- /dev/null +++ b/tests/ref/fate/png-mdcv @@ -0,0 +1,22 @@ +fc68fe6c8c72343b96d2695f6913995b *tests/data/fate/png-mdcv.image2 +439248 tests/data/fate/png-mdcv.image2 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 1280x720 +#sar 0: 0/1 +0, 0, 0, 1, 2764800, 0x2bfc7b42 +frames.frame.0.side_data_list.side_data.0.side_data_type="Content light level metadata" +frames.frame.0.side_data_list.side_data.0.max_content=1000 +frames.frame.0.side_data_list.side_data.0.max_average=200 +frames.frame.0.side_data_list.side_data.1.side_data_type="Mastering display metadata" +frames.frame.0.side_data_list.side_data.1.red_x="13250/50000" +frames.frame.0.side_data_list.side_data.1.red_y="7500/50000" +frames.frame.0.side_data_list.side_data.1.green_x="34000/50000" +frames.frame.0.side_data_list.side_data.1.green_y="16000/50000" +frames.frame.0.side_data_list.side_data.1.blue_x="2/50000" +frames.frame.0.side_data_list.side_data.1.blue_y="0/50000" +frames.frame.0.side_data_list.side_data.1.white_point_x="15635/50000" +frames.frame.0.side_data_list.side_data.1.white_point_y="16450/50000" +frames.frame.0.side_data_list.side_data.1.min_luminance="50/10000" +frames.frame.0.side_data_list.side_data.1.max_luminance="10000000/10000"