MCPcopy Create free account
hub / github.com/ARM-software/AVH / run

Method run

interface/vstream/python/vsi_video_server.py:653–713  ·  view source on GitHub ↗

Main server loop. Waits for a client connection, then processes commands in a loop. Handles all supported commands: set filename, configure stream, enable/disable stream, read/write frames, close server. Sends responses or frame data as appropriate.

(self)

Source from the content-addressed store, hash-verified

651
652
653 def run(self):
654 """
655 Main server loop.
656
657 Waits for a client connection, then processes commands in a loop.
658 Handles all supported commands: set filename, configure stream, enable/disable stream, read/write frames, close server.
659 Sends responses or frame data as appropriate.
660 """
661 logger.info("Video server started")
662
663 try:
664 conn = self.listener.accept()
665 logger.info(f'Connection accepted {self.listener.address}')
666 except Exception:
667 logger.error("Connection not accepted")
668 return
669
670 while True:
671 try:
672 recv = conn.recv()
673 except EOFError:
674 return
675
676 cmd = recv[0] # Command
677 payload = recv[1:] # Payload
678
679 if cmd == self.SET_MODE:
680 current_mode = self._setMode(payload[0])
681 conn.send(current_mode)
682
683 elif cmd == self.SET_DEVICE:
684 device_valid = self._setDevice(payload[0])
685 conn.send(device_valid)
686
687 elif cmd == self.SET_FILENAME:
688 filename_valid = self._setFilename(payload[0], payload[1])
689 conn.send(filename_valid)
690
691 elif cmd == self.STREAM_CONFIGURE:
692 configuration_valid = self._configureStream(payload[0], payload[1], payload[2], payload[3])
693 conn.send(configuration_valid)
694
695 elif cmd == self.STREAM_ENABLE:
696 self._enableStream()
697 conn.send(self.active)
698
699 elif cmd == self.STREAM_DISABLE:
700 self._disableStream()
701 conn.send(self.active)
702
703 elif cmd == self.FRAME_READ:
704 frame = self._readFrame()
705 conn.send_bytes(frame)
706 conn.send(self.eos)
707
708 elif cmd == self.FRAME_WRITE:
709 frame = conn.recv_bytes()
710 self._writeFrame(frame)

Callers 1

Calls 9

_setModeMethod · 0.95
_setDeviceMethod · 0.95
_setFilenameMethod · 0.95
_configureStreamMethod · 0.95
_enableStreamMethod · 0.95
_disableStreamMethod · 0.95
_readFrameMethod · 0.95
_writeFrameMethod · 0.95
stopMethod · 0.95

Tested by

no test coverage detected