[pitivi] Refactor pitivi.effects
- From: Edward Hervey <edwardrv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] Refactor pitivi.effects
- Date: Wed, 22 Sep 2010 13:37:48 +0000 (UTC)
commit d3301d7101bc4628eb4443a4ee56149430a17bda
Author: Thibault Saunier <tsaunier gnome org>
Date: Fri Jul 2 16:39:45 2010 -0400
Refactor pitivi.effects
pitivi/effects.py | 50 +++++++++++++++++++++-----------------------------
1 files changed, 21 insertions(+), 29 deletions(-)
---
diff --git a/pitivi/effects.py b/pitivi/effects.py
index ba0f579..9a1d6a7 100644
--- a/pitivi/effects.py
+++ b/pitivi/effects.py
@@ -44,6 +44,9 @@ from pitivi.stream import get_stream_for_pad
# _ Complex Audio/Video Effects
(VIDEO_EFFECT, AUDIO_EFFECT) = range(2)
+USELESS_EFFECTS = ["colorconvert", "coglogoinsert", "festival",]
+
+
video_categories = (
("All video effects", ("")),
("Colors", ("cogcolorspace", "alphacolor", "videobalance", "gamma", "alpha",\
@@ -102,7 +105,7 @@ def get_categories(effect, effectType):
return categories
-#Function to parse effects human readable properties
+#Convenience function for better effect properties lisibility
def getNiceEffectName(effect):
uselessWords = re.compile('(Video |effect |Audio )')
return uselessWords.sub("", (escape(effect.get_longname()))).title()
@@ -120,32 +123,23 @@ class Magician:
self.simple_audio = []
self.effect_factories_dict = {}
self.transitions = []
- self._getSimpleFilters()
- self._getEffectPlugins()
+ self._getAllEffects()
- def _getSimpleFilters(self):
+ def _getAllEffects(self):
# go trough the list of element factories and
- # add them to the correct list
+ # add them to the correct list filtering if necessary
factlist = gst.registry_get_default().get_feature_list(gst.ElementFactory)
- for fact in factlist:
- klass = fact.get_klass()
- if "Effect" in klass and not self._filterUslessEffect(fact):
- factory = EffectFactory(fact.get_name(), fact.get_name())
- added = self.addStreams(fact, factory)
+ for element_factory in factlist:
+ klass = element_factory.get_klass()
+ if "Effect" in klass and element_factory.get_name() not in USELESS_EFFECTS:
+ factory = EffectFactory(element_factory.get_name(), element_factory.get_name())
+ added = self.addStreams(element_factory, factory)
if added is True:
if 'Audio' in klass:
- self.simple_audio.append(fact)
+ self.simple_audio.append(element_factory)
elif 'Video' in klass:
- self.simple_video.append(fact)
- self.addFactory(fact.get_name(), factory)
-
- def _filterUslessEffect(self, effect):
- return effect.get_name() in ["colorconvert", "coglogoinsert", "festival", ]
-
- def _getEffectPlugins(self):
- # find all the pitivi plugins that provide effects
- # TODO : implement
- pass
+ self.simple_video.append(element_factory)
+ self.addFactory(element_factory.get_name(), factory)
def addFactory(self, name, factory):
self.effect_factories_dict[name]=factory
@@ -155,14 +149,13 @@ class Magician:
def getElementFromFactoryName(self, name, effectType):
if effectType == VIDEO_EFFECT:
- for fact in self.simple_video:
- if fact.get_name() == name:
- return fact
+ for element_factory in self.simple_video:
+ if element_factory.get_name() == name:
+ return element_factory
elif effectType == AUDIO_EFFECT:
- for fact in self.simple_audio:
- if fact.get_name() == name:
- return fact
-
+ for element_factory in self.simple_audio:
+ if element_factory.get_name() == name:
+ return element_factory
def addStreams(self, element, factory):
pads = element.get_static_pad_templates()
@@ -181,5 +174,4 @@ class Magician:
elif padTmp.direction == gst.PAD_SINK:
stream = get_stream_for_pad(pad)
factory.addOutputStream(stream)
-
return True
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]