Commit db8537d8cc for ffmpeg
commit db8537d8cc7962bd3d07254d6ceff21d888817d4
Author: YoungSoo Lee <youngsoo.lee@navercorp.com>
Date: Fri Sep 11 11:37:51 2026 +0900
tests/fate/hevc: cover the CTB row order traversal
The row order is off by default without frame threading, which is how FATE
runs, so the tests force it with the tile_interleave option.
TILES_A_Cisco_2 binds the tiles of a picture into a single slice with entry
points. TILES_B_Cisco_1 mixes layouts, with pictures that carry one slice
per tile and pictures that fall back to the tile scan order, so the two
ways into the traversal and the fallback are all covered. The expected
output is the one of the tile scan order, which the traversal does not
change.
tile_row_order_nokey.hevc carries one slice per tile and a suffix SEI after
every picture, so its slices are decoded once the SEI has been parsed. With
-skip_loop_filter nokey the filter decision has to follow the type of the
picture rather than the one of the SEI. The sample is attached to the pull
request, to be added to fate-suite as hevc/tile_row_order_nokey.hevc.
Signed-off-by: YoungSoo Lee <youngsoo.lee@navercorp.com>
diff --git a/tests/fate/hevc.mak b/tests/fate/hevc.mak
index b39358167e..e8692b6729 100644
--- a/tests/fate/hevc.mak
+++ b/tests/fate/hevc.mak
@@ -351,6 +351,23 @@ FATE_HEVC-$(call FRAMECRC, MOV, HEVC) += fate-hevc-alpha
fate-hevc-color-reserved: CMD = framecrc -bsf:v hevc_metadata=colour_primaries=0:transfer_characteristics=0:matrix_coefficients=3 -i $(TARGET_SAMPLES)/hevc-conformance/AMP_A_Samsung_4.bit -vf scale,format=nv12 -frames:v 1
FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_METADATA_BSF SCALE_FILTER) += fate-hevc-color-reserved
+# The tile_interleave option is forced here because FATE runs single threaded,
+# where the default of -1 keeps the tile scan order. TILES_A_Cisco_2 exercises
+# the entry-point path; TILES_B_Cisco_1 includes one-slice-per-tile pictures
+# and mixed slice layouts, exercising deferred interleaving and fallback. The
+# output is the same as in tile scan order.
+fate-hevc-tile-row-order-entry-points: CMD = framecrc -tile_interleave 1 -i $(TARGET_SAMPLES)/hevc-conformance/TILES_A_Cisco_2.bit -pix_fmt yuv420p
+FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER) += fate-hevc-tile-row-order-entry-points
+
+fate-hevc-tile-row-order-slices: CMD = framecrc -tile_interleave 1 -i $(TARGET_SAMPLES)/hevc-conformance/TILES_B_Cisco_1.bit -pix_fmt yuv420p
+FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER) += fate-hevc-tile-row-order-slices
+
+# One slice per tile with a suffix SEI after every picture: the deferred slices
+# are decoded once the SEI has been parsed, and nokey must still see the type
+# of the picture.
+fate-hevc-tile-row-order-nokey: CMD = framecrc -tile_interleave 1 -skip_loop_filter nokey -i $(TARGET_SAMPLES)/hevc/tile_row_order_nokey.hevc -pix_fmt yuv420p
+FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER) += fate-hevc-tile-row-order-nokey
+
FATE_SAMPLES_AVCONV += $(FATE_HEVC-yes)
FATE_SAMPLES_FFPROBE += $(FATE_HEVC_FFPROBE-yes)
diff --git a/tests/ref/fate/hevc-tile-row-order-entry-points b/tests/ref/fate/hevc-tile-row-order-entry-points
new file mode 100644
index 0000000000..8d0b5276e6
--- /dev/null
+++ b/tests/ref/fate/hevc-tile-row-order-entry-points
@@ -0,0 +1,105 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1920x1080
+#sar 0: 0/1
+0, 0, 0, 1, 3110400, 0xfc052e85
+0, 1, 1, 1, 3110400, 0xfb49bf20
+0, 2, 2, 1, 3110400, 0x549eef2b
+0, 3, 3, 1, 3110400, 0xc3857801
+0, 4, 4, 1, 3110400, 0xb27d6aea
+0, 5, 5, 1, 3110400, 0xa52e1d58
+0, 6, 6, 1, 3110400, 0x02d348e6
+0, 7, 7, 1, 3110400, 0x45a9c47c
+0, 8, 8, 1, 3110400, 0xc308e886
+0, 9, 9, 1, 3110400, 0x43cd6ed6
+0, 10, 10, 1, 3110400, 0x29a054ce
+0, 11, 11, 1, 3110400, 0x76fbd08e
+0, 12, 12, 1, 3110400, 0x8638d5e2
+0, 13, 13, 1, 3110400, 0xfb4b7823
+0, 14, 14, 1, 3110400, 0x66185e15
+0, 15, 15, 1, 3110400, 0x82eaea0a
+0, 16, 16, 1, 3110400, 0x5895f1c6
+0, 17, 17, 1, 3110400, 0x0a28a1c7
+0, 18, 18, 1, 3110400, 0x37f2ecc8
+0, 19, 19, 1, 3110400, 0x0ad8b6c1
+0, 20, 20, 1, 3110400, 0x90300dcb
+0, 21, 21, 1, 3110400, 0x9731112d
+0, 22, 22, 1, 3110400, 0x5078ba88
+0, 23, 23, 1, 3110400, 0xdcfbacae
+0, 24, 24, 1, 3110400, 0x40769123
+0, 25, 25, 1, 3110400, 0xa09f4d29
+0, 26, 26, 1, 3110400, 0xa3749feb
+0, 27, 27, 1, 3110400, 0xb04c36ae
+0, 28, 28, 1, 3110400, 0x4d30c177
+0, 29, 29, 1, 3110400, 0xe247070a
+0, 30, 30, 1, 3110400, 0x84c669d5
+0, 31, 31, 1, 3110400, 0x3e0529e6
+0, 32, 32, 1, 3110400, 0xd0d58b7a
+0, 33, 33, 1, 3110400, 0x05de0ffa
+0, 34, 34, 1, 3110400, 0x7d10a27f
+0, 35, 35, 1, 3110400, 0x87dd43fe
+0, 36, 36, 1, 3110400, 0xc6f39e98
+0, 37, 37, 1, 3110400, 0x9bf5a18b
+0, 38, 38, 1, 3110400, 0x4880f4e6
+0, 39, 39, 1, 3110400, 0xbba7a2fd
+0, 40, 40, 1, 3110400, 0x82fe2a14
+0, 41, 41, 1, 3110400, 0x7e701e1c
+0, 42, 42, 1, 3110400, 0x23cdbc0c
+0, 43, 43, 1, 3110400, 0xf15977e6
+0, 44, 44, 1, 3110400, 0x50df6fe2
+0, 45, 45, 1, 3110400, 0x8913ddde
+0, 46, 46, 1, 3110400, 0x633c8c0e
+0, 47, 47, 1, 3110400, 0xea604347
+0, 48, 48, 1, 3110400, 0xa5049365
+0, 49, 49, 1, 3110400, 0x35da77a8
+0, 50, 50, 1, 3110400, 0xcfa4af57
+0, 51, 51, 1, 3110400, 0x5a3bfe64
+0, 52, 52, 1, 3110400, 0x91f9ee34
+0, 53, 53, 1, 3110400, 0x21b0df73
+0, 54, 54, 1, 3110400, 0x7807baf2
+0, 55, 55, 1, 3110400, 0x96dbaf03
+0, 56, 56, 1, 3110400, 0xb8d29f57
+0, 57, 57, 1, 3110400, 0x1a04f732
+0, 58, 58, 1, 3110400, 0x54a34b35
+0, 59, 59, 1, 3110400, 0x4850a07a
+0, 60, 60, 1, 3110400, 0x7010be29
+0, 61, 61, 1, 3110400, 0x7178d2e7
+0, 62, 62, 1, 3110400, 0x17483898
+0, 63, 63, 1, 3110400, 0x4c55872a
+0, 64, 64, 1, 3110400, 0xe67b0f06
+0, 65, 65, 1, 3110400, 0x958789cf
+0, 66, 66, 1, 3110400, 0x5cd6ba06
+0, 67, 67, 1, 3110400, 0xb7852fe2
+0, 68, 68, 1, 3110400, 0x8b67bd9f
+0, 69, 69, 1, 3110400, 0x9555c0ff
+0, 70, 70, 1, 3110400, 0x6b99aab7
+0, 71, 71, 1, 3110400, 0xcab904b7
+0, 72, 72, 1, 3110400, 0xeb915c25
+0, 73, 73, 1, 3110400, 0xd3066bd8
+0, 74, 74, 1, 3110400, 0xa2d45cb5
+0, 75, 75, 1, 3110400, 0x011db978
+0, 76, 76, 1, 3110400, 0xf35b9f2c
+0, 77, 77, 1, 3110400, 0x6afd3bde
+0, 78, 78, 1, 3110400, 0xa1ad77b7
+0, 79, 79, 1, 3110400, 0x8b4d3823
+0, 80, 80, 1, 3110400, 0xd806be79
+0, 81, 81, 1, 3110400, 0x29dcff87
+0, 82, 82, 1, 3110400, 0x202fb0f7
+0, 83, 83, 1, 3110400, 0xacfc7d1d
+0, 84, 84, 1, 3110400, 0xf04bdcb8
+0, 85, 85, 1, 3110400, 0x89cef288
+0, 86, 86, 1, 3110400, 0x657315e2
+0, 87, 87, 1, 3110400, 0x1615cb5f
+0, 88, 88, 1, 3110400, 0xc6986395
+0, 89, 89, 1, 3110400, 0x6b77258e
+0, 90, 90, 1, 3110400, 0xcd9975ae
+0, 91, 91, 1, 3110400, 0x5044fd0f
+0, 92, 92, 1, 3110400, 0x20dd1132
+0, 93, 93, 1, 3110400, 0xdb5a0b84
+0, 94, 94, 1, 3110400, 0xf40d29ae
+0, 95, 95, 1, 3110400, 0xe88bffed
+0, 96, 96, 1, 3110400, 0x3e50146a
+0, 97, 97, 1, 3110400, 0xaacd9bfa
+0, 98, 98, 1, 3110400, 0x270b2c2a
+0, 99, 99, 1, 3110400, 0xc727f760
diff --git a/tests/ref/fate/hevc-tile-row-order-nokey b/tests/ref/fate/hevc-tile-row-order-nokey
new file mode 100644
index 0000000000..195a11fd55
--- /dev/null
+++ b/tests/ref/fate/hevc-tile-row-order-nokey
@@ -0,0 +1,11 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 256x192
+#sar 0: 1/1
+0, 0, 0, 1, 73728, 0xf335c004
+0, 1, 1, 1, 73728, 0x60c4cadb
+0, 2, 2, 1, 73728, 0x0dd8f1fd
+0, 3, 3, 1, 73728, 0x24721509
+0, 4, 4, 1, 73728, 0xfa5f2f70
+0, 5, 5, 1, 73728, 0x75965f13
diff --git a/tests/ref/fate/hevc-tile-row-order-slices b/tests/ref/fate/hevc-tile-row-order-slices
new file mode 100644
index 0000000000..b03a9c3f80
--- /dev/null
+++ b/tests/ref/fate/hevc-tile-row-order-slices
@@ -0,0 +1,105 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1920x1080
+#sar 0: 0/1
+0, 0, 0, 1, 3110400, 0x3471f473
+0, 1, 1, 1, 3110400, 0xb371a3e8
+0, 2, 2, 1, 3110400, 0x6d83c623
+0, 3, 3, 1, 3110400, 0x62d68b96
+0, 4, 4, 1, 3110400, 0xa8ed6ea9
+0, 5, 5, 1, 3110400, 0xcabe52be
+0, 6, 6, 1, 3110400, 0xbbb23578
+0, 7, 7, 1, 3110400, 0xb1609c77
+0, 8, 8, 1, 3110400, 0x61e7c2a7
+0, 9, 9, 1, 3110400, 0x6d8b34ad
+0, 10, 10, 1, 3110400, 0xde0dfa96
+0, 11, 11, 1, 3110400, 0x48c2b0b0
+0, 12, 12, 1, 3110400, 0x647b6f90
+0, 13, 13, 1, 3110400, 0xd37f2dda
+0, 14, 14, 1, 3110400, 0x1b0dd122
+0, 15, 15, 1, 3110400, 0x0b050786
+0, 16, 16, 1, 3110400, 0xcd9ce7e5
+0, 17, 17, 1, 3110400, 0xb92a4ee4
+0, 18, 18, 1, 3110400, 0x4fa4d97c
+0, 19, 19, 1, 3110400, 0x109777eb
+0, 20, 20, 1, 3110400, 0xc3d2236a
+0, 21, 21, 1, 3110400, 0x1cd12d07
+0, 22, 22, 1, 3110400, 0xdd1ef75d
+0, 23, 23, 1, 3110400, 0xd00c0906
+0, 24, 24, 1, 3110400, 0x8de79207
+0, 25, 25, 1, 3110400, 0x18017e1e
+0, 26, 26, 1, 3110400, 0x4329f68a
+0, 27, 27, 1, 3110400, 0x6a402bae
+0, 28, 28, 1, 3110400, 0x90eb1a20
+0, 29, 29, 1, 3110400, 0xe3474876
+0, 30, 30, 1, 3110400, 0xd652e216
+0, 31, 31, 1, 3110400, 0xeb458ebb
+0, 32, 32, 1, 3110400, 0xc5aff075
+0, 33, 33, 1, 3110400, 0xcb4d72e7
+0, 34, 34, 1, 3110400, 0x5504d9c5
+0, 35, 35, 1, 3110400, 0xcd0147b4
+0, 36, 36, 1, 3110400, 0xe2f0001e
+0, 37, 37, 1, 3110400, 0xa2199fe5
+0, 38, 38, 1, 3110400, 0x2f269683
+0, 39, 39, 1, 3110400, 0x7cf11244
+0, 40, 40, 1, 3110400, 0xf39cb39d
+0, 41, 41, 1, 3110400, 0x0e195a06
+0, 42, 42, 1, 3110400, 0x195e31e3
+0, 43, 43, 1, 3110400, 0xc43cd272
+0, 44, 44, 1, 3110400, 0x9dc1c4ea
+0, 45, 45, 1, 3110400, 0x846cd55f
+0, 46, 46, 1, 3110400, 0xe9468052
+0, 47, 47, 1, 3110400, 0xc5bb38ff
+0, 48, 48, 1, 3110400, 0xd1886697
+0, 49, 49, 1, 3110400, 0x23f2012b
+0, 50, 50, 1, 3110400, 0x669d63ff
+0, 51, 51, 1, 3110400, 0xced83804
+0, 52, 52, 1, 3110400, 0x005f5f3d
+0, 53, 53, 1, 3110400, 0x772efc80
+0, 54, 54, 1, 3110400, 0x94012838
+0, 55, 55, 1, 3110400, 0x99770054
+0, 56, 56, 1, 3110400, 0x8654c655
+0, 57, 57, 1, 3110400, 0xed3d19f4
+0, 58, 58, 1, 3110400, 0x8efc2172
+0, 59, 59, 1, 3110400, 0x9aaf930d
+0, 60, 60, 1, 3110400, 0xbe32f43e
+0, 61, 61, 1, 3110400, 0x6008f53e
+0, 62, 62, 1, 3110400, 0xb87897b9
+0, 63, 63, 1, 3110400, 0xe2406eb1
+0, 64, 64, 1, 3110400, 0xbdfa067b
+0, 65, 65, 1, 3110400, 0x82a16dbd
+0, 66, 66, 1, 3110400, 0x909aa5f0
+0, 67, 67, 1, 3110400, 0xc63836b5
+0, 68, 68, 1, 3110400, 0xaf7ad199
+0, 69, 69, 1, 3110400, 0xfa010078
+0, 70, 70, 1, 3110400, 0x00c0c24e
+0, 71, 71, 1, 3110400, 0xbda7cc4e
+0, 72, 72, 1, 3110400, 0xda97f9d5
+0, 73, 73, 1, 3110400, 0xd359e94a
+0, 74, 74, 1, 3110400, 0xcd48c131
+0, 75, 75, 1, 3110400, 0xb52ca032
+0, 76, 76, 1, 3110400, 0x55a69650
+0, 77, 77, 1, 3110400, 0x7241c1a9
+0, 78, 78, 1, 3110400, 0xf06c5744
+0, 79, 79, 1, 3110400, 0xe1befd73
+0, 80, 80, 1, 3110400, 0xe8ffea92
+0, 81, 81, 1, 3110400, 0xd76e40b6
+0, 82, 82, 1, 3110400, 0xbf5f5b4c
+0, 83, 83, 1, 3110400, 0x0eb8d128
+0, 84, 84, 1, 3110400, 0x453dd680
+0, 85, 85, 1, 3110400, 0x7114fada
+0, 86, 86, 1, 3110400, 0xa3b4e7a8
+0, 87, 87, 1, 3110400, 0xbca356f0
+0, 88, 88, 1, 3110400, 0x80a83fa3
+0, 89, 89, 1, 3110400, 0x713a33d4
+0, 90, 90, 1, 3110400, 0x4fda8aea
+0, 91, 91, 1, 3110400, 0x31ed1a88
+0, 92, 92, 1, 3110400, 0x736312a0
+0, 93, 93, 1, 3110400, 0x60aff0c5
+0, 94, 94, 1, 3110400, 0xee66bd76
+0, 95, 95, 1, 3110400, 0xe8f9a352
+0, 96, 96, 1, 3110400, 0xb51520de
+0, 97, 97, 1, 3110400, 0xd0542466
+0, 98, 98, 1, 3110400, 0x92c2f3e1
+0, 99, 99, 1, 3110400, 0xbbe1839a