Exemplo n.º 1
0
    def listenRtp(self):
        """Listen for RTP packets."""
        while 1:
            try:
                cachename = CACHE_FILE_NAME + str(
                    self.sessionId) + CACHE_FILE_EXT
                file = open(cachename, "wb+")
                while 1:
                    data = self.rtpSocket.recv(RECV_SIZE)
                    if data:
                        rtpPacket = RtpPacket()
                        rtpPacket.decode(data)

                        # self.cutFrameList.append(rtpPacket.getPayload())

                        currFrameNbr = rtpPacket.seqNum()
                        file.write(rtpPacket.getPayload())
                        print("Current Seq Num: " + str(currFrameNbr))

                        if currFrameNbr > self.frameNbr and rtpPacket.getIfEnd(
                        ):  # Discard the late packet
                            self.frameNbr = currFrameNbr
                            self.updateMovie(cachename)
                            file.close()
                            break
            except:
                # Stop listening upon requesting PAUSE or TEARDOWN
                if self.playEvent.isSet():
                    break

                print('Frame receiving failed!')

                # Upon receiving ACK for TEARDOWN request,
                # close the RTP socket
                if self.teardownAcked == 1:
                    self.rtpSocket.shutdown(socket.SHUT_RDWR)
                    self.rtpSocket.close()
                    break
Exemplo n.º 2
0
    def listenRtp(self):
        while 1:
            try:
                cachename = CACHE_FILE_NAME + str(
                    self.sessionId) + CACHE_FILE_EXT
                file = open(cachename, "wb+")
                while 1:
                    data = self.rtpSocket.recv(RECV_SIZE)

                    if data:
                        rtpPacket = RtpPacket()
                        rtpPacket.decode(data)
                        self.page_main.scrollLine.setValue(rtpPacket.getPot())

                        currFrameNbr = rtpPacket.seqNum()
                        file.write(rtpPacket.getPayload())
                        print("FrameNo:", currFrameNbr)

                        # if new frame
                        if currFrameNbr > self.frameNbr and rtpPacket.getIfEnd(
                        ):
                            self.frameNbr = currFrameNbr
                            self.updateMovie(cachename)
                            file.close()
                            break
            except:
                # pause or teardown
                if self.playEvent.isSet():
                    break

                print('Error: Frame receiving failed!')

                if self.teardownAcked == 1:
                    self.rtpSocket.shutdown(socket.SHUT_RDWR)
                    self.rtpSocket.close()
                    break