Exemplo n.º 1
0
 def handle_reset_event(self, pad, event):
     if gstreamer.event_is_flumotion_reset(event):
         self.debug("Got reset event in the encoder... reseting it!")
         encoder = self.get_element('encoder')
         encoder.set_state(gst.STATE_READY)
         self.try_start_pipeline(force=True)
     return True
Exemplo n.º 2
0
 def handle_reset_event(self, pad, event):
     if gstreamer.event_is_flumotion_reset(event):
         self.debug("Got reset event in the encoder... reseting it!")
         encoder = self.get_element('encoder')
         encoder.set_state(gst.STATE_READY)
         self.try_start_pipeline(force=True)
     return True
Exemplo n.º 3
0
 def handle_reset_event(self, pad, probe_info, unused_user_data):
     event = probe_info.get_event()
     if gstreamer.event_is_flumotion_reset(event):
         self.debug("Got reset event in the encoder... reseting it!")
         encoder = self.get_element('encoder')
         encoder.set_state(Gst.State.READY)
         self.try_start_pipeline(force=True)
     return True
Exemplo n.º 4
0
    def _depay_reset_event(self, pad, event, eater):
        if event.type != gst.EVENT_CUSTOM_DOWNSTREAM:
            return True
        if not gstreamer.event_is_flumotion_reset(event):
            return True
        self.info("Received flumotion-reset, not droping buffers anymore")

        self.dropStreamHeaders = False
        if self.disconnectedPads:
            return False
        return True
Exemplo n.º 5
0
    def _depay_reset_event(self, pad, event, eater):
        if event.type != gst.EVENT_CUSTOM_DOWNSTREAM:
            return True
        if not gstreamer.event_is_flumotion_reset(event):
            return True
        self.info("Received flumotion-reset, not droping buffers anymore")

        self.dropStreamHeaders = False
        if self.disconnectedPads:
            return False
        return True
Exemplo n.º 6
0
    def eventfunc(self, pad, event, srcpad):
        self.debug("Received event %r from %s" % (event, event.src))
        try:
            self._lock.acquire()
            if event.type == gst.EVENT_NEWSEGMENT:
                u, r, f, start, s, position = event.parse_new_segment()
                self._update_sync_point(start, position)
            if gstreamer.event_is_flumotion_reset(event):
                self._resetReceived = True
                self._send_new_segment = True
        finally:
            self._lock.release()

        # forward all the events except the new segment events
        if event.type != gst.EVENT_NEWSEGMENT:
            return srcpad.push_event(event)
        return True
Exemplo n.º 7
0
        def input_reset_event(pad, event):
            if event.type != gst.EVENT_CUSTOM_DOWNSTREAM:
                return True
            if not gstreamer.event_is_flumotion_reset(event):
                return True
            if self.disconnectedPads:
                return False

            self.log('RESET: in reset event received on input pad %r', pad)
            self._reset_count = len(self.feeders)
            # Block all the eaters and send an eos downstream the pipeline to
            # drain all the elements. It will also unlink the pipeline from the
            # input queues.
            self._block_eaters()
            # Do not propagate the event. It is sent from the other side of
            # the pipeline after it has been drained.
            return False
Exemplo n.º 8
0
    def eventfunc(self, pad, event, srcpad):
        self.debug("Received event %r from %s" % (event, event.src))
        try:
            self._lock.acquire()
            if event.type == gst.EVENT_NEWSEGMENT:
                u, r, f, start, s, position = event.parse_new_segment()
                self._update_sync_point(start, position)
            if gstreamer.event_is_flumotion_reset(event):
                self._resetReceived = True
                self._send_new_segment = True
        finally:
            self._lock.release()

        # forward all the events except the new segment events
        if event.type != gst.EVENT_NEWSEGMENT:
            return srcpad.push_event(event)
        return True
Exemplo n.º 9
0
        def input_reset_event(pad, event):
            if event.type != gst.EVENT_CUSTOM_DOWNSTREAM:
                return True
            if not gstreamer.event_is_flumotion_reset(event):
                return True
            if self.disconnectedPads:
                return False

            self.log("RESET: in reset event received on input pad %r", pad)
            self._reset_count = len(self.feeders)
            # Block all the eaters and send an eos downstream the pipeline to
            # drain all the elements. It will also unlink the pipeline from the
            # input queues.
            self._block_eaters()
            # Do not propagate the event. It is sent from the other side of
            # the pipeline after it has been drained.
            return False
Exemplo n.º 10
0
 def eventfunc(self, pad, event):
     self.debug("Received event %r from %s" % (event, event.src))
     if gstreamer.event_is_flumotion_reset(event) and self._use_audiorate():
         self._audiorate.set_state(gst.STATE_READY)
         self._audiorate.set_state(gst.STATE_PLAYING)
     return self._srcPad.push_event(event)
Exemplo n.º 11
0
 def eventfunc(self, pad, event):
     self.debug("Received event %r from %s" % (event, event.src))
     if gstreamer.event_is_flumotion_reset(event):
         self._videorate.set_state(gst.STATE_READY)
         self._videorate.set_state(gst.STATE_PLAYING)
     return self._srcPad.push_event(event)