def configure_pipeline(self, pipeline, properties): # Later, when the typefind element has successfully found the type # of the data, we'll rebuild the pipeline. self.src = pipeline.get_by_name('src') self.url = properties['url'] self.passthrough = properties.get('passthrough', False) self.src.set_property('location', self.url) self.src.set_property('iradio-mode', True) typefind = pipeline.get_by_name('tf') self.signal_id = typefind.connect('have-type',\ self._typefind_have_caps_cb) if not self.configured: self.attachPadMonitorToElement('src', self._src_connected, self._src_disconnected) self.reconnecting = False self.reconnector = RetryingDeferred(self.connect) self.reconnector.initialDelay = 1.0 self.attemptD = None def _drop_eos(pad, event): self.debug('Swallowing event %r', event) if event.type == gst.EVENT_EOS: return False return True self.configured = True self.src.get_pad('src').add_event_probe(_drop_eos)
def testSimple(self): def genDef(): return defer.succeed(True) rd = RetryingDeferred(genDef) d = rd.start() return d
def testRetryOnce(self): self.__first = True def genDef(): if self.__first: self.__first = False return defer.fail(errors.FlumotionError()) else: return defer.succeed(None) rd = RetryingDeferred(genDef) rd.initialDelay = 0.1 # Set it short so the test isn't long-running. d = rd.start() return d