1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 from flumotion.common import errors, gstreamer, messages
19 from flumotion.component import feedcomponent
20
21 __version__ = "$Rev$"
22
23
24 -class Screencast(feedcomponent.ParseLaunchComponent):
25
27
28 def getProps():
29 ret = []
30 for k, default in (('width', 320),
31 ('height', 240),
32 ('x-offset', 0),
33 ('y-offset', 0),
34 ('framerate', (5, 1))):
35 ret.append(properties.get(k, default))
36 return ret
37 width, height, x_offset, y_offset, framerate = getProps()
38
39 src = 'ximagesrc'
40 if not gstreamer.element_factory_exists(src):
41 raise errors.MissingElementError(src)
42
43 return (
44 '%s startx=%d starty=%d endx=%d endy=%d use-damage=false'
45 ' ! ffmpegcolorspace'
46 ' ! video/x-raw-yuv,framerate=(fraction)%s,format=(fourcc)I420'
47 % (src, x_offset, y_offset, width + x_offset, height + y_offset,
48 '%d/%d' % framerate))
49