本文整理汇总了Python中pitivi.pipeline.Pipeline.removeAction方法的典型用法代码示例。如果您正苦于以下问题:Python Pipeline.removeAction方法的具体用法?Python Pipeline.removeAction怎么用?Python Pipeline.removeAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pitivi.pipeline.Pipeline
的用法示例。
在下文中一共展示了Pipeline.removeAction方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestPipeline
# 需要导入模块: from pitivi.pipeline import Pipeline [as 别名]
# 或者: from pitivi.pipeline.Pipeline import removeAction [as 别名]
class TestPipeline(TestCase):
def setUp(self):
TestCase.setUp(self)
gst.debug("start")
self.pipeline = Pipeline()
self.monitor = SignalMonitor(self.pipeline, 'action-added',
'action-removed', 'factory-added',
'factory-removed', 'state-changed')
self.assertEquals(self.monitor.action_added_count, 0)
self.assertEquals(self.monitor.action_added_collect, [])
def tearDown(self):
self.pipeline.setState(STATE_NULL)
self.pipeline.release()
self.monitor.disconnectFromObj(self.pipeline)
del self.pipeline
del self.monitor
TestCase.tearDown(self)
def testAddRemoveActionSimple(self):
""" Simple add/remove of Actions """
ac1 = BogusAction()
# add the action to the pipeline
res = self.pipeline.addAction(ac1)
# the returned value should be the given action
self.assertEquals(res, ac1)
# it should now be in the list of actions...
self.failUnlessEqual(self.pipeline.actions, [ac1])
# ... and the action should be set to that pipeline
self.failUnlessEqual(ac1.pipeline, self.pipeline)
# the 'action-added' signal should be triggered once
self.assertEquals(self.monitor.action_added_count, 1)
# And it contained our action
self.assertEquals(self.monitor.action_added_collect, [(ac1, )])
# if we try to add that action again, it should be silently ignored
res = self.pipeline.addAction(ac1)
self.assertEquals(res, ac1)
# the list of actions shouldn't have changed
self.failUnlessEqual(self.pipeline.actions, [ac1])
# it shouldn't have changed the pipeline set on action
self.failUnlessEqual(ac1.pipeline, self.pipeline)
# the 'action-added' signal should NOT have been triggered again
self.assertEquals(self.monitor.action_added_count, 1)
# And now to remove it
self.pipeline.removeAction(ac1)
# the 'action-removed' signal should have been triggered once..
self.assertEquals(self.monitor.action_removed_count, 1)
# .. with the action as an argument
self.assertEquals(self.monitor.action_removed_collect, [(ac1, )])
# And there should be no actions left on the pipeline
self.assertEquals(self.pipeline.actions, [])
def testAddRemoveActionAdvanced(self):
""" Advanced add/remove of Actions """
ac1 = BogusAction()
ac2 = BogusAction()
p2 = Pipeline()
res = self.pipeline.addAction(ac1)
self.assertEquals(self.pipeline.actions, [ac1])
# we can't add an action to two pipelines at the same time
self.failUnlessRaises(PipelineError, p2.addAction, ac1)
self.pipeline.removeAction(ac1)
self.assertEquals(self.pipeline.actions, [])
res = self.pipeline.setAction(ac1)
self.assertEquals(res, ac1)
self.assertEquals(self.pipeline.actions, [ac1])
# calling setAction while a similar action is already set should
# return the existing action and not change anything else
res = self.pipeline.setAction(ac2)
self.assertEquals(res, ac1)
self.assertEquals(self.pipeline.actions, [ac1])
# we can't remove active actions while in PAUSED/PLAYING
self.pipeline.setState(STATE_PAUSED)
ac1.state = STATE_ACTIVE
self.assertEquals(self.pipeline.getState(), STATE_PAUSED)
self.failUnlessRaises(PipelineError, self.pipeline.removeAction, ac1)
# but we can remove deactivated actions while in PAUSED/PLAYING
self.pipeline.setState(STATE_PAUSED)
ac1.state = STATE_NOT_ACTIVE
self.assertEquals(self.pipeline.getState(), STATE_PAUSED)
self.pipeline.removeAction(ac1)
# we can add actions while in PAUSED/PLAYING
res = self.pipeline.addAction(ac2)
self.assertEquals(res, ac2)
self.assertEquals(self.pipeline.actions, [ac2])
self.pipeline.removeAction(ac2)
p2.release()
#.........这里部分代码省略.........
示例2: testPipelineAction
# 需要导入模块: from pitivi.pipeline import Pipeline [as 别名]
# 或者: from pitivi.pipeline.Pipeline import removeAction [as 别名]
def testPipelineAction(self):
"""Testing pipeline state interaction"""
p = Pipeline()
a = Action()
src = VideoTestSourceFactory()
sink = common.FakeSinkFactory()
sink.addInputStream(MultimediaStream(gst.Caps("any"), pad_name="sink"))
# set the Action on the Pipeline
p.setAction(a)
self.assertEquals(p.actions, [a])
# set the Producer and Consumer
a.addProducers(src)
a.addConsumers(sink)
a.setLink(src, sink)
# activate the Action
a.activate()
self.failUnlessEqual(src.current_bins, 1)
self.failUnlessEqual(sink.current_bins, 1)
# call get*ForFactoryStream(..., automake=False). They will raise
# exceptions if the action didn't create the elements.
bin = p.getBinForFactoryStream(src, automake=False)
p.releaseBinForFactoryStream(src)
tee = p.getTeeForFactoryStream(src, automake=False)
p.releaseTeeForFactoryStream(src)
bin = p.getBinForFactoryStream(sink, automake=False)
queue = p.getQueueForFactoryStream(sink, automake=False)
self.failUnlessEqual(queue.get_pad('src').get_peer().get_parent(), bin)
p.releaseBinForFactoryStream(sink)
p.releaseQueueForFactoryStream(sink)
# switch to PLAYING
p.setState(STATE_PLAYING)
# wait half a second
# switch to READY
p.setState(STATE_READY)
# deactivate action
a.deactivate()
# since we're the last Action to be release, the tees
# and queues should have gone
self.failUnlessEqual(src.current_bins, 0)
self.failUnlessEqual(sink.current_bins, 0)
# remove the action from the pipeline
p.removeAction(a)
# the gst.Pipeline should be empty !
self.assertEquals(list(p._pipeline.elements()), [])
p.release()