[FFmpeg-devel] [PATCH] fate/matroska: Add test for remuxing DVB subtitles to Matroska

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Tue May 10 13:06:16 EEST 2022


Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 tests/fate/matroska.mak              | 10 ++++++
 tests/ref/fate/matroska-dvbsub-remux | 52 ++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)
 create mode 100644 tests/ref/fate/matroska-dvbsub-remux

diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak
index ebd95ced04..b49ec761cf 100644
--- a/tests/fate/matroska.mak
+++ b/tests/fate/matroska.mak
@@ -171,6 +171,16 @@ fate-matroska-pgs-remux: CMD = transcode sup $(TARGET_SAMPLES)/sub/pgs_sub.sup m
 FATE_MATROSKA-$(call REMUX, MATROSKA, SUP_DEMUXER PGS_FRAME_MERGE_BSF SETTS_BSF) += fate-matroska-pgs-remux-durations
 fate-matroska-pgs-remux-durations: CMD = transcode sup $(TARGET_SAMPLES)/sub/pgs_sub.sup matroska "-copyts -c:s copy -bsf pgs_frame_merge,setts=duration=if(gt(DURATION\,0)\,DURATION\,if(eq(PTS\,NOPTS)\,0\,if(eq(NEXT_PTS\,NOPTS)\,0\,NEXT_PTS-PTS))):pts=PTS" "-copyts -c:s copy"
 
+# This test muxes DVB subtitles twice into Matroska: Once normally
+# and once with durations derived via the setts filter. Said filter
+# sets the duration for every packet except the last it receives.
+# The "-t 20" also tests that the BSF is properly flushed even
+# when processing ended due to something else than the input's EOF.
+# Notice that the last packet of stream 0 before 20s is present,
+# but has no duration (like stream 1).
+FATE_MATROSKA-$(call REMUX, MATROSKA, MPEGTS_DEMUXER DVBSUB_PARSER SETTS_BSF) += fate-matroska-dvbsub-remux
+fate-matroska-dvbsub-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/sub/dvbsubtest_filter.ts matroska "-map 0:s -map 0:s -t 20 -c copy -bsf:0 setts=duration=if(gt(DURATION\,0)\,DURATION\,if(eq(PTS\,NOPTS)\,0\,if(eq(NEXT_PTS\,NOPTS)\,0\,NEXT_PTS-PTS))):pts=PTS" "-map 0 -c copy"
+
 FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER) += fate-matroska-spherical-mono
 fate-matroska-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mkv/spherical.mkv
 
diff --git a/tests/ref/fate/matroska-dvbsub-remux b/tests/ref/fate/matroska-dvbsub-remux
new file mode 100644
index 0000000000..7c543e5a7d
--- /dev/null
+++ b/tests/ref/fate/matroska-dvbsub-remux
@@ -0,0 +1,52 @@
+e675d3a76a4720f3e65bf56ec6041fe1 *tests/data/fate/matroska-dvbsub-remux.matroska
+39025 tests/data/fate/matroska-dvbsub-remux.matroska
+#extradata 0:        5, 0x00bb0064
+#extradata 1:        5, 0x00bb0064
+#tb 0: 1/1000
+#media_type 0: subtitle
+#codec_id 0: dvb_subtitle
+#tb 1: 1/1000
+#media_type 1: subtitle
+#codec_id 1: dvb_subtitle
+0,          0,          0,      280,       14, 0x05f400e1
+1,          0,          0,        0,       14, 0x05f400e1
+0,        280,        280,     5000,       14, 0x066400f1
+1,        280,        280,        0,       14, 0x066400f1
+0,       5280,       5280,     5020,       14, 0x06d40101
+1,       5280,       5280,        0,       14, 0x06d40101
+0,      10300,      10300,     3600,       14, 0x07440111
+1,      10300,      10300,        0,       14, 0x07440111
+0,      13900,      13900,      220,       14, 0x07b40121
+1,      13900,      13900,        0,       14, 0x07b40121
+0,      14120,      14120,     1440,       14, 0x08240131
+1,      14120,      14120,        0,       14, 0x08240131
+0,      15560,      15560,       40,       14, 0x08940141
+1,      15560,      15560,        0,       14, 0x08940141
+0,      15600,      15600,      160,      944, 0x454c0939
+1,      15600,      15600,        0,      944, 0x454c0939
+0,      15760,      15760,      240,      630, 0x49dbb35f
+1,      15760,      15760,        0,      630, 0x49dbb35f
+0,      16000,      16000,      340,      344, 0xb1eb63ed
+1,      16000,      16000,        0,      344, 0xb1eb63ed
+0,      16340,      16340,      600,      966, 0xb8a61edf
+1,      16340,      16340,        0,      966, 0xb8a61edf
+0,      16940,      16940,      460,      470, 0x80597fba
+1,      16940,      16940,        0,      470, 0x80597fba
+0,      17400,      17400,      360,     1212, 0x554768d6
+1,      17400,      17400,        0,     1212, 0x554768d6
+0,      17760,      17760,      220,     4804, 0xab67ddbe
+1,      17760,      17760,        0,     4804, 0xab67ddbe
+0,      17980,      17980,      960,     1016, 0x15e42d56
+1,      17980,      17980,        0,     1016, 0x15e42d56
+0,      18940,      18940,      220,      456, 0x57917e6f
+1,      18940,      18940,        0,      456, 0x57917e6f
+0,      19160,      19160,      260,      830, 0xcff3efde
+1,      19160,      19160,        0,      830, 0xcff3efde
+0,      19420,      19420,      100,      860, 0xd89903b6
+1,      19420,      19420,        0,      860, 0xd89903b6
+0,      19520,      19520,      220,     4426, 0x01eb43f1
+1,      19520,      19520,        0,     4426, 0x01eb43f1
+0,      19740,      19740,      220,     1132, 0xedda51a8
+1,      19740,      19740,        0,     1132, 0xedda51a8
+0,      19960,      19960,        0,      466, 0x9c957e09
+1,      19960,      19960,        0,      466, 0x9c957e09
-- 
2.32.0



More information about the ffmpeg-devel mailing list