examples/remuxer.py (RemuxBin._do_seek, Remuxer._bus_watch): Use normal seeks instead...
authorJames Doc Livingston <doclivingston@gmail.com>
Fri, 28 Jul 2006 13:56:20 +0000 (13:56 +0000)
committerAndy Wingo <wingo@pobox.com>
Fri, 28 Jul 2006 13:56:20 +0000 (13:56 +0000)
Original commit message from CVS:
2006-07-28  Andy Wingo  <wingo@pobox.com>

* examples/remuxer.py (RemuxBin._do_seek, Remuxer._bus_watch): Use
normal seeks instead of segment seeks so that EOS is handled
properly. Patch by James "Doc" Livingston <doclivingston at
gmail.com>. (#348416)

* examples/remuxer.py (RemuxBin._new_demuxed_pad): Increase the
buffer size for dealing with terribly muxed files.

ChangeLog
common
examples/remuxer.py

index 177159b..fe3a08d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-07-28  Andy Wingo  <wingo@pobox.com>
+
+       * examples/remuxer.py (RemuxBin._do_seek, Remuxer._bus_watch): Use
+       normal seeks instead of segment seeks so that EOS is handled
+       properly. Patch by James "Doc" Livingston <doclivingston at
+       gmail.com>.
+
+       * examples/remuxer.py (RemuxBin._new_demuxed_pad): Increase the
+       buffer size for dealing with terribly muxed files.
+       
 2006-07-20  Edward Hervey  <edward@fluendo.com>
 
        * configure.ac:
        * examples/remuxer.py (PlayerWindow.update_scale_cb): Fix a race
        condition getting the initial cutin time via inserting whitespace.
        (all over): UI fixes to make Mike happy.
-       
+
        * examples/remuxer.py: Updates! Nothing gstreamery, it's all ui,
        so I won't bother you with the details.
        
diff --git a/common b/common
index 53ecdc0..ef97fb3 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 53ecdc0c97a2992e5abeddd41d514bc142401e5d
+Subproject commit ef97fb3278d98a1fdb32e5c6b2a7467116ffc160
index 3ec855e..0e389cb 100644 (file)
@@ -441,7 +441,7 @@ class Remuxer(gst.Pipeline):
             self.response(FAILURE)
         elif message.type == gst.MESSAGE_WARNING:
             print 'warning', message
-        elif message.type == gst.MESSAGE_SEGMENT_DONE:
+        elif message.type == gst.MESSAGE_EOS:
             # print 'eos, woot', message.src
             name = self.touri
             if name.startswith('file://'):
@@ -542,6 +542,7 @@ class RemuxBin(gst.Bin):
             return
 
         queue = gst.element_factory_make('queue', 'queue_' + format)
+        queue.set_property('max-size-buffers', 1000)
         parser = gst.element_factory_make(self.parsefactories[format])
         self.add(queue)
         self.add(parser)
@@ -552,8 +553,8 @@ class RemuxBin(gst.Bin):
         parser.link(self.mux)
         self.parsers.append(parser)
 
-    def _do_segment_seek(self):
-        flags = gst.SEEK_FLAG_SEGMENT | gst.SEEK_FLAG_FLUSH
+    def _do_seek(self):
+        flags = gst.SEEK_FLAG_FLUSH
         # HACK: self.seek should work, should try that at some point
         return self.demux.seek(1.0, gst.FORMAT_TIME, flags,
                                gst.SEEK_TYPE_SET, self.start_time,
@@ -562,7 +563,7 @@ class RemuxBin(gst.Bin):
     def _no_more_pads(self, element):
         pads = [x.get_pad('src') for x in self.parsers]
         set_connection_blocked_async_marshalled(pads,
-                                                self._do_segment_seek)
+                                                self._do_seek)
 
 
 class PlayerWindow(gtk.Window):