[SCM] morituri/master: * morituri/image/toc.py: * morituri/test/test_image_toc.py: * morituri/test/test_program_cdrdao.py: After careful vetting, fix up the expected values after toc parsing. Fix (untested) INDEX handling. Fix handling of START.

js at users.alioth.debian.org js at users.alioth.debian.org
Sun Oct 19 20:08:58 UTC 2014


The following commit has been merged in the master branch:
commit 049496a8b1570df82204f9fd49bf56a6460c1744
Author: Thomas Vander Stichele <thomas (at) apestaart (dot) org>
Date:   Tue May 5 22:40:26 2009 +0000

    	* morituri/image/toc.py:
    	* morituri/test/test_image_toc.py:
    	* morituri/test/test_program_cdrdao.py:
    	  After careful vetting, fix up the expected values after toc parsing.
    	  Fix (untested) INDEX handling.  Fix handling of START.

diff --git a/ChangeLog b/ChangeLog
index 6ef7f81..db89e54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-05-06  Thomas Vander Stichele  <thomas at apestaart dot org>
+
+	* morituri/image/toc.py:
+	* morituri/test/test_image_toc.py:
+	* morituri/test/test_program_cdrdao.py:
+	  After careful vetting, fix up the expected values after toc parsing.
+	  Fix (untested) INDEX handling.  Fix handling of START.
+
 2009-05-05  Thomas Vander Stichele  <thomas at apestaart dot org>
 
 	* morituri/image/table.py:
diff --git a/morituri/image/toc.py b/morituri/image/toc.py
index 879e5d3..6a9592e 100644
--- a/morituri/image/toc.py
+++ b/morituri/image/toc.py
@@ -100,16 +100,20 @@ class TocFile(object, log.Loggable):
             if m:
                 state = 'TRACK'
 
-                # handle index 1 of previous track, if any
+                # set index 1 of previous track if there was one, using
+                # pregapLength if applicable
                 if currentTrack:
                     currentTrack.index(1, path=currentFile.path,
                         relative=currentOffset + pregapLength, counter=counter)
+                    self.debug('track %d, added index %r',
+                        currentTrack.number, currentTrack.getIndex(1))
 
                 trackNumber += 1
                 currentOffset += currentLength
                 currentLength = 0
                 indexNumber = 1
                 trackMode = m.group('mode')
+                pregapLength = 0
 
                 # FIXME: track mode
                 currentTrack = table.ITTrack(trackNumber)
@@ -153,24 +157,34 @@ class TocFile(object, log.Loggable):
 
                 length = common.msfToFrames(m.group('length'))
                 currentTrack.index(0, path=currentFile.path,
-                    relative=currentOffset - length, counter=counter)
-                #currentLength += length
+                    relative=currentOffset, counter=counter)
+                self.debug('track %d, added index %r',
+                    currentTrack.number, currentTrack.getIndex(0))
+                # store the pregapLength to add it when we index 1 for this
+                # track on the next iteration
                 pregapLength = length
                 
-             # look for INDEX lines
+            # look for INDEX lines
             m = _INDEX_RE.search(line)
             if m:
                 if not currentTrack:
                     self.message(number, 'INDEX without preceding TRACK')
-                    indexNumber += 1
-                    offset = common.msfToFrames(m.group('offset'))
-                    currentTrack.index(indexNumber, path=currentFile.path,
-                        relative=offset, counter=counter)
+                    print 'ouch'
+                    continue
+
+                indexNumber += 1
+                offset = common.msfToFrames(m.group('offset'))
+                currentTrack.index(indexNumber, path=currentFile.path,
+                    relative=offset, counter=counter)
+                self.debug('track %d, added index %r',
+                    currentTrack.number, currentTrack.getIndex(indexNumber))
 
         # handle index 1 of final track, if any
         if currentTrack:
             currentTrack.index(1, path=currentFile.path,
                 relative=currentOffset + pregapLength, counter=counter)
+            self.debug('track %d, added index %r',
+                currentTrack.number, currentTrack.getIndex(1))
 
     def message(self, number, message):
         """
diff --git a/morituri/test/test_image_toc.py b/morituri/test/test_image_toc.py
index 1c9971a..535c964 100644
--- a/morituri/test/test_image_toc.py
+++ b/morituri/test/test_image_toc.py
@@ -22,7 +22,8 @@ class CureTestCase(unittest.TestCase):
         self.assertEquals(self.toc.getTrackLength(t), -1)
 
     def testIndexes(self):
-        # track 2, index 0 is at 06:16:45
+        # track 2, index 0 is at 06:16:45 or 28245
+        # track 2, index 1 is at 06:17:49 or 28324
         # FIXME: cdrdao seems to get length of FILE 1 frame too many,
         # and START value one frame less
         t = self.toc.table.tracks[1]
@@ -60,7 +61,7 @@ class CureTestCase(unittest.TestCase):
         self.toc.table.clearFiles()
 
         self._assertAbsolute(1, 1, 0)
-        self._assertAbsolute(2, 0, 28166)
+        self._assertAbsolute(2, 0, 28245)
         self._assertAbsolute(2, 1, 28324)
         self._assertAbsolute(3, 1, 46110)
         self._assertAbsolute(4, 1, 66767)
@@ -72,7 +73,7 @@ class CureTestCase(unittest.TestCase):
         self._assertPath(1, 1, 'track01.wav')
         self._assertRelative(1, 1, 0)
         self._assertPath(2, 0, 'track01.wav')
-        self._assertAbsolute(2, 0, 28166)
+        self._assertRelative(2, 0, 28245)
 
         self._assertPath(2, 1, None)
         self._assertRelative(2, 1, None)
@@ -88,7 +89,9 @@ class BlocTestCase(unittest.TestCase):
     def testGetTrackLength(self):
         t = self.toc.table.tracks[0]
         # first track has known length because the .toc is a single file
-        self.assertEquals(self.toc.getTrackLength(t), 50089)
+        # the length is from Track 1, Index 1 to Track 2, Index 1, so
+        # does not include the htoa
+        self.assertEquals(self.toc.getTrackLength(t), 19649)
         # last track has unknown length
         t = self.toc.table.tracks[-1]
         self.assertEquals(self.toc.getTrackLength(t), -1)
diff --git a/morituri/test/test_program_cdrdao.py b/morituri/test/test_program_cdrdao.py
index dd79ab8..7c8b5eb 100644
--- a/morituri/test/test_program_cdrdao.py
+++ b/morituri/test/test_program_cdrdao.py
@@ -26,5 +26,5 @@ class ParseTestCase(unittest.TestCase):
         for i, offset in enumerate(
             [0, 13864, 31921, 48332, 61733, 80961,
              100219, 116291, 136188, 157504, 175275]):
-            track = self._parser.toc.tracks[i]
+            track = self._parser.table.tracks[i]
             self.assertEquals(track.getIndex(1).absolute, offset)

-- 
morituri packaging



More information about the pkg-multimedia-commits mailing list