]> git.parisson.com Git - timeside.git/commitdiff
Fix issue and enhance decoder.core
authorThomas Fillon <thomas@parisson.com>
Wed, 9 Oct 2013 13:07:48 +0000 (15:07 +0200)
committerThomas Fillon <thomas@parisson.com>
Wed, 9 Oct 2013 13:31:24 +0000 (15:31 +0200)
- Rethrow IOerror in set_uri_default_duration when uri is not a proper media file
- add IS_SEGMENT in mediainfo

timeside/decoder/core.py

index f71adbb560b541955174ca21551cb4bcc347a0b1..5b4f3d67fac4b893344dd837ca9b7bd8bd91a75e 100644 (file)
@@ -97,15 +97,19 @@ class FileDecoder(Processor):
     def set_uri_default_duration(self):
         # Set the duration from the length of the file
         from gst.pbutils import Discoverer
+        from glib import GError
         #import gobject
         uri_discoverer = Discoverer(GST_DISCOVER_TIMEOUT)
-        uri_info = uri_discoverer.discover_uri(self.uri)
+        try:
+            uri_info = uri_discoverer.discover_uri(self.uri)
+        except  GError as e:
+            raise IOError(e)
         self.uri_duration = (uri_info.get_duration() / float(gst.SECOND) -
                             self.uri_start)
 
     def setup(self, channels=None, samplerate=None, blocksize=None):
 
-        if self.IS_SEGMENT and not(self.uri_duration):
+        if self.uri_duration is None:
             self.set_uri_default_duration()
 
         # a lock to wait wait for gstreamer thread to be ready
@@ -321,7 +325,10 @@ class FileDecoder(Processor):
 
     @interfacedoc
     def mediainfo(self):
-        return dict(uri=self.uri, duration=self.uri_duration, start=self.uri_start)
+        return dict(uri=self.uri,
+                    duration=self.uri_duration,
+                    start=self.uri_start,
+                    IS_SEGMENT=self.IS_SEGMENT)
 
     def __del__(self):
         self.release()