fate/png: add mDCv and cLLi read and write test

This test confirms that we can write mDCv and cLLi 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 <leo.izen@gmail.com>
Reported-by: Jan Ekström <jeebjp@gmail.com>
Reviewed-by: Jan Ekström <jeebjp@gmail.com>
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Leo Izen 2024-07-15 22:23:51 -04:00
parent 97fd5d3363
commit e30bc8a963
No known key found for this signature in database
GPG Key ID: 764E48EA48221833
2 changed files with 28 additions and 0 deletions

View File

@ -416,6 +416,12 @@ FATE_PNG_PROBE-$(call ALLYES, LCMS2) += fate-png-icc-parse
fate-png-icc-parse: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_frames \ fate-png-icc-parse: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_frames \
-flags2 icc_profiles $(TARGET_SAMPLES)/png1/lena-int_rgb24.png -flags2 icc_profiles $(TARGET_SAMPLES)/png1/lena-int_rgb24.png
FATE_PNG_TRANSCODE-$(call TRANSCODE, PNG HEVC, IMAGE2PIPE HEVC, \
IMAGE_PNG_PIPE_DEMUXER HEVC_PARSER PNG_DECODER SCALE_FILTER) += fate-png-mdcv
fate-png-mdcv: CMD = transcode hevc $(TARGET_SAMPLES)/hevc/hdr10_plus_h265_sample.hevc image2pipe \
"-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-$(call DEMDEC, IMAGE2, PNG) += $(FATE_PNG)
FATE_PNG_PROBE-$(call DEMDEC, IMAGE2, PNG) += $(FATE_PNG_PROBE) FATE_PNG_PROBE-$(call DEMDEC, IMAGE2, PNG) += $(FATE_PNG_PROBE)
FATE_IMAGE_FRAMECRC += $(FATE_PNG-yes) FATE_IMAGE_FRAMECRC += $(FATE_PNG-yes)

22
tests/ref/fate/png-mdcv Normal file
View File

@ -0,0 +1,22 @@
fc68fe6c8c72343b96d2695f6913995b *tests/data/fate/png-mdcv.image2pipe
439248 tests/data/fate/png-mdcv.image2pipe
#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"