@@ -123,7 +123,7 @@ def connect_bus(msgtype, callback, *args):
123123 bus .connect (msgtype , callback , * args )
124124
125125# test sources as stream placeholders
126- def add_test_sources (frontdev = "" ,surfdev = "" ,fake = False ,bgcol = 0xFF00FF00 ,wave = "ticks" ):
126+ def add_test_sources (frontdev = "" ,surfdev = "" ,fake = False ,bgcol = 0xFF00FF00 ,wave = "ticks" , perspective = None ):
127127
128128 if fake :
129129 frontsrc = "videotestsrc is-live=true pattern=smpte ! timeoverlay" if frontdev == "" else frontdev
@@ -136,6 +136,9 @@ def add_test_sources(frontdev="",surfdev="",fake=False,bgcol=0xFF00FF00,wave="ti
136136 surfsrc = "v4l2src do-timestamp=true device=" + surfdev + " ! videorate ! videoconvert"
137137 audiosrc = "alsasrc do-timestamp=true" # "audiorate ! audioconvert"
138138
139+ # FIXME still a bit hackish, maybe solveable without double videoconvert?
140+ vc = None if perspective == None else new_element ("videoconvert" )
141+
139142 logging .debug (" Front Source: " + frontsrc )
140143 logging .debug ("Surface Source: " + surfsrc )
141144 logging .debug (" Audio Source: " + audiosrc )
@@ -145,7 +148,7 @@ def add_test_sources(frontdev="",surfdev="",fake=False,bgcol=0xFF00FF00,wave="ti
145148 new_element ("tee" ,{"allow-not-linked" :True },"fronttestsource" )
146149 ])
147150
148- add_and_link ([ Gst .parse_bin_from_description ( surfsrc , True ),
151+ add_and_link ([ Gst .parse_bin_from_description ( surfsrc , True ), perspective , vc , # <-- NOTE
149152 new_element ("capsfilter" ,{"caps" :Gst .Caps .from_string ("video/x-raw,format=YV12,width=1280,height=720,framerate=15/1" )}),
150153 new_element ("tee" ,{"allow-not-linked" :True },"surfacetestsource" )
151154 ])
0 commit comments