MCPcopy Create free account
hub / github.com/GStreamer/gst-python / Remuxer

Class Remuxer

old_examples/remuxer.py:345–507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

343 src.set_blocked_async(True, on_pad_blocked_sync)
344
345class Remuxer(gst.Pipeline):
346
347 __gsignals__ = {'done': (gobject.SIGNAL_RUN_LAST, None, (int,))}
348
349 def __init__(self, fromuri, touri, start, stop):
350 # HACK: should do Pipeline.__init__, but that doesn't do what we
351 # want; there's a bug open aboooot that
352 self.__gobject_init__()
353
354 assert start >= 0
355 assert stop > start
356
357 self.fromuri = fromuri
358 self.touri = None
359 self.start_time = start
360 self.stop_time = stop
361
362 self.src = self.remuxbin = self.sink = None
363 self.resolution = UNKNOWN
364
365 self.window = None
366 self.pdialog = None
367
368 self._query_id = -1
369
370 def do_setup_pipeline(self):
371 self.src = gst.element_make_from_uri(gst.URI_SRC, self.fromuri)
372 self.remuxbin = RemuxBin(self.start_time, self.stop_time)
373 self.sink = gst.element_make_from_uri(gst.URI_SINK, self.touri)
374 self.resolution = UNKNOWN
375
376 if gobject.signal_lookup('allow-overwrite', self.sink.__class__):
377 self.sink.connect('allow-overwrite', lambda *x: True)
378
379 self.add(self.src, self.remuxbin, self.sink)
380
381 self.src.link(self.remuxbin)
382 self.remuxbin.link(self.sink)
383
384 def do_get_touri(self):
385 chooser = gtk.FileChooserDialog('Save as...',
386 self.window,
387 action=gtk.FILE_CHOOSER_ACTION_SAVE,
388 buttons=(gtk.STOCK_CANCEL,
389 CANCELLED,
390 gtk.STOCK_SAVE,
391 SUCCESS))
392 chooser.set_uri(self.fromuri) # to select the folder
393 chooser.unselect_all()
394 chooser.set_do_overwrite_confirmation(True)
395 name = self.fromuri.split('/')[-1][:-4] + '-remuxed.ogg'
396 chooser.set_current_name(name)
397 resp = chooser.run()
398 uri = chooser.get_uri()
399 chooser.destroy()
400
401 if resp == SUCCESS:
402 return uri

Callers 1

do_remuxMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected