Exemple #1
0
 def prepare_connection(self, request):
     new_id, _, _ = self.server.connection_manager_server.add_connection(
         '', 'Output', -1, ''
     )
     self.info(f'startup, add {new_id:d} to connection table')
     d = request.notifyFinish()
     d.addBoth(self.requestFinished, new_id, request)
Exemple #2
0
    def start(self, request=None):
        self.info("GStreamerPipeline start %r %r", request,
                  self.pipeline_description)
        self.requests.append(request)
        self.pipeline.set_state(gst.STATE_PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished, request)
Exemple #3
0
    def start(self, request=None):
        self.info(
            f'GStreamerPipeline start {request} {self.pipeline_description}')
        self.requests.append(request)
        self.pipeline.set_state(Gst.State.PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished, request)
Exemple #4
0
    def start(self, request=None):
        self.info("start %r", request)
        self.pipeline = gst.parse_launch(self.pipeline_description % self.uri)
        enc = self.pipeline.get_by_name('mux')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        enc.link(sink)
        self.pipeline.set_state(gst.STATE_PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #5
0
    def start(self, request=None):
        self.info(f'start {request}')
        self.pipeline = Gst.parse_launch(
            f'{self.uri} ! decodebin ! audioconvert ! lame name=enc')
        enc = self.pipeline.get_by_name('enc')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        enc.link(sink)
        self.pipeline.set_state(Gst.State.PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #6
0
    def start(self, request=None):
        self.info("start %r", request)
        self.pipeline = gst.parse_launch(
            "%s ! decodebin ! audioconvert ! lame name=enc" % self.uri)
        enc = self.pipeline.get_by_name('enc')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        enc.link(sink)
        self.pipeline.set_state(gst.STATE_PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #7
0
    def start(self, request=None):
        self.info(f'start {request}')
        self.pipeline = Gst.parse_launch(
            f'{self.uri} ! qtdemux name=d ! queue ! h264parse '
            f'! mp4mux name=mux d. ! queue ! mux.')
        mux = self.pipeline.get_by_name('mux')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        mux.link(sink)
        self.pipeline.set_state(Gst.State.PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #8
0
    def start(self, request=None):
        self.info("start %r", request)
        self.pipeline = gst.parse_launch(
            "%s ! qtdemux name=d ! queue ! h264parse ! mp4mux name=mux d. ! queue ! mux."
            % self.uri)
        mux = self.pipeline.get_by_name('mux')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        mux.link(sink)
        self.pipeline.set_state(gst.STATE_PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #9
0
    def start(self, request=None):
        self.info("start %r", request)
        ### FIXME mpeg2enc
        self.pipeline = gst.parse_launch(
            "mpegtsmux name=mux %s ! decodebin2 name=d ! queue ! ffmpegcolorspace ! mpeg2enc ! queue ! mux. d. ! queue ! audioconvert ! twolame ! queue ! mux."
            % self.uri)
        enc = self.pipeline.get_by_name('mux')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        enc.link(sink)
        self.pipeline.set_state(gst.STATE_PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #10
0
    def start(self, request=None):
        if self.pipeline_description is None:
            raise NotImplementedError(
                'Warning: operation cancelled. You must set a value for '
                'GStreamerTranscoder.pipeline_description')
        self.info(f'start {request}')
        self.pipeline = Gst.parse_launch(self.pipeline_description % self.uri)
        enc = self.pipeline.get_by_name('mux')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        enc.link(sink)
        self.pipeline.set_state(Gst.State.PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #11
0
    def start(self, request=None):
        self.info(f'start {request}')
        # FIXME - mpeg2enc
        self.pipeline = Gst.parse_launch(
            f'mpegtsmux name=mux {self.uri} ! decodebin2 name=d ! queue '
            f'! ffmpegcolorspace ! mpeg2enc ! queue ! mux. d. '
            f'! queue ! audioconvert ! twolame ! queue ! mux.')
        enc = self.pipeline.get_by_name('mux')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        enc.link(sink)
        self.pipeline.set_state(Gst.State.PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #12
0
    def start(self, request=None):
        self.info(f'start {request}')
        '''
        # what we actually want here is a pipeline that calls
        # us when it knows about the size of the original image,
        # and allows us now to adjust the caps-filter with the
        # calculated values for width and height
        new_width = 160
        new_height = 160
        if original_width > 160:
            new_heigth = \
                int(float(original_height) * (160.0/float(original_width)))
            if new_height > 160:
                new_width = \
                    int(float(new_width) * (160.0/float(new_height)))
        elif original_height > 160:
            new_width = \
                int(float(original_width) * (160.0/float(original_height)))
        '''
        try:
            type = request.args['type'][0]
        except IndexError:
            type = 'jpeg'
        if type == 'png':
            self.pipeline = Gst.parse_launch(
                f'{self.uri} ! decodebin2 ! videoscale '
                f'! video/x-raw-yuv,width=160,height=160 ! pngenc name=enc')
            self.contentType = 'image/png'
        else:
            self.pipeline = Gst.parse_launch(
                f'{self.uri} ! decodebin2 ! videoscale '
                f'! video/x-raw-yuv,width=160,height=160 ! jpegenc name=enc')
            self.contentType = 'image/jpeg'
        enc = self.pipeline.get_by_name('enc')
        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        enc.link(sink)
        self.pipeline.set_state(Gst.State.PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #13
0
    def start(self, request=None):
        self.info(f'PCMTranscoder start {request} {self.uri}')
        self.pipeline = Gst.parse_launch(
            f'{self.uri} ! decodebin ! audioconvert name=conv')

        conv = self.pipeline.get_by_name('conv')
        caps = Gst.Caps.from_string(
            'audio/x-raw-int,rate=44100,endianness=4321,'
            'channels=2,width=16,depth=16,signed=true')
        # FIXME: UGLY. 'filter' is a python builtin!
        filter = Gst.ElementFactory.make('capsfilter', 'filter')
        filter.set_property('caps', caps)
        self.pipeline.add(filter)
        conv.link(filter)

        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        filter.link(sink)
        self.pipeline.set_state(Gst.State.PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)
Exemple #14
0
    def start(self, request=None):
        self.info("PCMTranscoder start %r %r", request, self.uri)
        self.pipeline = gst.parse_launch(
            "%s ! decodebin ! audioconvert name=conv" % self.uri)

        conv = self.pipeline.get_by_name('conv')
        caps = gst.Caps(
            "audio/x-raw-int,rate=44100,endianness=4321,channels=2,width=16,depth=16,signed=true"
        )
        #FIXME: UGLY. 'filter' is a python builtin!
        filter = gst.element_factory_make("capsfilter", "filter")
        filter.set_property("caps", caps)
        self.pipeline.add(filter)
        conv.link(filter)

        sink = DataSink(destination=self.destination, request=request)
        self.pipeline.add(sink)
        filter.link(sink)
        self.pipeline.set_state(gst.STATE_PLAYING)

        d = request.notifyFinish()
        d.addBoth(self.requestFinished)