From patchwork Fri Nov 26 17:05:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: quietvoid X-Patchwork-Id: 31752 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp2493646iob; Fri, 26 Nov 2021 09:06:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJy93vH+NojlCFrYpks1hWxS3htvU4iIVHDL0vlXnFYobKnu5rXWZSjwFWfhaZTbX9jjVK6D X-Received: by 2002:a05:6402:348b:: with SMTP id v11mr48757374edc.276.1637946392407; Fri, 26 Nov 2021 09:06:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637946392; cv=none; d=google.com; s=arc-20160816; b=zuKcDNHWJqulN6Owoo0h2XwFO9dZ44gzjsbm4jQCDEOOl+f+DkdQd6gQKJWiEmAEIj /Po8cKnpWt3mnP1724dd3Q4YBnuJTckfkrZihN/uiv5ukvAg8f6JBqPi4eKZIyXSCgOg qac1jrSboorFyeTEZzicyPvRc2s3aX4E1M4RhOEKLvBDVwa4ge2tokr+qf6xAl4ArXGy BiAuSClqi6GOgBmREMOLtpc1JGai7DYGy4Y8pX7+d8RGhCK20gVHC4vW43ZHEI2RGxOE I5HPhpPBaiLiZj77xm5GBMWkXMFB/T5j6EmXBNFbfFnzKnmPiM+1VMpInUWlWcjkFFEh YJ/A== 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=mzZTKSzcvVV40vBn2wK/gXIHtB+YQKRfpMz4r7CKY+4=; b=en5mnIMbOJWnS0gR9kmVxXbQmgLBGwHHu2RkT1Xewj5d3qLUdZbWaxI+WKJHhCnu6q 2TtVeBwxIsTJPHg7HfMhO2nBsdAXCDjtzDJpJGTCDwi8NKYnXeblSpIuhQfb0wSA93i+ fjPH7ddXEfv+BEJU5tCKtVPVIKK8CMlO2NORRIX3MyveKjb9mRYyumbk0Ss8pe/R8MJh xju4LVlo6BSIGi55IrEjJZRGECtZ78RzX1XNvfnVbzOXqLgOC2jwaa5t2HtyfObphZCW 1qzClwNAwjt4QlPKFuPDEooHC12W1lbxpTyeJcZ/NmEsObTNO++4zLcxn3xHNirq80VW TNVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=EYM8MoNM; 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 sg41si15582475ejc.677.2021.11.26.09.06.32; Fri, 26 Nov 2021 09:06:32 -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=20210112 header.b=EYM8MoNM; 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 E56EC68A5CC; Fri, 26 Nov 2021 19:06:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CFBBB680C1C for ; Fri, 26 Nov 2021 19:06:22 +0200 (EET) Received: by mail-wr1-f46.google.com with SMTP id a9so20004083wrr.8 for ; Fri, 26 Nov 2021 09:06:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jnO7dhSFQxHLR1yqMLiG1ANFZRH6+IOaXssJzCRuKCI=; b=EYM8MoNMvVNFj2UDzvJuiX0UVhKTF6F0kApN5dsrz9Aygp+yCD+r4cWPbbXzz1VCKI UxJRTj5cWpAkdmTgr05Ir9y9MHB+v6ANDvBYMxeCdZJ3Mi5hWIpi0OOZ1yn059Gm6C7X t5Hnt1s+5GBrtWyuY2QbIk/BSBPFaNIPaZcVA0gRUrCLb2HxPVNaO2aW9/duWINjiHvI denm9YsrqK3TR6OVcLVReDtX3wR04S3y+UbuaRu66F559EP69HWmPTDuu85JykCTnIkP 00cKWg+XZJ49O331/yQVAp4d5omCGl2xRQ61UoZrJt5SkalgIdASKoyZcCb47q/RrEfw fQ8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jnO7dhSFQxHLR1yqMLiG1ANFZRH6+IOaXssJzCRuKCI=; b=Ko79dIwVFYCmvuNVVu0x8nkJke4XvWaamuXqVOuB1BBTPU3gP331hBKiC7EBBImWQD 3L3n/TKwuEnMNCBkuQ4E1paJ9FFtNf+DfyKlMAC4GAnBBM817VUZBTIE7kw31/uGP6VE D2sk0St7w7+D0CGWdeDB0UGihPu2qcT4iC7xMtUrJO8g+caZkcS2wr2xgQCvylTRcHKx UFR+WmtUe9redD9RBzhYio1xsE0Om0WDxMRjCMkJ8WCfRgEdudEZZPL1A7RH7v1PCsop 1HKyCdsnHzaqWXmqp1XMU84kyHQ+HKNmWoTPFuhYBb+HDWwMqtBkXZo6IwyPWqjHB9Vu flJg== X-Gm-Message-State: AOAM5311jOCGg3KJlO5l4roK2xNA9NI12rLGo2maPi9Bh+6xiN85auRt vtbwJLH7DUJBP8CH4dZIQk03CfRc5mxAig== X-Received: by 2002:a5d:59a2:: with SMTP id p2mr15237852wrr.252.1637946381985; Fri, 26 Nov 2021 09:06:21 -0800 (PST) Received: from localhost.localdomain ([2a01:4f8:162:73cc::2]) by smtp.gmail.com with ESMTPSA id z14sm6727193wrp.70.2021.11.26.09.06.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Nov 2021 09:06:21 -0800 (PST) From: quietvoid X-Google-Original-From: quietvoid To: ffmpeg-devel@ffmpeg.org Date: Fri, 26 Nov 2021 18:05:35 +0100 Message-Id: <20211126170534.2041327-1-tcChlisop0@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] fate: Add regression tests for AVDOVIDecoderConfigurationRecord side data 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: quietvoid Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 2s2Zv9rmD0RD Signed-off-by: quietvoid --- Files are available here: https://drive.google.com/drive/folders/1NDhtSoJ-mP5Yi62V6j1wjjPJNq84nP3J They're all blank frames encoded with x265, remuxed with FFmpeg after the mov box is added by dlb_mp4base. Let me know if the hosting is not appropriate. I thought it was better than zipping everything. --- tests/fate/mov.mak | 17 ++++++++ tests/fate/mpegts.mak | 2 + tests/ref/fate/mov-dovi-config-profile5 | 13 ++++++ tests/ref/fate/mov-dovi-config-profile7 | 15 +++++++ tests/ref/fate/mov-dovi-config-profile81 | 13 ++++++ tests/ref/fate/mov-dovi-config-profile84 | 22 ++++++++++ tests/ref/fate/mov-dovi-write-config | 49 ++++++++++++++++++++++ tests/ref/fate/mpegts-dovi-config-profile7 | 15 +++++++ 8 files changed, 146 insertions(+) create mode 100644 tests/ref/fate/mov-dovi-config-profile5 create mode 100644 tests/ref/fate/mov-dovi-config-profile7 create mode 100644 tests/ref/fate/mov-dovi-config-profile81 create mode 100644 tests/ref/fate/mov-dovi-config-profile84 create mode 100644 tests/ref/fate/mov-dovi-write-config create mode 100644 tests/ref/fate/mpegts-dovi-config-profile7 diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index 5ca992e181..8ef7cb1edf 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -145,6 +145,23 @@ FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL PIPE_PROTOCOL \ += fate-mov-mp4-disposition-mpegts-remux fate-mov-mp4-disposition-mpegts-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/pmtchange.ts mp4 "-map 0:1 -map 0:2 -c copy -disposition:a:0 +hearing_impaired" "-map 0 -c copy" "" "-of json -show_entries stream_disposition:stream=index" +# Tests for AVDOVIDecoderConfigurationRecord parsing in mov +FATE_MOV_FFMPEG_FFPROBE-$(call DEMDEC, MOV) \ + += fate-mov-dovi-config-profile5 \ + fate-mov-dovi-config-profile7 \ + fate-mov-dovi-config-profile81 \ + fate-mov-dovi-config-profile84 +fate-mov-dovi-config-profile5: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/dovi-p5.mp4 +fate-mov-dovi-config-profile7: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/dovi-p7.mp4 +fate-mov-dovi-config-profile81: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/dovi-p81.mp4 +fate-mov-dovi-config-profile84: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/hevc/dv84.mov + +FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL PIPE_PROTOCOL \ + MPEGTS_DEMUXER MOV_DEMUXER \ + MP4_MUXER FRAMECRC_MUXER) \ + += fate-mov-dovi-write-config +fate-mov-dovi-write-config: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/dovi-p7.ts mp4 "-map 0:0 -map 0:1 -c copy -strict unofficial" "-map 0 -c copy" "" "-show_entries stream_side_data_list -select_streams v -v 0" + FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MOV_FFMPEG_FFPROBE-yes) fate-mov: $(FATE_MOV) $(FATE_MOV_FFPROBE) $(FATE_MOV_FASTSTART) $(FATE_MOV_FFMPEG_FFPROBE-yes) diff --git a/tests/fate/mpegts.mak b/tests/fate/mpegts.mak index bbcbfc47b2..1ee44ff2a0 100644 --- a/tests/fate/mpegts.mak +++ b/tests/fate/mpegts.mak @@ -19,6 +19,8 @@ FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS) += fate-mpegts-probe-pmt-merge fate-mpegts-probe-pmt-merge: SRC = $(TARGET_SAMPLES)/mpegts/pmtchange.ts fate-mpegts-probe-pmt-merge: CMD = run $(PROBE_CODEC_NAME_COMMAND) -merge_pmt_versions 1 -i "$(SRC)" +FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS) += fate-mpegts-dovi-config-profile7 +fate-mpegts-dovi-config-profile7: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mpegts/dovi-p7.ts FATE_SAMPLES_FFPROBE += $(FATE_MPEGTS_PROBE-yes) diff --git a/tests/ref/fate/mov-dovi-config-profile5 b/tests/ref/fate/mov-dovi-config-profile5 new file mode 100644 index 0000000000..a27976b71a --- /dev/null +++ b/tests/ref/fate/mov-dovi-config-profile5 @@ -0,0 +1,13 @@ +[STREAM] +[SIDE_DATA] +side_data_type=DOVI configuration record +dv_version_major=1 +dv_version_minor=0 +dv_profile=5 +dv_level=4 +rpu_present_flag=1 +el_present_flag=0 +bl_present_flag=1 +dv_bl_signal_compatibility_id=0 +[/SIDE_DATA] +[/STREAM] diff --git a/tests/ref/fate/mov-dovi-config-profile7 b/tests/ref/fate/mov-dovi-config-profile7 new file mode 100644 index 0000000000..1d8a4b6828 --- /dev/null +++ b/tests/ref/fate/mov-dovi-config-profile7 @@ -0,0 +1,15 @@ +[STREAM] +[/STREAM] +[STREAM] +[SIDE_DATA] +side_data_type=DOVI configuration record +dv_version_major=1 +dv_version_minor=0 +dv_profile=7 +dv_level=4 +rpu_present_flag=1 +el_present_flag=1 +bl_present_flag=0 +dv_bl_signal_compatibility_id=6 +[/SIDE_DATA] +[/STREAM] diff --git a/tests/ref/fate/mov-dovi-config-profile81 b/tests/ref/fate/mov-dovi-config-profile81 new file mode 100644 index 0000000000..fb9fe549d1 --- /dev/null +++ b/tests/ref/fate/mov-dovi-config-profile81 @@ -0,0 +1,13 @@ +[STREAM] +[SIDE_DATA] +side_data_type=DOVI configuration record +dv_version_major=1 +dv_version_minor=0 +dv_profile=8 +dv_level=4 +rpu_present_flag=1 +el_present_flag=0 +bl_present_flag=1 +dv_bl_signal_compatibility_id=1 +[/SIDE_DATA] +[/STREAM] diff --git a/tests/ref/fate/mov-dovi-config-profile84 b/tests/ref/fate/mov-dovi-config-profile84 new file mode 100644 index 0000000000..62d1bf2c87 --- /dev/null +++ b/tests/ref/fate/mov-dovi-config-profile84 @@ -0,0 +1,22 @@ +[STREAM] +[SIDE_DATA] +side_data_type=DOVI configuration record +dv_version_major=1 +dv_version_minor=0 +dv_profile=8 +dv_level=4 +rpu_present_flag=1 +el_present_flag=0 +bl_present_flag=1 +dv_bl_signal_compatibility_id=4 +[/SIDE_DATA] +[SIDE_DATA] +side_data_type=Display Matrix +displaymatrix= +00000000: 0 65536 0 +00000001: -65536 0 0 +00000002: 70778880 0 1073741824 + +rotation=-90 +[/SIDE_DATA] +[/STREAM] diff --git a/tests/ref/fate/mov-dovi-write-config b/tests/ref/fate/mov-dovi-write-config new file mode 100644 index 0000000000..96fa141744 --- /dev/null +++ b/tests/ref/fate/mov-dovi-write-config @@ -0,0 +1,49 @@ +45f55828cac6b733836155eacca44dcc *tests/data/fate/mov-dovi-write-config.mp4 +8963 tests/data/fate/mov-dovi-write-config.mp4 +#extradata 0: 116, 0x2b8d1669 +#extradata 1: 116, 0x2b8d1669 +#tb 0: 1/90000 +#media_type 0: video +#codec_id 0: hevc +#dimensions 0: 1920x1080 +#sar 0: 0/1 +#tb 1: 1/90000 +#media_type 1: video +#codec_id 1: hevc +#dimensions 1: 1920x1080 +#sar 1: 0/1 +0, -7500, 0, 3750, 699, 0x728548f1 +1, -7500, 0, 3750, 1085, 0xfb2dba82, S=1, 8 +0, -3750, 15000, 3750, 95, 0xc0312044, F=0x0 +1, -3750, 15000, 3750, 481, 0xf23f91d5, F=0x0 +0, 0, 7500, 3750, 99, 0x5e0a2221, F=0x0 +1, 0, 7500, 3750, 485, 0x5f7b93b2, F=0x0 +0, 3750, 3750, 3750, 99, 0xe60e208b, F=0x0 +1, 3750, 3750, 3750, 485, 0x8335921c, F=0x0 +0, 7500, 11250, 3750, 99, 0xa1e422e1, F=0x0 +1, 7500, 11250, 3750, 485, 0xc4e49472, F=0x0 +0, 11250, 30000, 3750, 96, 0xdc762089, F=0x0 +1, 11250, 30000, 3750, 482, 0x769c921a, F=0x0 +0, 15000, 22500, 3750, 100, 0x89cd22a0, F=0x0 +1, 15000, 22500, 3750, 486, 0x4aca9431, F=0x0 +0, 18750, 18750, 3750, 100, 0x6d4521ff, F=0x0 +1, 18750, 18750, 3750, 486, 0x3b719390, F=0x0 +0, 22500, 26250, 3750, 99, 0x92ab22c0, F=0x0 +1, 22500, 26250, 3750, 485, 0x83e99451, F=0x0 +0, 26250, 26250, 3750, 95, 0xcd9020bd, F=0x0 +1, 26250, 26250, 3750, 481, 0x44ec924e, F=0x0 +[STREAM] +[/STREAM] +[STREAM] +[SIDE_DATA] +side_data_type=DOVI configuration record +dv_version_major=1 +dv_version_minor=0 +dv_profile=7 +dv_level=4 +rpu_present_flag=1 +el_present_flag=1 +bl_present_flag=0 +dv_bl_signal_compatibility_id=6 +[/SIDE_DATA] +[/STREAM] diff --git a/tests/ref/fate/mpegts-dovi-config-profile7 b/tests/ref/fate/mpegts-dovi-config-profile7 new file mode 100644 index 0000000000..1d8a4b6828 --- /dev/null +++ b/tests/ref/fate/mpegts-dovi-config-profile7 @@ -0,0 +1,15 @@ +[STREAM] +[/STREAM] +[STREAM] +[SIDE_DATA] +side_data_type=DOVI configuration record +dv_version_major=1 +dv_version_minor=0 +dv_profile=7 +dv_level=4 +rpu_present_flag=1 +el_present_flag=1 +bl_present_flag=0 +dv_bl_signal_compatibility_id=6 +[/SIDE_DATA] +[/STREAM]