[FFmpeg-devel] [PATCH] fate: add mp3 gapless test

wm4 nfxjfg at googlemail.com
Wed Apr 15 21:10:49 CEST 2015


---
gapless.mp3: https://0x0.st/AG.mp3

Possibly a bit over-complicated, but it doesn't even test everything
I wanted to test. At least the lavc skip_manual flag is not tested,
because there's apparently no way yet to test AVFrame side data?
---
 tests/Makefile             |  1 +
 tests/fate-run.sh          | 22 ++++++++++++++++++++++
 tests/fate/gapless.mak     |  7 +++++++
 tests/ref/fate/gapless-mp3 |  4 ++++
 4 files changed, 34 insertions(+)
 create mode 100644 tests/fate/gapless.mak
 create mode 100644 tests/ref/fate/gapless-mp3

diff --git a/tests/Makefile b/tests/Makefile
index 8505211..cffa541 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -117,6 +117,7 @@ include $(SRC_PATH)/tests/fate/filter-audio.mak
 include $(SRC_PATH)/tests/fate/filter-video.mak
 include $(SRC_PATH)/tests/fate/flac.mak
 include $(SRC_PATH)/tests/fate/fft.mak
+include $(SRC_PATH)/tests/fate/gapless.mak
 include $(SRC_PATH)/tests/fate/gif.mak
 include $(SRC_PATH)/tests/fate/h264.mak
 include $(SRC_PATH)/tests/fate/hevc.mak
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 74f2645..c68c389 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -220,6 +220,28 @@ pixfmts(){
     test=$outertest
 }
 
+gapless(){
+    sample=$(target_path $1)
+    extra_args=$2
+
+    decfile1="${outdir}/${test}.out-1"
+    decfile2="${outdir}/${test}.out-2"
+    cleanfiles="$cleanfiles $decfile1 $decfile2"
+
+    # large enough to make ffmpeg.c seek to the start of the file
+    start_offset=-1
+
+    # test packet data
+    ffmpeg -i "$sample" $extra_args -flags +bitexact -c:a copy -f framecrc -y $decfile1
+    do_md5sum $decfile1
+    # test decoded (and cut) data
+    ffmpeg -i "$sample" $extra_args -flags +bitexact -f wav md5:
+    # the same as aboce again, with seeking to the start
+    ffmpeg -ss $start_offset -i "$sample" $extra_args -flags +bitexact -c:a copy -f framecrc -y $decfile2
+    do_md5sum $decfile2
+    ffmpeg -ss $start_offset -i "$sample" $extra_args -flags +bitexact -f wav md5:
+}
+
 mkdir -p "$outdir"
 
 # Disable globbing: command arguments may contain globbing characters and
diff --git a/tests/fate/gapless.mak b/tests/fate/gapless.mak
new file mode 100644
index 0000000..7f0848d
--- /dev/null
+++ b/tests/fate/gapless.mak
@@ -0,0 +1,7 @@
+FATE_GAPLESS-$(CONFIG_MP3_DEMUXER) += fate-gapless-mp3
+fate-gapless-mp3: CMD = gapless $(TARGET_SAMPLES)/gapless/gapless.mp3 "-usetoc 1"
+
+FATE_GAPLESS = $(FATE_GAPLESS-yes)
+
+FATE_SAMPLES_AVCONV += $(FATE_GAPLESS)
+fate-gapless: $(FATE_GAPLESS)
diff --git a/tests/ref/fate/gapless-mp3 b/tests/ref/fate/gapless-mp3
new file mode 100644
index 0000000..9add70f
--- /dev/null
+++ b/tests/ref/fate/gapless-mp3
@@ -0,0 +1,4 @@
+d5c88cf38416329a052a9b0cb140fb4c *tests/data/fate/gapless-mp3.out-1
+3e41cbd4dcd511d3155234684252beab
+68f040b12d79c71e3b2e8ba90a9cbd96 *tests/data/fate/gapless-mp3.out-2
+3e41cbd4dcd511d3155234684252beab
\ No newline at end of file
-- 
2.1.4



More information about the ffmpeg-devel mailing list