[FFmpeg-devel] [PATCH 2/2] fate: gapless: fix mp3 tests

wm4 nfxjfg at googlemail.com
Mon Apr 20 19:36:52 CEST 2015

Seeking to a negative time did not have the desired effect of seeking to
the next valid position (the file start). On the other hand, just
"-ss 0" will normally seek to a position higher than 0, because it adds
the start time of the file. (The start time is not 0 because the gapless
code skips a few samples from the start.)

Fix this by using the "-seek_timestamp 1" option, which makes "-ss 0" do
what you'd expect it would do.

Also put the -ss option at the right place, before -i. This actually
makes it seek, instead of something completely else. The ".out-3" test
is no different in the -usetoc 0/1 cases, because the seeking is
inaccurate (in both cases).
In other news, gapless still breaks with seeking, and the last part of
the tests (...out-3 lines) test something broken. I conclude it can't
be made work without some form of full indexing.
 tests/fate-run.sh                | 13 +++++--------
 tests/ref/fate/gapless-mp3       |  4 ++--
 tests/ref/fate/gapless-mp3-notoc |  4 ++--
 3 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 0165812..1a8ff94 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -229,20 +229,17 @@ gapless(){
     cleanfiles="$cleanfiles $decfile1 $decfile2 $decfile3"
-    # 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
+    ffmpeg $extra_args -i "$sample" -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:
+    ffmpeg $extra_args -i "$sample" -flags +bitexact -f wav md5:
     # the same as above again, with seeking to the start
-    ffmpeg -ss $start_offset -i "$sample" $extra_args -flags +bitexact -c:a copy -f framecrc -y $decfile2
+    ffmpeg $extra_args -ss 0 -seek_timestamp 1 -i "$sample" -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:
+    ffmpeg $extra_args -ss 0 -seek_timestamp 1 -i "$sample" -flags +bitexact -f wav md5:
     # test packet data, with seeking to a specific position
-    ffmpeg -ss 5 -i "$sample" $extra_args -flags +bitexact -c:a copy -f framecrc -y $decfile3
+    ffmpeg $extra_args -ss 5 -seek_timestamp 1 -i "$sample" -flags +bitexact -c:a copy -f framecrc -y $decfile3
     do_md5sum $decfile3
diff --git a/tests/ref/fate/gapless-mp3 b/tests/ref/fate/gapless-mp3
index 3cff9a8..984ae84 100644
--- a/tests/ref/fate/gapless-mp3
+++ b/tests/ref/fate/gapless-mp3
@@ -1,5 +1,5 @@
 d5c88cf38416329a052a9b0cb140fb4c *tests/data/fate/gapless-mp3.out-1
-68f040b12d79c71e3b2e8ba90a9cbd96 *tests/data/fate/gapless-mp3.out-2
+3386bc2009b31b7ef39247918cbb02a5 *tests/data/fate/gapless-mp3.out-2
-e750fc8ae00ba29a03983edafbb63975 *tests/data/fate/gapless-mp3.out-3
+70e7cd7f2b6365e7f48ed206113f06fc *tests/data/fate/gapless-mp3.out-3
diff --git a/tests/ref/fate/gapless-mp3-notoc b/tests/ref/fate/gapless-mp3-notoc
index 3528e71..f52efff 100644
--- a/tests/ref/fate/gapless-mp3-notoc
+++ b/tests/ref/fate/gapless-mp3-notoc
@@ -1,5 +1,5 @@
 d5c88cf38416329a052a9b0cb140fb4c *tests/data/fate/gapless-mp3-notoc.out-1
-68f040b12d79c71e3b2e8ba90a9cbd96 *tests/data/fate/gapless-mp3-notoc.out-2
+3386bc2009b31b7ef39247918cbb02a5 *tests/data/fate/gapless-mp3-notoc.out-2
-e750fc8ae00ba29a03983edafbb63975 *tests/data/fate/gapless-mp3-notoc.out-3
+e82eaed507ce3f7f6199918159e1ddd7 *tests/data/fate/gapless-mp3-notoc.out-3

More information about the ffmpeg-devel mailing list