def __init__(self, name="", uri=None, **kwargs): """ @param name: the name of the project @param uri: the uri of the project """ Loggable.__init__(self) self.log("name:%s, uri:%s", name, uri) self.name = name self.settings = None self.description = "" self.uri = uri self.urichanged = False self.format = None self.sources = SourceList() self.sources.connect("source-added", self._sourceAddedCb) self.sources.connect("source-removed", self._sourceRemovedCb) self._dirty = False self.timeline = Timeline() self.factory = TimelineSourceFactory(self.timeline) self.pipeline = Pipeline() self.view_action = ViewAction() self.view_action.addProducers(self.factory) self.seeker = Seeker(80) self.settings = ExportSettings() self._videocaps = self.settings.getVideoCaps()
def __init__(self, name="", uri=None, **kwargs): """ name : the name of the project uri : the uri of the project """ Loggable.__init__(self) self.log("name:%s, uri:%s", name, uri) self.name = name self.settings = None self.description = "" self.uri = uri self.urichanged = False self.format = None self.sources = SourceList() self.sources.connect("source-removed", self._sourceRemovedCb) self.settingssigid = 0 self._dirty = False self.timeline = Timeline() self.factory = TimelineSourceFactory(self.timeline) self.pipeline = Pipeline() self.view_action = ViewAction() self.view_action.addProducers(self.factory)
def _viewFactory(self, factory): # FIXME: we change the viewer pipeline unconditionally for now # we need a pipeline for playback pipeline = Pipeline() action = ViewAction() action.addProducers(factory) self.viewer.setPipeline(None) # FIXME: why do I have to call viewer.setAction ? self.viewer.setAction(action) self.viewer.setPipeline(pipeline) self.viewer.play()
def addAction(self): self.debug("action %r", self.action) if self.action == None: if self.actioner == self.RENDERER: self.pipeline.connect('position', self._positionCb) self.pipeline.connect('eos', self._eosCb) self.pipeline.connect('error', self._errorCb) self.debug("Setting pipeline to STOP") self.pipeline.stop() self.debug("Creating action") if len(self.pipeline.factories) == 0: sources = [self.project.factory] else: sources = [ factory for factory in self.pipeline.factories if isinstance(factory, SourceFactory) ] if self.actioner == self.PREVIEWER: self.action = ViewAction() self.action.addProducers(*sources) self.ui.setAction(self.action) self.ui.setPipeline(self.pipeline) elif self.actioner == self.RENDERER: settings = export_settings_to_render_settings( self.settings, self.have_video, self.have_audio) self.action = render_action_for_uri(self.outfile, settings, *sources) #else: # BIG FAT ERROR HERE self.debug("setting action on pipeline") self.pipeline.addAction(self.action) self.debug("Activating action") self.action.activate() if self.actioner == self.RENDERER: self.debug("Setting all active ViewAction to sync=False") for ac in self.pipeline.actions: if isinstance(ac, ViewAction) and ac.isActive(): ac.setSync(False) self.debug("Updating all sources to render settings") self._changeSourceSettings(self.settings) self.debug("setting pipeline to PAUSE") self.pipeline.pause() self.debug("done")
def _getDefaultAction(self): return ViewAction()
def _createAction(self, sources): action = ViewAction() action.addProducers(*sources) self.ui.setAction(action) self.ui.setPipeline(self.pipeline) return action