| Trees | Indices | Help |
|---|
|
|
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.component import feedcomponent
23 from flumotion.common import messages
24
25 from flumotion.common.messages import N_
26 T_ = messages.gettexter('flumotion')
27
29 checkTimestamp = True
30 checkOffset = True
31
33 self.debug('running Theora check')
34 from flumotion.worker.checks import encoder
35 d = encoder.checkTheora()
36
37 d.addCallback(self._checkCallback)
38
39 return d
40
44
47
49 element = pipeline.get_by_name('encoder')
50
51 props = ('bitrate',
52 'quality',
53 'keyframe-threshold',
54 'keyframe-mindistance',
55 ('quick-compress', 'quick'),
56 ('keyframe-maxdistance', 'keyframe-freq'),
57 ('keyframe-maxdistance', 'keyframe-force'),
58 'noise-sensitivity')
59
60 # F0.6: remove this code
61 # before 0.3.2, bitrate was interpreted as kbps, inconsistent
62 # with other flumotion components
63 # safe to assume that nobody will want less than 10 kbit/sec
64 # also, MikeS *requires* a kbit/sec to be seen as 1000 bit/sec
65 if 'bitrate' in properties:
66 if properties['bitrate'] < 10000:
67 self.addMessage(
68 messages.Warning(T_(N_(
69 "Your configuration uses 'bitrate' expressed in "
70 "kbit/sec. Please convert it to a value in bit/sec by "
71 "multiplying the value by 1000.")), id='bitrate'))
72 properties['bitrate'] *= 1000
73
74 for p in props:
75 pproperty = isinstance(p, tuple) and p[0] or p
76 eproperty = isinstance(p, tuple) and p[1] or p
77
78 if pproperty in properties:
79 self.debug('Setting GStreamer property %s to %r' % (
80 eproperty, properties[pproperty]))
81 # FIXME: GStreamer 0.10 has bitrate in kbps, inconsistent
82 # with all other elements, so fix it up
83 if pproperty == 'bitrate':
84 element.set_property(eproperty,
85 int(properties[pproperty]/1000))
86 else:
87 element.set_property(eproperty, properties[pproperty])
88
| Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Sun Mar 7 10:48:06 2010 | http://epydoc.sourceforge.net |