Package flumotion :: Package component :: Package encoders :: Package dirac :: Module dirac
[hide private]

Source Code for Module flumotion.component.encoders.dirac.dirac

 1  # -*- Mode: Python -*- 
 2  # vi:si:et:sw=4:sts=4:ts=4 
 3  # 
 4  # Flumotion - a streaming media server 
 5  # Copyright (C) 2004,2005,2006,2007 Fluendo, S.L. (www.fluendo.com). 
 6  # All rights reserved. 
 7   
 8  # This file may be distributed and/or modified under the terms of 
 9  # the GNU General Public License version 2 as published by 
10  # the Free Software Foundation. 
11  # This file is distributed without any warranty; without even the implied 
12  # warranty of merchantability or fitness for a particular purpose. 
13  # See "LICENSE.GPL" in the source distribution for more information. 
14   
15  # Licensees having purchased or holding a valid Flumotion Advanced 
16  # Streaming Server license may use this file in accordance with the 
17  # Flumotion Advanced Streaming Server Commercial License Agreement. 
18  # See "LICENSE.Flumotion" in the source distribution for more information. 
19   
20  # Headers in this file shall remain intact. 
21   
22  from flumotion.common import gstreamer, messages 
23  from flumotion.common.i18n import N_, gettexter 
24  from flumotion.worker.checks import check 
25  from flumotion.component import feedcomponent 
26   
27   
28  T_ = gettexter() 
29   
30   
31 -class Dirac(feedcomponent.ParseLaunchComponent):
32 checkTimestamp = True 33 checkOffset = True 34
35 - def do_check(self):
36 d = check.do_check(self, check.checkPlugin, 'schro', 'gst-plugins-bad') 37 38 def check_schroenc_bug(result, component): 39 if gstreamer.get_plugin_version('schro') == (1, 0, 7, 0): 40 m = messages.Warning( 41 T_(N_("Version %s of the '%s' GStreamer plug-in " 42 "contains a bug.\n"), '1.0.7', 'schroenc')) 43 m.add(T_(N_("The downstream components might stay hungry.\n"))) 44 m.add(T_(N_("The bug has been fixed during the transition of " 45 "'%s' to the '%s' plug-ins set. " 46 "Please upgrade '%s' to version %s, " 47 "which contains the fixed plug-in."), 48 'schroenc', 'gst-plugins-bad', 'schroenc', '0.10.14')) 49 component.addMessage(m) 50 return result
51 return d.addCallback(check_schroenc_bug, self)
52
53 - def get_pipeline_string(self, properties):
54 return "ffmpegcolorspace ! schroenc name=encoder"
55
56 - def configure_pipeline(self, pipeline, properties):
57 element = pipeline.get_by_name('encoder') 58 59 bitrate = properties.get('bitrate', None) 60 if bitrate: 61 self.debug('Setting GStreamer property bitrate to %r' % bitrate) 62 element.set_property("bitrate", int(bitrate))
63