diff --git a/morituri/test/Makefile.am b/morituri/test/Makefile.am index 298ada2..8ac84e7 100644 --- a/morituri/test/Makefile.am +++ b/morituri/test/Makefile.am @@ -48,6 +48,7 @@ EXTRA_DIST = \ cdrdao.readtoc.progress \ silentalarm.result.pickle \ strokes-someday.toc \ + surferrosa.toc \ totbl.fast.toc \ track.flac \ cache/result/fe105a11.pickle \ diff --git a/morituri/test/surferrosa.toc b/morituri/test/surferrosa.toc new file mode 100644 index 0000000..484f83b --- /dev/null +++ b/morituri/test/surferrosa.toc @@ -0,0 +1,196 @@ +CD_DA + +CATALOG "0000000000000" + +// Track 1 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +SILENCE 00:00:32 +FILE "data.wav" 0 03:03:10 +START 00:00:32 + + +// Track 2 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 03:03:10 02:05:00 + + +// Track 3 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 05:08:10 01:48:25 +START 00:00:45 + + +// Track 4 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 06:56:35 01:30:08 + + +// Track 5 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 08:26:43 03:54:70 + + +// Track 6 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 12:21:38 02:31:65 + + +// Track 7 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 14:53:28 03:53:30 + + +// Track 8 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 18:46:58 02:16:55 + + +// Track 9 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 21:03:38 01:52:20 + + +// Track 10 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 22:55:58 01:47:17 + + +// Track 11 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 24:43:00 05:05:63 +INDEX 00:44:70 + + +// Track 12 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 29:48:63 01:42:07 + + +// Track 13 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 31:30:70 02:00:68 + + +// Track 14 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 33:31:63 03:14:25 + + +// Track 15 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 36:46:13 02:53:52 + + +// Track 16 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 39:39:65 01:41:25 + + +// Track 17 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 41:21:15 02:30:00 + + +// Track 18 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 43:51:15 02:14:38 + + +// Track 19 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 46:05:53 02:17:15 + + +// Track 20 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 48:22:68 03:00:57 + + +// Track 21 +TRACK AUDIO +NO COPY +NO PRE_EMPHASIS +TWO_CHANNEL_AUDIO +ISRC "000000000000" +FILE "data.wav" 51:23:50 02:38:38 + diff --git a/morituri/test/test_image_toc.py b/morituri/test/test_image_toc.py index 0175bed..6485a4c 100644 --- a/morituri/test/test_image_toc.py +++ b/morituri/test/test_image_toc.py @@ -336,3 +336,44 @@ class StrokesTestCase(common.TestCase): t = self.toc.table.tracks[0] self.assertEquals(t.getIndex(0).relative, 0) self.assertEquals(t.getIndex(1).relative, 1) + + +# Surfer Rosa has +# track 00 consisting of 32 frames of SILENCE +# track 11 Vamos with an INDEX 02 + + +class SurferRosaTestCase(common.TestCase): + + def setUp(self): + self.path = os.path.join(os.path.dirname(__file__), + u'surferrosa.toc') + self.toc = toc.TocFile(self.path) + self.toc.parse() + self.assertEquals(len(self.toc.table.tracks), 21) + + def testIndexes(self): + # HTOA + t = self.toc.table.tracks[0] + self.assertEquals(len(t.indexes), 2) + self.assertEquals(t.getIndex(0).relative, 0) + self.assertEquals(t.getIndex(0).absolute, 0) + self.assertEquals(t.getIndex(1).relative, 32) + self.assertEquals(t.getIndex(1).absolute, 32) + + # track 11, Vamos + + t = self.toc.table.tracks[10] + self.assertEquals(len(t.indexes), 2) + + # 32 frames of silence, and 1483 seconds of data.wav + self.assertEquals(t.getIndex(1).relative, 111257) + self.assertEquals(t.getIndex(1).absolute, 111257) + self.assertEquals(t.getIndex(2).relative, 3370) + self.assertEquals(t.getIndex(2).absolute, None) + + self.toc.table.absolutize() + self.assertEquals(t.getIndex(2).absolute, 3370) + +# print self.toc.table.cue() +