[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