Commits

Victor Stinner committed 921606d

fix matroska to extract webm video duration

Comments (0)

Files changed (2)

hachoir-metadata/ChangeLog

 hachoir-metadata 1.3.3
 ======================
 
-XXX
+ * fix matroska to extract webm video duration
 
 hachoir-metadata 1.3.2 (2010-02-04)
 ===================================

hachoir-metadata/hachoir_metadata/video.py

         value = tag["TagString/unicode"].value
         setattr(self, key, value)
 
+    # Catch OverflowError for timedelta (long int too large to convert to int)
+    @fault_tolerant
+    def readDuration(self, duration, timecode_scale):
+        seconds = duration * timecode_scale
+        self.duration = timedelta(seconds=seconds)
+
     def processInfo(self, info):
-        if "Duration/float" in info \
-        and "TimecodeScale/unsigned" in info \
-        and 0 < info["Duration/float"].value:
-            try:
-                seconds = info["Duration/float"].value * info["TimecodeScale/unsigned"].value * 1e-9
-                self.duration = timedelta(seconds=seconds)
-            except OverflowError:
-                # Catch OverflowError for timedelta
-                # (long int too large to convert to int)
-                pass
+        if "TimecodeScale/unsigned" in info:
+            timecode_scale = info["TimecodeScale/unsigned"].value * 1e-9
+            if "Duration/float" in info:
+                self.readDuration(info["Duration/float"].value, timecode_scale)
+            elif "Duration/double" in info:
+                self.readDuration(info["Duration/double"].value, timecode_scale)
         if "DateUTC/date" in info:
             try:
                 self.creation_date = dateToDatetime(info["DateUTC/date"].value)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.