fr = re.findall("framerate *= *[0-9]+/[0-9]+", self.options['caps']) if fr: newcaps = 'video/x-raw-yuv,' + fr[0] self.set_value_in_pipeline(newcaps, 'gc-v4l2-vrate', 'caps', gst.Caps) #element2 = self.get_by_name('gc-v4l2-vrate') #element2.set_property('caps', gst.Caps(newcaps)) for pos in ['right','left','top','bottom']: self.set_option_in_pipeline('videocrop-'+pos, 'gc-v4l2-crop', pos, int) #element = self.get_by_name('gc-v4l2-crop') #element.set_property(pos, int(self.options['videocrop-' + pos])) def changeValve(self, value): valve1=self.get_by_name('gc-v4l2-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-v4l2-preview') def getSource(self): return self.get_by_name('gc-v4l2-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-v4l2-src') src1.send_event(event) gobject.type_register(GCv4l2) gst.element_register(GCv4l2, 'gc-v4l2-bin') module_register(GCv4l2, 'v4l2')
def getVideoSink(self): return self.get_by_name("gc-hauppauge-preview") def getSource(self): return self.get_by_name("gc-hauppauge-file-src") def send_event_to_src(self, event): # IDEA made a common for all our bins src1 = self.get_by_name("gc-hauppauge-device-src") src2 = self.get_by_name("gc-hauppauge-file-src") src3 = self.get_by_name("gc-hauppauge-audio-src") src1.send_event(event) src2.send_event(event) src3.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-hauppauge-volume") element.set_property("mute", value) def configure(self): ## # v4l2-ctl -d self.options["location"] -s self.options["standard"] # v4l2-ctl -d self.options["location"] -i self.options["input"] pass gobject.type_register(GChauppauge) gst.element_register(GChauppauge, "gc-hauppauge-bin") module_register(GChauppauge, 'hauppauge')
ampli = self.get_by_name("gc-autoaudio-amplify") ampli.set_property("amplification", float(self.options["amplification"])) def changeValve(self, value): valve1=self.get_by_name('gc-autoaudio-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-autoaudio-preview") def getAudioSink(self): return self.get_by_name("gc-autoaudio-preview") def getSource(self): return self.get_by_name("gc-autoaudio-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-autoaudio-src") src1.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-autoaudio-volume") element.set_property("mute", value) gobject.type_register(GCautoaudio) gst.element_register(GCautoaudio, "gc-alsa-bin") module_register(GCautoaudio, 'alsa')
self.set_option_in_pipeline('caps', 'gc-v4l2-filter', 'caps', gst.Caps) fr = re.findall("framerate *= *[0-9]+/[0-9]+", self.options['caps']) if fr: newcaps = 'video/x-raw-yuv,' + fr[0] self.set_value_in_pipeline(newcaps, 'gc-v4l2-vrate', 'caps', gst.Caps) for pos in ['right', 'left', 'top', 'bottom']: self.set_option_in_pipeline('videocrop-' + pos, 'gc-v4l2-crop', pos, int) def changeValve(self, value): valve1 = self.get_by_name('gc-v4l2-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-v4l2-preview') def getSource(self): return self.get_by_name('gc-v4l2-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-v4l2-src') src1.send_event(event) gobject.type_register(GCv4l2) gst.element_register(GCv4l2, 'gc-v4l2-bin') module_register(GCv4l2, 'v4l2')
ampli.set_property("amplification", float(self.options["amplification"])) def changeValve(self, value): valve1=self.get_by_name('gc-audio-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-audio-preview") def getAudioSink(self): return self.get_by_name("gc-audio-preview") def getSource(self): return self.get_by_name("gc-audio-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-audio-src") src1.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-audio-volume") element.set_property("mute", value) gobject.type_register(GCpulse) gst.element_register(GCpulse, "gc-pulse-bin") module_register(GCpulse, 'pulse')
source = self.get_by_name('gc-videotest-src') source.set_property('pattern', int(self.options['pattern'])) coloured = False for properties in gobject.list_properties(source): if properties.name == 'foreground-color': coloured = True if self.options["color1"] and coloured: source.set_property('foreground-color', int(self.options['color1'])) #if self.options["color2"]: # source.set_property('background-color', int(self.options['color2'])) def changeValve(self, value): valve1=self.get_by_name('gc-videotest-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-videotest-preview') def getSource(self): return self.get_by_name('gc-videotest-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-videotest-src') src1.send_event(event) gobject.type_register(GCvideotest) gst.element_register(GCvideotest, 'gc-videotest-bin') module_register(GCvideotest, 'videotest')
pipe_config[self.options['cameratype']]['dec']).replace( 'gc-rtpvideo-mux', self.options['videomux'])) bin = gst.parse_bin_from_description(aux, False) self.add(bin) self.set_option_in_pipeline('location', 'gc-rtpvideo-src', 'location') self.set_value_in_pipeline( path.join(self.options['path'], self.options['file']), 'gc-rtpvideo-sink', 'location') def changeValve(self, value): valve1 = self.get_by_name('gc-rtpvideo-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-rtpvideo-preview') def getSource(self): return self.get_by_name('gc-rtpvideo-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-rtpvideo-src') src1.send_event(event) gobject.type_register(GCrtpvideo) gst.element_register(GCrtpvideo, 'gc-rtpvideo-bin') module_register(GCrtpvideo, 'rtpvideo')
delay = float(self.options["delay"]) minttime = self.get_by_name("gc-min-threshold-time") minttime.set_property("min-threshold-time", long(delay * 1000000000)) def changeValve(self, value): valve1 = self.get_by_name("gc-audio-valve") valve1.set_property("drop", value) def getVideoSink(self): return self.get_by_name("gc-audio-preview") def getAudioSink(self): return self.get_by_name("gc-audio-preview") def getSource(self): return self.get_by_name("gc-audio-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-audio-src") src1.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-audio-volume") element.set_property("mute", value) gobject.type_register(GCpulse) gst.element_register(GCpulse, "gc-pulse-bin") module_register(GCpulse, "pulse")
driver_type, [width, height], self.options['framerate']) self.bin_start = bin_start self.add(bin_start, bin_end) bin_start.link(bin_end) sink = self.get_by_name("gc-epiphan-sink") sink.set_property( 'location', path.join(self.options['path'], self.options['file'])) def changeValve(self, value): valve1 = self.get_by_name('gc-epiphan-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-epiphan-preview") def getSource(self): return self.get_by_name("gc-epiphan-tee") def send_event_to_src(self, event): self.bin_start.send_event_to_src(event) def switch(self): self.bin_start.switch2() gobject.type_register(GCepiphan) gst.element_register(GCepiphan, "gc-epiphan-bin") module_register(GCepiphan, 'epiphan')
if self.options["vumeter"] == False: level.set_property("message", False) def changeValve(self, value): valve1=self.get_by_name('gc-rtp-valve') if self.has_audio: valve2=self.get_by_name('gc-rtp-audio-valve') valve2.set_property('drop', value) valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-rtp-preview') def getSource(self): return self.get_by_name('gc-rtp-src') def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-rtp-volume") element.set_property("mute", value) def send_event_to_src(self, event): src1 = self.get_by_name('gc-rtp-src') src1.send_event(event) gobject.type_register(GCrtp) gst.element_register(GCrtp, 'gc-rtp-bin') module_register(GCrtp, 'rtp')
bin_start = Switcher("canguro", self.options['location'], background, driver_type, [width,height], self.options['framerate']) self.bin_start=bin_start self.add(bin_start, bin_end) bin_start.link(bin_end) sink = self.get_by_name("gc-epiphan-sink") sink.set_property('location', path.join(self.options['path'], self.options['file'])) def changeValve(self, value): valve1=self.get_by_name('gc-epiphan-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-epiphan-preview") def getSource(self): return self.get_by_name("gc-epiphan-tee") def send_event_to_src(self,event): self.bin_start.send_event_to_src(event) def switch(self): self.bin_start.switch2() gobject.type_register(GCepiphan) gst.element_register(GCepiphan, "gc-epiphan-bin") module_register(GCepiphan, 'epiphan')
self.get_by_name("gc-screen-sink").set_property( "location", path.join(self.options["path"], self.options["file"]) ) # self.get_by_name('gc-endx').set_property('endx', self.options['endx']) # self.get_by_name('gc-screen-filter').set_property('caps', gst.Caps(self.options['caps'])) # fr = re.findall("framerate *= *[0-9]+/[0-9]+", self.options['caps']) # if fr: # newcaps = 'video/x-raw-yuv,' + fr[0] # self.get_by_name('gc-screen-caps').set_property('caps', gst.Caps(newcaps)) def changeValve(self, value): valve1 = self.get_by_name("gc-screen-valve") valve1.set_property("drop", value) def getVideoSink(self): return self.get_by_name("gc-screen-preview") def getSource(self): return self.get_by_name("gc-screen-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-screen-src") src1.send_event(event) gobject.type_register(GCscreen) gst.element_register(GCscreen, "gc-screen-bin") module_register(GCscreen, "screen")
self.options['muxer'])) bin = gst.parse_bin_from_description(aux, False) self.add(bin) self.set_option_in_pipeline('caps', 'gc-rtpraw-filter', 'caps', gst.Caps) self.set_option_in_pipeline('location', 'gc-rtpraw-src', 'location') self.set_value_in_pipeline( path.join(self.options['path'], self.options['file']), 'gc-rtpraw-sink', 'location') def changeValve(self, value): valve1 = self.get_by_name('gc-rtpraw-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-rtpraw-preview') def getSource(self): return self.get_by_name('gc-rtpraw-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-rtpraw-src') src1.send_event(event) gobject.type_register(GCrtpraw) gst.element_register(GCrtpraw, 'gc-rtpraw-bin') module_register(GCrtpraw, 'rtpraw')
self.set_value_in_pipeline(self.options[opt], 'gc-rtp-audio-src', opt) if "vumeter" in self.options and self.options["vumeter"] == "False": self.get_by_name("gc-rtp-audio-level").set_property( "message", False) if "amplification" in self.options: self.get_by_name("gc-rtp-audio-amplify").set_property( "amplification", float(self.options["amplification"])) def changeValve(self, value): self.get_by_name('gc-rtp-audio-valve').set_property('drop', value) def getValve(self): return self.get_by_name("gc-rtp-audio-valve") def getVideoSink(self): return self.get_by_name("gc-rtp-audio-preview") def send_event_to_src(self, event): self.get_by_name("gc-rtp-audio-src").send_event(event) def mute_preview(self, value): self.get_by_name("gc-rtp-audio-volume").set_property("mute", value) gobject.type_register(GCrtpaudio) gst.element_register(GCrtpaudio, "gc-rtp-audio-bin") module_register(GCrtpaudio, 'rtpaudio')
ampli = self.get_by_name("gc-audio-amplify") ampli.set_property("amplification", float(self.options["amplification"])) def changeValve(self, value): valve1 = self.get_by_name('gc-audio-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-audio-preview") def getAudioSink(self): return self.get_by_name("gc-audio-preview") def getSource(self): return self.get_by_name("gc-audio-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-audio-src") src1.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-audio-volume") element.set_property("mute", value) gobject.type_register(GCpulse) gst.element_register(GCpulse, "gc-pulse-bin") module_register(GCpulse, 'pulse')
element = self.get_by_name('gc-blackmagic-src') try: mode = int(self.options['input-mode']) except ValueError: mode = self.options['input-mode'] element.set_property('input-mode', mode) for pos in ['right', 'left', 'top', 'bottom']: element = self.get_by_name('gc-blackmagic-crop') element.set_property(pos, int(self.options['videocrop-' + pos])) def changeValve(self, value): valve1 = self.get_by_name('gc-blackmagic-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-blackmagic-preview') def getSource(self): return self.get_by_name('gc-blackmagic-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-blackmagic-src') src1.send_event(event) gobject.type_register(GColdblackmagic) gst.element_register(GColdblackmagic, 'gc-old-blackmagic-bin') module_register(GColdblackmagic, 'oldblackmagic')
return self.get_by_name("gc-hauppauge-preview") def getSource(self): return self.get_by_name("gc-hauppauge-file-src") def send_event_to_src(self,event): # IDEA made a common for all our bins src1 = self.get_by_name("gc-hauppauge-device-src") src2 = self.get_by_name("gc-hauppauge-file-src") src3 = self.get_by_name("gc-hauppauge-audio-src") src1.send_event(event) src2.send_event(event) src3.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-hauppauge-volume") element.set_property("mute", value) def configure(self): ## # v4l2-ctl -d self.options["location"] -s self.options["standard"] # v4l2-ctl -d self.options["location"] -i self.options["input"] pass gobject.type_register(GChauppauge) gst.element_register(GChauppauge, "gc-hauppauge-bin") module_register(GChauppauge, 'hauppauge')
def getVideoSink(self): return self.get_by_name("gc-blackmagic-preview") def getSource(self): return self.get_by_name("gc-blackmagic-src") def getAudioSink(self): return self.get_by_name("gc-blackmagic-audio-preview") def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-blackmagic-volume") element.set_property("mute", value) def send_event_to_src(self, event): src = self.get_by_name("gc-blackmagic-src") src.set_state(gst.STATE_NULL) src.get_state() src_video = self.get_by_name("gc-blackmagic-idvideo") if self.has_audio: src_audio = self.get_by_name("gc-blackmagic-idaudio") src_audio.send_event(event) src_video.send_event(event) gobject.type_register(GCblackmagic) gst.element_register(GCblackmagic, "gc-blackmagic-bin") module_register(GCblackmagic, "blackmagic")
'gc-rtp-sink', 'location') for opt in [ 'debug', 'protocols', 'retry', 'timeout', 'latency', 'tcp-timeout', 'connection-speed', 'nat-method', 'do-rtcp', 'proxy', 'rtp-blocksize', 'user-id', 'user-pw', 'buffer-mode', 'port-range', 'udp-buffer-size' ]: if opt in options: self.set_value_in_pipeline(self.options[opt], 'gc-rtp-src', opt) def changeValve(self, value): valve1 = self.get_by_name('gc-rtp-valve') valve1.set_property('drop', value) def getValve(self): return self.get_by_name("gc-rtp-valve") def getVideoSink(self): return self.get_by_name("gc-rtp-preview") def send_event_to_src(self, event): # IDEA made a common for all our bins src = self.get_by_name('gc-rtp-src') src.send_event(event) gobject.type_register(GCrtpvideo) gst.element_register(GCrtpvideo, "gc-rtp-bin") module_register(GCrtpvideo, "rtpvideo")
aux = pipestr.replace("gc-rtp-preview", "sink-" + self.options['name']) bin = gst.parse_bin_from_description(aux, False) self.add(bin) self.set_value_in_pipeline(self.options['location'], 'gc-rtp-src', 'location') self.set_value_in_pipeline(path.join(self.options['path'], self.options['file']), 'gc-rtp-sink', 'location') for opt in ['debug', 'protocols', 'retry', 'timeout', 'latency', 'tcp-timeout', 'connection-speed', 'nat-method', 'do-rtcp', 'proxy', 'rtp-blocksize', 'user-id', 'user-pw', 'buffer-mode', 'port-range', 'udp-buffer-size']: if opt in options: self.set_value_in_pipeline(self.options[opt], 'gc-rtp-src', opt) def changeValve(self, value): valve1=self.get_by_name('gc-rtp-valve') valve1.set_property('drop', value) def getValve(self): return self.get_by_name("gc-rtp-valve") def getVideoSink(self): return self.get_by_name("gc-rtp-preview") def send_event_to_src(self,event): # IDEA made a common for all our bins src = self.get_by_name('gc-rtp-src') src.send_event(event) gobject.type_register(GCrtpvideo) gst.element_register(GCrtpvideo, "gc-rtp-bin") module_register(GCrtpvideo, "rtpvideo")
# -*- coding:utf-8 -*- # Galicaster, Multistream Recorder and Player # # galicaster/recorder/bins/vga2usb # # Copyright (c) 2011, Teltek Video Research <*****@*****.**> # # This work is licensed under the Creative Commons Attribution- # NonCommercial-ShareAlike 3.0 Unported License. To view a copy of # this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ # or send a letter to Creative Commons, 171 Second Street, Suite 300, # San Francisco, California, 94105, USA. from galicaster.core import context from galicaster.recorder.bins import epiphan from galicaster.recorder import module_register logger = context.get_logger() class GCvga2usb(epiphan.GCepiphan): def __init__(self, options={}): logger.error( "This bin has been renamed to 'epiphan' and is only provided for compatibility. Use epiphan instead" ) epiphan.GCepiphan.__init__(self, options) module_register(GCvga2usb, 'vga2usb')
.replace('gc-rtpvideo-depay', pipe_config[self.options['cameratype']]['depay']) .replace('gc-rtpvideo-videoparse', pipe_config[self.options['cameratype']]['videoparse']) .replace('gc-rtpvideo-dec', pipe_config[self.options['cameratype']]['dec']) .replace('gc-rtpvideo-mux', self.options['videomux'])) bin = gst.parse_bin_from_description(aux, False) self.add(bin) self.set_option_in_pipeline('location', 'gc-rtpvideo-src', 'location') self.set_value_in_pipeline(path.join(self.options['path'], self.options['file']), 'gc-rtpvideo-sink', 'location') def changeValve(self, value): valve1=self.get_by_name('gc-rtpvideo-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-rtpvideo-preview') def getSource(self): return self.get_by_name('gc-rtpvideo-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-rtpvideo-src') src1.send_event(event) gobject.type_register(GCrtpvideo) gst.element_register(GCrtpvideo, 'gc-rtpvideo-bin') module_register(GCrtpvideo, 'rtpvideo')
ampli = self.get_by_name("gc-autoaudio-amplify") ampli.set_property("amplification", float(self.options["amplification"])) def changeValve(self, value): valve1 = self.get_by_name('gc-autoaudio-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-autoaudio-preview") def getAudioSink(self): return self.get_by_name("gc-autoaudio-preview") def getSource(self): return self.get_by_name("gc-autoaudio-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-autoaudio-src") src1.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-autoaudio-volume") element.set_property("mute", value) gobject.type_register(GCautoaudio) gst.element_register(GCautoaudio, "gc-alsa-bin") module_register(GCautoaudio, 'alsa')
def getVideoSink(self): return self.get_by_name('gc-blackmagic-preview') def getSource(self): return self.get_by_name('gc-blackmagic-src') def getAudioSink(self): return self.get_by_name('gc-blackmagic-audio-preview') def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-blackmagic-volume") element.set_property("mute", value) def send_event_to_src(self, event): src = self.get_by_name('gc-blackmagic-src') src.set_state(gst.STATE_NULL) src.get_state() src_video = self.get_by_name('gc-blackmagic-idvideo') if self.has_audio: src_audio = self.get_by_name('gc-blackmagic-idaudio') src_audio.send_event(event) src_video.send_event(event) gobject.type_register(GCblackmagic) gst.element_register(GCblackmagic, 'gc-blackmagic-bin') module_register(GCblackmagic, 'blackmagic')
aux = self.options['pipestr'].replace('gc-custom-preview', 'sink-' + self.options['name']) #bin = gst.parse_bin_from_description(aux, False) bin = gst.parse_launch("( {} )".format(aux)) self.add(bin) self.set_value_in_pipeline(path.join(self.options['path'], self.options['file']), 'gc-custom-sink', 'location') def changeValve(self, value): if value: print "changeValve TRUE " else: print "changeValve FALSE " valve1=self.get_by_name('gc-custom-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-custom-preview') def getSource(self): return self.get_by_name('gc-custom-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-custom-src') src1.send_event(event) gobject.type_register(GCcustom) gst.element_register(GCcustom, 'gc-custom-bin') module_register(GCcustom, 'custom')
if not self.options["vumeter"]: level = self.get_by_name("gc-audiotest-level") level.set_property("message", False) def changeValve(self, value): valve1 = self.get_by_name('gc-audiotest-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-audiotest-preview") def getSource(self): return self.get_by_name("gc-audiotest-src") def getAudioSink(self): return self.get_by_name("gc-audiotest-preview") def send_event_to_src(self, event): src1 = self.get_by_name("gc-audiotest-src") src1.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-audiotest-volume") element.set_property("mute", value) gobject.type_register(GCaudiotest) gst.element_register(GCaudiotest, "gc-audiotest-bin") module_register(GCaudiotest, 'audiotest')
source.set_property('pattern', int(self.options['pattern'])) coloured = False for properties in gobject.list_properties(source): if properties.name == 'foreground-color': coloured = True if self.options["color1"] and coloured: source.set_property('foreground-color', int(self.options['color1'])) #if self.options["color2"]: # source.set_property('background-color', int(self.options['color2'])) def changeValve(self, value): valve1 = self.get_by_name('gc-videotest-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-videotest-preview') def getSource(self): return self.get_by_name('gc-videotest-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-videotest-src') src1.send_event(event) gobject.type_register(GCvideotest) gst.element_register(GCvideotest, 'gc-videotest-bin') module_register(GCvideotest, 'videotest')
element = self.get_by_name('gc-blackmagic-src') try: mode = int(self.options['input-mode']) except ValueError: mode = self.options['input-mode'] element.set_property('input-mode', mode) for pos in ['right','left','top','bottom']: element = self.get_by_name('gc-blackmagic-crop') element.set_property(pos, int(self.options['videocrop-' + pos])) def changeValve(self, value): valve1=self.get_by_name('gc-blackmagic-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-blackmagic-preview') def getSource(self): return self.get_by_name('gc-blackmagic-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-blackmagic-src') src1.send_event(event) gobject.type_register(GColdblackmagic) gst.element_register(GColdblackmagic, 'gc-old-blackmagic-bin') module_register(GColdblackmagic, 'oldblackmagic')
for opt in ['debug', 'protocols', 'retry', 'timeout', 'latency', 'tcp-timeout', 'connection-speed', 'nat-method', 'do-rtcp', 'proxy', 'rtp-blocksize', 'user-id', 'user-pw', 'buffer-mode', 'port-range', 'udp-buffer-size']: if opt in options: self.set_value_in_pipeline(self.options[opt], 'gc-rtp-audio-src', opt) if "vumeter" in self.options and self.options["vumeter"] == "False": self.get_by_name("gc-rtp-audio-level").set_property("message", False) if "amplification" in self.options: self.get_by_name("gc-rtp-audio-amplify").set_property("amplification", float(self.options["amplification"])) def changeValve(self, value): self.get_by_name('gc-rtp-audio-valve').set_property('drop', value) def getValve(self): return self.get_by_name("gc-rtp-audio-valve") def getVideoSink(self): return self.get_by_name("gc-rtp-audio-preview") def send_event_to_src(self, event): self.get_by_name("gc-rtp-audio-src").send_event(event) def mute_preview(self, value): self.get_by_name("gc-rtp-audio-volume").set_property("mute", value) gobject.type_register(GCrtpaudio) gst.element_register(GCrtpaudio, "gc-rtp-audio-bin") module_register(GCrtpaudio, 'rtpaudio')
if not self.options["vumeter"]: level = self.get_by_name("gc-audiotest-level") level.set_property("message", False) def changeValve(self, value): valve1=self.get_by_name('gc-audiotest-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-audiotest-preview") def getSource(self): return self.get_by_name("gc-audiotest-src") def getAudioSink(self): return self.get_by_name("gc-audiotest-preview") def send_event_to_src(self, event): src1 = self.get_by_name("gc-audiotest-src") src1.send_event(event) def mute_preview(self, value): if not self.mute: element = self.get_by_name("gc-audiotest-volume") element.set_property("mute", value) gobject.type_register(GCaudiotest) gst.element_register(GCaudiotest, "gc-audiotest-bin") module_register(GCaudiotest, 'audiotest')
bin_start = Switcher("canguro", self.options['location'], background, driver_type) self.bin_start=bin_start self.add(bin_start, bin_end) bin_start.link(bin_end) sink = self.get_by_name("gc-vga2usb-sink") sink.set_property('location', path.join(self.options['path'], self.options['file'])) def changeValve(self, value): valve1=self.get_by_name('gc-vga2usb-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name("gc-vga2usb-preview") def getSource(self): return self.get_by_name("gc-vga2usb-tee") def send_event_to_src(self,event): # IDEA made a common for all our bins self.bin_start.send_event_to_src(event) def switch(self): # IDEA made a common for all our bins self.bin_start.switch2() gobject.type_register(GCvga2usb) gst.element_register(GCvga2usb, "gc-vga2usb-bin") module_register(GCvga2usb, 'vga2usb')
"videocrop-top": { "type": "integer", "default": 0, "range": (0,200), "description": "Top Cropping", }, "videocrop-bottom": { "type": "integer", "default": 0, "range": (0,200), "description": "Bottom Cropping", }, "videoencoder": { "type": "text", "default": "xvidenc bitrate=5000000", # "ffenc_mpeg2video quantizer=4 gop-size=1 bitrate=10000000", # "x264enc pass=5 quantizer=22 speed-preset=4 profile=1" "description": "Gstreamer encoder element used in the bin", }, "muxer": { "type": "text", "default": "avimux", "description": "Gstreamer encoder muxer used in the bin", }, } def __init__(self, options={}): v4l2.GCv4l2.__init__(self, options) module_register(GCdatapath, 'datapath')
aux = self.options['pipestr'].replace('gc-custom-preview', 'sink-' + self.options['name']) #bin = gst.parse_bin_from_description(aux, False) bin = gst.parse_launch("( {} )".format(aux)) self.add(bin) self.set_value_in_pipeline( path.join(self.options['path'], self.options['file']), 'gc-custom-sink', 'location') def changeValve(self, value): valve1 = self.get_by_name('gc-custom-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-custom-preview') def getSource(self): return self.get_by_name('gc-custom-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-custom-src') src1.send_event(event) gobject.type_register(GCcustom) gst.element_register(GCcustom, 'gc-custom-bin') module_register(GCcustom, 'custom')
self.set_value_in_pipeline(path.join(self.options["path"], self.options["file"]), "gc-v4l2-sink", "location") self.set_option_in_pipeline("caps", "gc-v4l2-filter", "caps", gst.Caps) fr = re.findall("framerate *= *[0-9]+/[0-9]+", self.options["caps"]) if fr: newcaps = "video/x-raw-yuv," + fr[0] self.set_value_in_pipeline(newcaps, "gc-v4l2-vrate", "caps", gst.Caps) for pos in ["right", "left", "top", "bottom"]: self.set_option_in_pipeline("videocrop-" + pos, "gc-v4l2-crop", pos, int) def changeValve(self, value): valve1 = self.get_by_name("gc-v4l2-valve") valve1.set_property("drop", value) def getVideoSink(self): return self.get_by_name("gc-v4l2-preview") def getSource(self): return self.get_by_name("gc-v4l2-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-v4l2-src") src1.send_event(event) gobject.type_register(GCv4l2) gst.element_register(GCv4l2, "gc-v4l2-bin") module_register(GCv4l2, "v4l2")
.replace('gc-rtpraw-dec', pipe_config[self.options['cameratype']]['dec']) .replace('gc-rtpraw-enc', self.options['videoencoder']) .replace('gc-rtpraw-muxer', self.options['muxer'])) bin = gst.parse_bin_from_description(aux, False) self.add(bin) self.set_option_in_pipeline('caps', 'gc-rtpraw-filter', 'caps', gst.Caps) self.set_option_in_pipeline('location', 'gc-rtpraw-src', 'location') self.set_value_in_pipeline(path.join(self.options['path'], self.options['file']), 'gc-rtpraw-sink', 'location') def changeValve(self, value): valve1=self.get_by_name('gc-rtpraw-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-rtpraw-preview') def getSource(self): return self.get_by_name('gc-rtpraw-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-rtpraw-src') src1.send_event(event) gobject.type_register(GCrtpraw) gst.element_register(GCrtpraw, 'gc-rtpraw-bin') module_register(GCrtpraw, 'rtpraw')
element = self.get_by_name("gc-blackmagic-src") try: mode = int(self.options["input-mode"]) except ValueError: mode = self.options["input-mode"] element.set_property("input-mode", mode) for pos in ["right", "left", "top", "bottom"]: element = self.get_by_name("gc-blackmagic-crop") element.set_property(pos, int(self.options["videocrop-" + pos])) def changeValve(self, value): valve1 = self.get_by_name("gc-blackmagic-valve") valve1.set_property("drop", value) def getVideoSink(self): return self.get_by_name("gc-blackmagic-preview") def getSource(self): return self.get_by_name("gc-blackmagic-src") def send_event_to_src(self, event): src1 = self.get_by_name("gc-blackmagic-src") src1.send_event(event) gobject.type_register(GColdblackmagic) gst.element_register(GColdblackmagic, "gc-old-blackmagic-bin") module_register(GColdblackmagic, "oldblackmagic")
self.add(bin) self.get_by_name('gc-screen-sink').set_property( 'location', path.join(self.options['path'], self.options['file'])) #self.get_by_name('gc-endx').set_property('endx', self.options['endx']) #self.get_by_name('gc-screen-filter').set_property('caps', gst.Caps(self.options['caps'])) #fr = re.findall("framerate *= *[0-9]+/[0-9]+", self.options['caps']) #if fr: # newcaps = 'video/x-raw-yuv,' + fr[0] # self.get_by_name('gc-screen-caps').set_property('caps', gst.Caps(newcaps)) def changeValve(self, value): valve1 = self.get_by_name('gc-screen-valve') valve1.set_property('drop', value) def getVideoSink(self): return self.get_by_name('gc-screen-preview') def getSource(self): return self.get_by_name('gc-screen-src') def send_event_to_src(self, event): src1 = self.get_by_name('gc-screen-src') src1.send_event(event) gobject.type_register(GCscreen) gst.element_register(GCscreen, 'gc-screen-bin') module_register(GCscreen, 'screen')