Пример #1
0
        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')
Пример #2
0
    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')
Пример #3
0
            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')
Пример #4
0
        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')
Пример #5
0
            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')
Пример #6
0
        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')
Пример #7
0
                       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')
Пример #8
0
            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")
Пример #9
0
                             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')
Пример #10
0
            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')
Пример #11
0
        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')
Пример #12
0
        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")
Пример #13
0
                                             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')
Пример #14
0
                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')
Пример #15
0
            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')
Пример #16
0
        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')
Пример #17
0
        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')
Пример #18
0
    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")
Пример #19
0
            '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")
Пример #20
0
        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")
Пример #21
0
# -*- 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')
Пример #22
0
               .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')
Пример #23
0
            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')
Пример #24
0
    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')
Пример #25
0
        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')
Пример #26
0
        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')
Пример #27
0
        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')
Пример #28
0
        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')
Пример #29
0
  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')
Пример #30
0
        
        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')
Пример #31
0
        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')
Пример #32
0
        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')
Пример #33
0
        "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')
Пример #34
0
        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')
Пример #35
0
        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")
Пример #36
0
               .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')
Пример #37
0
        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")
Пример #38
0
        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')