From 71d607d65d3a1fa47b313e74465fae122b94a90a Mon Sep 17 00:00:00 2001 From: Vladimir Umek Date: Sun, 15 Feb 2026 08:32:11 +0100 Subject: [PATCH 1/5] vStream: simplify CONTROL register MODE handling - either input or output --- interface/vstream/python/vsi_audio.py | 33 ++++++++--------- interface/vstream/python/vsi_audio_server.py | 37 ++++++++------------ interface/vstream/python/vsi_video.py | 31 ++++++++-------- interface/vstream/python/vsi_video_server.py | 31 ++++++---------- interface/vstream/source/vstream_audio_in.c | 13 +++---- interface/vstream/source/vstream_audio_out.c | 13 +++---- interface/vstream/source/vstream_video_in.c | 13 +++---- interface/vstream/source/vstream_video_out.c | 13 +++---- 8 files changed, 75 insertions(+), 109 deletions(-) diff --git a/interface/vstream/python/vsi_audio.py b/interface/vstream/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/interface/vstream/python/vsi_audio.py +++ b/interface/vstream/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/interface/vstream/python/vsi_audio_server.py b/interface/vstream/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/interface/vstream/python/vsi_audio_server.py +++ b/interface/vstream/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/interface/vstream/python/vsi_video.py b/interface/vstream/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/interface/vstream/python/vsi_video.py +++ b/interface/vstream/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/interface/vstream/python/vsi_video_server.py b/interface/vstream/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/interface/vstream/python/vsi_video_server.py +++ b/interface/vstream/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/interface/vstream/source/vstream_audio_in.c b/interface/vstream/source/vstream_audio_in.c index b1e8fa62..3fc27d89 100644 --- a/interface/vstream/source/vstream_audio_in.c +++ b/interface/vstream/source/vstream_audio_in.c @@ -1,5 +1,5 @@ /*--------------------------------------------------------------------------- - * Copyright (c) 2025 Arm Limited (or its affiliates). + * Copyright (c) 2025-2026 Arm Limited (or its affiliates). * All rights reserved. * SPDX-License-Identifier: Apache-2.0 * @@ -44,12 +44,9 @@ /* CONTROL register definitions */ #define CONTROL_ENABLE_Pos 0U /* Cleared= Disabled, Set= Enabled */ #define CONTROL_ENABLE_Msk (1UL << CONTROL_ENABLE_Pos) -#define CONTROL_MODE_Pos 1U /* Bits 2:1 */ -#define CONTROL_MODE_Msk (3UL << CONTROL_MODE_Pos) /* 0= Disabled, 1= Input, 2= Output */ -#define CONTROL_MODE_NONE (0U << CONTROL_MODE_Pos) -#define CONTROL_MODE_IN (1U << CONTROL_MODE_Pos) -#define CONTROL_MODE_OUT (2U << CONTROL_MODE_Pos) -#define CONTROL_CONTINUOUS_Pos 3U /* Cleared= Single, Set= Continuous */ +#define CONTROL_MODE_Pos 1U /* Cleared= Input, Set= Output */ +#define CONTROL_MODE_Msk (1UL << CONTROL_MODE_Pos) +#define CONTROL_CONTINUOUS_Pos 2U /* Cleared= Single, Set= Continuous */ #define CONTROL_CONTINUOUS_Msk (1UL << CONTROL_CONTINUOUS_Pos) /* STATUS register definitions */ @@ -172,7 +169,7 @@ static int32_t Initialize (vStreamEvent_t event_cb) { AudioIn->DMA.Control = 0U; AudioIn->IRQ.Clear = IRQ_TIMER_OVERFLOW_Msk; AudioIn->IRQ.Enable = IRQ_TIMER_OVERFLOW_Msk; - AudioIn->CONTROL = CONTROL_MODE_IN; + AudioIn->CONTROL = 0U; /* Set audio configuration */ AudioIn->DEVICE = AUDIO_IN_DEVICE; diff --git a/interface/vstream/source/vstream_audio_out.c b/interface/vstream/source/vstream_audio_out.c index 3725b243..17f0ba73 100644 --- a/interface/vstream/source/vstream_audio_out.c +++ b/interface/vstream/source/vstream_audio_out.c @@ -1,5 +1,5 @@ /*--------------------------------------------------------------------------- - * Copyright (c) 2025 Arm Limited (or its affiliates). + * Copyright (c) 2025-2026 Arm Limited (or its affiliates). * All rights reserved. * SPDX-License-Identifier: Apache-2.0 * @@ -44,12 +44,9 @@ /* CONTROL register definitions */ #define CONTROL_ENABLE_Pos 0U /* Cleared= Disabled, Set= Enabled */ #define CONTROL_ENABLE_Msk (1UL << CONTROL_ENABLE_Pos) -#define CONTROL_MODE_Pos 1U /* Bits 2:1 */ -#define CONTROL_MODE_Msk (3UL << CONTROL_MODE_Pos) /* 0= Disabled, 1= Input, 2= Output */ -#define CONTROL_MODE_NONE (0U << CONTROL_MODE_Pos) -#define CONTROL_MODE_IN (1U << CONTROL_MODE_Pos) -#define CONTROL_MODE_OUT (2U << CONTROL_MODE_Pos) -#define CONTROL_CONTINUOUS_Pos 3U /* Cleared= Single, Set= Continuous */ +#define CONTROL_MODE_Pos 1U /* Cleared= Input, Set= Output */ +#define CONTROL_MODE_Msk (1UL << CONTROL_MODE_Pos) +#define CONTROL_CONTINUOUS_Pos 2U /* Cleared= Single, Set= Continuous */ #define CONTROL_CONTINUOUS_Msk (1UL << CONTROL_CONTINUOUS_Pos) /* STATUS register definitions */ @@ -172,7 +169,7 @@ static int32_t Initialize (vStreamEvent_t event_cb) { AudioOut->DMA.Control = 0U; AudioOut->IRQ.Clear = IRQ_TIMER_OVERFLOW_Msk; AudioOut->IRQ.Enable = IRQ_TIMER_OVERFLOW_Msk; - AudioOut->CONTROL = CONTROL_MODE_OUT; + AudioOut->CONTROL = CONTROL_MODE_Msk; /* Set audio configuration */ AudioOut->DEVICE = AUDIO_OUT_DEVICE; diff --git a/interface/vstream/source/vstream_video_in.c b/interface/vstream/source/vstream_video_in.c index 0af20931..e66a9546 100644 --- a/interface/vstream/source/vstream_video_in.c +++ b/interface/vstream/source/vstream_video_in.c @@ -1,5 +1,5 @@ /*--------------------------------------------------------------------------- - * Copyright (c) 2025 Arm Limited (or its affiliates). + * Copyright (c) 2025-2026 Arm Limited (or its affiliates). * All rights reserved. * SPDX-License-Identifier: Apache-2.0 * @@ -45,12 +45,9 @@ /* CONTROL register definitions */ #define CONTROL_ENABLE_Pos 0U /* Cleared= Disabled, Set= Enabled */ #define CONTROL_ENABLE_Msk (1UL << CONTROL_ENABLE_Pos) -#define CONTROL_MODE_Pos 1U /* Bits 2:1 */ -#define CONTROL_MODE_Msk (3UL << CONTROL_MODE_Pos) /* 0= Disabled, 1= Input, 2= Output */ -#define CONTROL_MODE_NONE (0U << CONTROL_MODE_Pos) -#define CONTROL_MODE_IN (1U << CONTROL_MODE_Pos) -#define CONTROL_MODE_OUT (2U << CONTROL_MODE_Pos) -#define CONTROL_CONTINUOUS_Pos 3U /* Cleared= Single, Set= Continuous */ +#define CONTROL_MODE_Pos 1U /* Cleared= Input, Set= Output */ +#define CONTROL_MODE_Msk (1UL << CONTROL_MODE_Pos) +#define CONTROL_CONTINUOUS_Pos 2U /* Cleared= Single, Set= Continuous */ #define CONTROL_CONTINUOUS_Msk (1UL << CONTROL_CONTINUOUS_Pos) /* STATUS register definitions */ @@ -174,7 +171,7 @@ static int32_t Initialize (vStreamEvent_t event_cb) { VideoIn->DMA.Control = 0U; VideoIn->IRQ.Clear = IRQ_TIMER_OVERFLOW_Msk; VideoIn->IRQ.Enable = IRQ_TIMER_OVERFLOW_Msk; - VideoIn->CONTROL = CONTROL_MODE_IN; + VideoIn->CONTROL = 0U; /* Set video configuration */ VideoIn->DEVICE = VIDEO_IN_DEVICE; diff --git a/interface/vstream/source/vstream_video_out.c b/interface/vstream/source/vstream_video_out.c index 1246cb18..cebfb2d9 100644 --- a/interface/vstream/source/vstream_video_out.c +++ b/interface/vstream/source/vstream_video_out.c @@ -1,5 +1,5 @@ /*--------------------------------------------------------------------------- - * Copyright (c) 2025 Arm Limited (or its affiliates). + * Copyright (c) 2025-2026 Arm Limited (or its affiliates). * All rights reserved. * SPDX-License-Identifier: Apache-2.0 * @@ -45,12 +45,9 @@ /* CONTROL register definitions */ #define CONTROL_ENABLE_Pos 0U /* Cleared= Disabled, Set= Enabled */ #define CONTROL_ENABLE_Msk (1UL << CONTROL_ENABLE_Pos) -#define CONTROL_MODE_Pos 1U /* Bits 2:1 */ -#define CONTROL_MODE_Msk (3UL << CONTROL_MODE_Pos) /* 0= Disabled, 1= Input, 2= Output */ -#define CONTROL_MODE_NONE (0U << CONTROL_MODE_Pos) -#define CONTROL_MODE_IN (1U << CONTROL_MODE_Pos) -#define CONTROL_MODE_OUT (2U << CONTROL_MODE_Pos) -#define CONTROL_CONTINUOUS_Pos 3U /* Cleared= Single, Set= Continuous */ +#define CONTROL_MODE_Pos 1U /* Cleared= Input, Set= Output */ +#define CONTROL_MODE_Msk (1UL << CONTROL_MODE_Pos) +#define CONTROL_CONTINUOUS_Pos 2U /* Cleared= Single, Set= Continuous */ #define CONTROL_CONTINUOUS_Msk (1UL << CONTROL_CONTINUOUS_Pos) /* STATUS register definitions */ @@ -173,7 +170,7 @@ static int32_t Initialize (vStreamEvent_t event_cb) { VideoOut->DMA.Control = 0U; VideoOut->IRQ.Clear = IRQ_TIMER_OVERFLOW_Msk; VideoOut->IRQ.Enable = IRQ_TIMER_OVERFLOW_Msk; - VideoOut->CONTROL = CONTROL_MODE_OUT; + VideoOut->CONTROL = CONTROL_MODE_Msk; /* Set video configuration */ VideoOut->FRAME_WIDTH = VIDEO_OUT_FRAME_WIDTH; From 680c3f6abc18ca3ed072466a2ba3e78780fea5ef Mon Sep 17 00:00:00 2001 From: Vladimir Umek Date: Sun, 15 Feb 2026 08:54:37 +0100 Subject: [PATCH 2/5] board: update CONTROL register mode handling in layers --- board/Corstone-300/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- board/Corstone-300/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- board/Corstone-310/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- board/Corstone-310/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- board/Corstone-315/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- board/Corstone-315/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- board/Corstone-320/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- board/Corstone-320/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- 16 files changed, 220 insertions(+), 308 deletions(-) diff --git a/board/Corstone-300/vsi/python/vsi_audio.py b/board/Corstone-300/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/board/Corstone-300/vsi/python/vsi_audio.py +++ b/board/Corstone-300/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-300/vsi/python/vsi_audio_server.py b/board/Corstone-300/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/board/Corstone-300/vsi/python/vsi_audio_server.py +++ b/board/Corstone-300/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/board/Corstone-300/vsi/python/vsi_video.py b/board/Corstone-300/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/board/Corstone-300/vsi/python/vsi_video.py +++ b/board/Corstone-300/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-300/vsi/python/vsi_video_server.py b/board/Corstone-300/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/board/Corstone-300/vsi/python/vsi_video_server.py +++ b/board/Corstone-300/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/board/Corstone-310/vsi/python/vsi_audio.py b/board/Corstone-310/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/board/Corstone-310/vsi/python/vsi_audio.py +++ b/board/Corstone-310/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-310/vsi/python/vsi_audio_server.py b/board/Corstone-310/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/board/Corstone-310/vsi/python/vsi_audio_server.py +++ b/board/Corstone-310/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/board/Corstone-310/vsi/python/vsi_video.py b/board/Corstone-310/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/board/Corstone-310/vsi/python/vsi_video.py +++ b/board/Corstone-310/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-310/vsi/python/vsi_video_server.py b/board/Corstone-310/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/board/Corstone-310/vsi/python/vsi_video_server.py +++ b/board/Corstone-310/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/board/Corstone-315/vsi/python/vsi_audio.py b/board/Corstone-315/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/board/Corstone-315/vsi/python/vsi_audio.py +++ b/board/Corstone-315/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-315/vsi/python/vsi_audio_server.py b/board/Corstone-315/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/board/Corstone-315/vsi/python/vsi_audio_server.py +++ b/board/Corstone-315/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/board/Corstone-315/vsi/python/vsi_video.py b/board/Corstone-315/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/board/Corstone-315/vsi/python/vsi_video.py +++ b/board/Corstone-315/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-315/vsi/python/vsi_video_server.py b/board/Corstone-315/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/board/Corstone-315/vsi/python/vsi_video_server.py +++ b/board/Corstone-315/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/board/Corstone-320/vsi/python/vsi_audio.py b/board/Corstone-320/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/board/Corstone-320/vsi/python/vsi_audio.py +++ b/board/Corstone-320/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-320/vsi/python/vsi_audio_server.py b/board/Corstone-320/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/board/Corstone-320/vsi/python/vsi_audio_server.py +++ b/board/Corstone-320/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/board/Corstone-320/vsi/python/vsi_video.py b/board/Corstone-320/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/board/Corstone-320/vsi/python/vsi_video.py +++ b/board/Corstone-320/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/board/Corstone-320/vsi/python/vsi_video_server.py b/board/Corstone-320/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/board/Corstone-320/vsi/python/vsi_video_server.py +++ b/board/Corstone-320/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) From cc49b51e05e109e012294be6314d99a45045f811 Mon Sep 17 00:00:00 2001 From: Vladimir Umek Date: Sun, 15 Feb 2026 09:05:53 +0100 Subject: [PATCH 3/5] example: update CONTROL register MODE handling in examples --- .../Corstone-300/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-300/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-310/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-310/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-315/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-315/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-320/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-320/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-300/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-300/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-310/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-310/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-315/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-315/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-320/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-320/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-300/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-300/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-310/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-310/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-315/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-315/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- .../Corstone-320/vsi/python/vsi_audio.py | 33 ++++++++--------- .../vsi/python/vsi_audio_server.py | 37 ++++++++----------- .../Corstone-320/vsi/python/vsi_video.py | 31 +++++++--------- .../vsi/python/vsi_video_server.py | 31 ++++++---------- 48 files changed, 660 insertions(+), 924 deletions(-) diff --git a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio.py b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio.py +++ b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio_server.py b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio_server.py +++ b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video.py b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video.py +++ b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video_server.py b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video_server.py +++ b/example/FVP_Audio/board/Corstone-300/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio.py b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio.py +++ b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio_server.py b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio_server.py +++ b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video.py b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video.py +++ b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video_server.py b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video_server.py +++ b/example/FVP_Audio/board/Corstone-310/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio.py b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio.py +++ b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio_server.py b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio_server.py +++ b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video.py b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video.py +++ b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video_server.py b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video_server.py +++ b/example/FVP_Audio/board/Corstone-315/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio.py b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio.py +++ b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio_server.py b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio_server.py +++ b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video.py b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video.py +++ b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video_server.py b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video_server.py +++ b/example/FVP_Audio/board/Corstone-320/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio.py b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio.py +++ b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio_server.py b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio_server.py +++ b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video.py b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video.py +++ b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video_server.py b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video_server.py +++ b/example/FVP_Hello/board/Corstone-300/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio.py b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio.py +++ b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio_server.py b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio_server.py +++ b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video.py b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video.py +++ b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video_server.py b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video_server.py +++ b/example/FVP_Hello/board/Corstone-310/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio.py b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio.py +++ b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio_server.py b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio_server.py +++ b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video.py b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video.py +++ b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video_server.py b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video_server.py +++ b/example/FVP_Hello/board/Corstone-315/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio.py b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio.py +++ b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio_server.py b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio_server.py +++ b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video.py b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video.py +++ b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video_server.py b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video_server.py +++ b/example/FVP_Hello/board/Corstone-320/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio.py b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio.py +++ b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio_server.py b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio_server.py +++ b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video.py b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video.py +++ b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video_server.py b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video_server.py +++ b/example/FVP_Video/board/Corstone-300/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio.py b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio.py +++ b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio_server.py b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio_server.py +++ b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video.py b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video.py +++ b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video_server.py b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video_server.py +++ b/example/FVP_Video/board/Corstone-310/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio.py b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio.py +++ b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio_server.py b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio_server.py +++ b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video.py b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video.py +++ b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video_server.py b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video_server.py +++ b/example/FVP_Video/board/Corstone-315/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) diff --git a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio.py b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio.py index a71574af..b4243bca 100644 --- a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio.py +++ b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -88,14 +88,14 @@ def setMode(self, mode): """ Set the mode of the audio stream (input/output). Args: - mode: 1 for input, 2 for output. + mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -214,13 +214,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Audio.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Audio.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Audio.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio_server.py b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio_server.py index dafa5942..1eef5415 100644 --- a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio_server.py +++ b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_audio_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Arm Limited. All rights reserved. +# Copyright (c) 2025-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ supported_files = ['wav'] # Mode Input/Output -MODE_AUDIO_NONE = 0 -MODE_AUDIO_INPUT = 1 -MODE_AUDIO_OUTPUT = 2 +MODE_AUDIO_INPUT = 0 +MODE_AUDIO_OUTPUT = 1 class AudioServer: """Implements a TCP server for audio streaming and sample I/O. @@ -92,7 +91,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_AUDIO_INPUT self.active = False self.eos = False self.stream = None @@ -112,24 +111,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_AUDIO_INPUT: self.mode = MODE_AUDIO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_AUDIO_OUTPUT: self.mode = MODE_AUDIO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_AUDIO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,7 +310,7 @@ def _scan_audio_devices(self): except Exception as e: logger.warning(f"Error getting default devices: {e}") - if (self.mode == MODE_AUDIO_INPUT): + if self.mode == MODE_AUDIO_INPUT: # Log input devices logger.info("--- INPUT DEVICES ---") if input_devices: @@ -329,7 +325,7 @@ def _scan_audio_devices(self): rval = default_input['index'] - if (self.mode == MODE_AUDIO_OUTPUT): + if self.mode == MODE_AUDIO_OUTPUT: # Log output devices logger.debug("--- OUTPUT DEVICES ---") if output_devices: @@ -378,10 +374,6 @@ def _enableStream(self): Returns: None """ - if self.mode != MODE_AUDIO_INPUT and self.mode != MODE_AUDIO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -411,7 +403,7 @@ def _enableStream(self): ) self.stream.start_stream() - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: logger.debug("_enableStream: use speakers for output streaming") self.stream = self.pyaudio_obj.open( format=audio_format, @@ -446,7 +438,7 @@ def _enableStream(self): logger.info(f"_enableStream: input file properties: channels={file_channels}, rate={file_rate}, bits={file_bits}") - elif self.mode == MODE_AUDIO_OUTPUT: + if self.mode == MODE_AUDIO_OUTPUT: self.wave_file = wave.open(file, 'wb') self.wave_file.setnchannels(self.channels) self.wave_file.setsampwidth(self.sample_bits // 8) @@ -597,8 +589,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) @@ -633,6 +625,7 @@ def run(self): elif cmd == self.CLOSE_SERVER: self.stop() + def stop(self): """ Stop the audio server. diff --git a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video.py b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video.py index 47a2af2f..1f96ecbf 100644 --- a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video.py +++ b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -89,12 +89,12 @@ def setMode(self, mode): Args: mode: 0 for input, 1 for output. Returns: - True if the mode is valid, False otherwise. + Current mode value (0=input, 1=output). """ self.conn.send([self.SET_MODE, mode]) - mode_valid = self.conn.recv() + current_mode = self.conn.recv() - return mode_valid + return current_mode def setDevice(self, device): """ @@ -213,13 +213,12 @@ def closeServer(self): CONTROL_ENABLE_Pos = 0 CONTROL_ENABLE_Msk = 1<> CONTROL_MODE_Pos) - if mode_valid: - logger.info("wrCONTROL: CONTROL register updated: MODE changed") + # MODE bit changed + if (value & CONTROL_MODE_Msk) != 0: + logger.info("wrCONTROL: CONTROL register updated: MODE bit set") + Video.setMode(CONTROL_MODE_OUT) else: - # Reset Mode - Video.setMode(0) - value &= ~CONTROL_MODE_Msk - logger.error("wrCONTROL: CONTROL register updated: MODE cleared") + logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") + Video.setMode(CONTROL_MODE_IN) if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: # ENABLE bit changed diff --git a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video_server.py b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video_server.py index 3699eb3b..d2c278a4 100644 --- a/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video_server.py +++ b/example/FVP_Video/board/Corstone-320/vsi/python/vsi_video_server.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025 Arm Limited. All rights reserved. +# Copyright (c) 2023-2026 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -53,9 +53,8 @@ video_fourcc = {'wmv' : 'WMV1', 'avi' : 'MJPG', 'mp4' : 'mp4v'} # Mode Input/Output -MODE_VIDEO_NONE = 0 -MODE_VIDEO_INPUT = 1 -MODE_VIDEO_OUTPUT = 2 +MODE_VIDEO_INPUT = 0 +MODE_VIDEO_OUTPUT = 1 class VideoServer: """Implements a TCP server for video streaming and frame I/O. @@ -98,7 +97,7 @@ def __init__(self, address, authkey): self.listener = Listener(address, authkey=authkey.encode('utf-8')) self.device = 0 self.filename = None - self.mode = None + self.mode = MODE_VIDEO_INPUT self.active = False self.video = True self.stream = None @@ -118,24 +117,21 @@ def _setMode(self, mode): Args: mode: The I/O mode (input or output). + Returns: + Current mode value. """ - mode_valid = False - if mode == MODE_VIDEO_INPUT: self.mode = MODE_VIDEO_INPUT logger.info("_setMode: set stream mode to Input") - mode_valid = True elif mode == MODE_VIDEO_OUTPUT: self.mode = MODE_VIDEO_OUTPUT logger.info("_setMode: set stream mode to Output") - mode_valid = True else: - self.mode = MODE_VIDEO_NONE - logger.error("_setMode: invalid mode") + logger.error(f"_setMode: invalid mode {mode}, keeping current mode") - return mode_valid + return self.mode def _setDevice(self, device): """ @@ -314,11 +310,6 @@ def _enableStream(self): Returns: None """ - - if self.mode != MODE_VIDEO_INPUT and self.mode != MODE_VIDEO_OUTPUT: - logger.error("_enableStream: invalid mode") - return - if self.active: logger.info("_enableStream: stream already active") return @@ -360,7 +351,7 @@ def _enableStream(self): self.frame_ratio = video_fps / self.frame_rate logger.debug(f"_enableStream: source/target frame ratio={self.frame_ratio}") - elif self.mode == MODE_VIDEO_OUTPUT: + if self.mode == MODE_VIDEO_OUTPUT: # Output mode: write to video file or display window if self.filename != None: # Filename specified: output to file @@ -686,8 +677,8 @@ def run(self): payload = recv[1:] # Payload if cmd == self.SET_MODE: - mode_valid = self._setMode(payload[0]) - conn.send(mode_valid) + current_mode = self._setMode(payload[0]) + conn.send(current_mode) elif cmd == self.SET_DEVICE: device_valid = self._setDevice(payload[0]) From ab3355dfc60843701f7372d392927f8df954a163 Mon Sep 17 00:00:00 2001 From: Vladimir Umek Date: Sun, 15 Feb 2026 09:20:37 +0100 Subject: [PATCH 4/5] example: configure FVP_Audio/FVP_Video to use files for input/output --- .../SSE-300-MPS3/vstream_audio_in_config.h | 2 +- .../SSE-300-MPS3/vstream_audio_out_config.h | 2 +- example/FVP_Audio/sample/audio_in.wav | Bin 0 -> 118316 bytes .../SSE-300-MPS3/vstream_video_in_config.h | 2 +- .../SSE-300-MPS3/vstream_video_out_config.h | 2 +- example/FVP_Video/sample/video_in.mp4 | Bin 0 -> 493455 bytes 6 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 example/FVP_Audio/sample/audio_in.wav create mode 100644 example/FVP_Video/sample/video_in.mp4 diff --git a/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_in_config.h b/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_in_config.h index 72953b07..1f60dfc4 100644 --- a/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_in_config.h +++ b/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_in_config.h @@ -54,7 +54,7 @@ // Defines the name of the audio file to be used for streaming. // Default: "" (use streaming device instead of file) #ifndef AUDIO_IN_FILENAME -#define AUDIO_IN_FILENAME "" +#define AUDIO_IN_FILENAME "./sample/audio_in.wav" #endif #endif diff --git a/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_out_config.h b/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_out_config.h index a8b6859e..8f87d002 100644 --- a/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_out_config.h +++ b/example/FVP_Audio/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_audio_out_config.h @@ -54,7 +54,7 @@ // Defines the name of the audio file to be used for streaming. // Default: "" (use streaming device instead of file) #ifndef AUDIO_OUT_FILENAME -#define AUDIO_OUT_FILENAME "" +#define AUDIO_OUT_FILENAME "./sample/audio_out.wav" #endif #endif diff --git a/example/FVP_Audio/sample/audio_in.wav b/example/FVP_Audio/sample/audio_in.wav new file mode 100644 index 0000000000000000000000000000000000000000..8d767f6e379c4860d09d7c645c5acd91b39e8c7d GIT binary patch literal 118316 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 Defines the name of the video file to be used for streaming. // Default: "" (use streaming device instead of file) #ifndef VIDEO_IN_FILENAME -#define VIDEO_IN_FILENAME "" +#define VIDEO_IN_FILENAME "./sample/video_in.mp4" #endif #endif diff --git a/example/FVP_Video/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_video_out_config.h b/example/FVP_Video/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_video_out_config.h index da9aa7e7..b72e7b22 100644 --- a/example/FVP_Video/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_video_out_config.h +++ b/example/FVP_Video/board/Corstone-300/RTE/CMSIS_Driver/SSE-300-MPS3/vstream_video_out_config.h @@ -57,7 +57,7 @@ // Defines the name of the video file to be used for streaming. // Default: "" (use streaming device instead of file) #ifndef VIDEO_OUT_FILENAME -#define VIDEO_OUT_FILENAME "" +#define VIDEO_OUT_FILENAME "./sample/video_out.mp4" #endif #endif diff --git a/example/FVP_Video/sample/video_in.mp4 b/example/FVP_Video/sample/video_in.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..feb921755d1e65e68f8d6a9761fa0df2b9714258 GIT binary patch literal 493455 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࢔fnJ~=PRMGe=5$Q8xQ-n8AEIoUGBz- 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

d^Jrr>9z?Cri|5MN?4DpB8l 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

s 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°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%0A$(7 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 N?gRsIbX{=6_%AlhL}vg1 literal 0 HcmV?d00001 From bd5c3a3b9a7dcca7f488fb62f559ed97bd60facd Mon Sep 17 00:00:00 2001 From: Vladimir Umek Date: Sun, 15 Feb 2026 09:26:56 +0100 Subject: [PATCH 5/5] Add GH Actions workflows for testing the examples --- .ci/vcpkg-configuration.json | 18 +++ .github/workflows/Build_FVP_Audio.yml | 88 +++++++++++++++ .github/workflows/Build_FVP_Video.yml | 88 +++++++++++++++ .github/workflows/Build_Run_FVP_Hello.yml | 127 ++++++++++++++++++++++ 4 files changed, 321 insertions(+) create mode 100644 .ci/vcpkg-configuration.json create mode 100644 .github/workflows/Build_FVP_Audio.yml create mode 100644 .github/workflows/Build_FVP_Video.yml create mode 100644 .github/workflows/Build_Run_FVP_Hello.yml diff --git a/.ci/vcpkg-configuration.json b/.ci/vcpkg-configuration.json new file mode 100644 index 00000000..b651f0d2 --- /dev/null +++ b/.ci/vcpkg-configuration.json @@ -0,0 +1,18 @@ +{ + "registries": [ + { + "name": "arm", + "kind": "artifact", + "location": "https://artifacts.tools.arm.com/vcpkg-registry" + } + ], + "requires": { + "arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.12.0", + "arm:compilers/arm/armclang": "^6.24.0", + "arm:compilers/arm/arm-none-eabi-gcc": "^14.3.1", + "arm:compilers/arm/llvm-embedded": "21.1.1", + "arm:models/arm/avh-fvp": "11.30.29", + "arm:tools/kitware/cmake": "^3.31.5", + "arm:tools/ninja-build/ninja": "^1.13.2" + } +} \ No newline at end of file diff --git a/.github/workflows/Build_FVP_Audio.yml b/.github/workflows/Build_FVP_Audio.yml new file mode 100644 index 00000000..64686d37 --- /dev/null +++ b/.github/workflows/Build_FVP_Audio.yml @@ -0,0 +1,88 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the License); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Build FVP_Audio Example +on: + + workflow_dispatch: + pull_request: + paths: + # Execute workflow when PR modifies this file + - .github/workflows/Build_FVP_Audio.yml + # Execute workflow when PR modifies example directory + - example/FVP_Audio/** + push: + # Execute workflow when main branch is updated + branches: [main] + + #schedule: + # - cron: '00 20 * * 6' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + Build: + strategy: + matrix: + context: [ + {proj: FVP_Audio, build_type: Debug, target_type: SSE-300}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-300}, + + {proj: FVP_Audio, build_type: Debug, target_type: SSE-310}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-310}, + + {proj: FVP_Audio, build_type: Debug, target_type: SSE-315}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-315}, + + {proj: FVP_Audio, build_type: Debug, target_type: SSE-320}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-320} + ] + toolchain: [AC6, GCC, CLANG] + + fail-fast: false + + runs-on: ubuntu-latest + + steps: + - name: Checkout current repository + uses: actions/checkout@v6 + + - name: Install tools + uses: ARM-software/cmsis-actions/vcpkg@v1 + with: + config: ".ci/vcpkg-configuration.json" + + - name: Activate Arm tool license + uses: ARM-software/cmsis-actions/armlm@v1 + + - name: Initialize CMSIS pack root folder + run: | + cpackget init https://www.keil.com/pack/index.pidx + cpackget update-index + + - name: Add local CMSIS packs + run: | + cpackget add ./ARM.AVH_FVP.pdsc + + - name: Build Test + working-directory: ./example/FVP_Audio + run: | + cbuild FVP_Audio.csolution.yml \ + --context .${{matrix.context.build_type}}+${{matrix.context.target_type}} \ + --toolchain ${{matrix.toolchain}} \ + --update-rte --rebuild --packs diff --git a/.github/workflows/Build_FVP_Video.yml b/.github/workflows/Build_FVP_Video.yml new file mode 100644 index 00000000..082591a3 --- /dev/null +++ b/.github/workflows/Build_FVP_Video.yml @@ -0,0 +1,88 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the License); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Build FVP_Video Example +on: + + workflow_dispatch: + pull_request: + paths: + # Execute workflow when PR modifies this file + - .github/workflows/Build_FVP_Video.yml + # Execute workflow when PR modifies example directory + - example/FVP_Video/** + push: + # Execute workflow when main branch is updated + branches: [main] + + #schedule: + # - cron: '00 20 * * 6' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + Build: + strategy: + matrix: + context: [ + {proj: FVP_Video, build_type: Debug, target_type: SSE-300}, + {proj: FVP_Video, build_type: Release, target_type: SSE-300}, + + {proj: FVP_Video, build_type: Debug, target_type: SSE-310}, + {proj: FVP_Video, build_type: Release, target_type: SSE-310}, + + {proj: FVP_Video, build_type: Debug, target_type: SSE-315}, + {proj: FVP_Video, build_type: Release, target_type: SSE-315}, + + {proj: FVP_Video, build_type: Debug, target_type: SSE-320}, + {proj: FVP_Video, build_type: Release, target_type: SSE-320} + ] + toolchain: [AC6, GCC, CLANG] + + fail-fast: false + + runs-on: ubuntu-latest + + steps: + - name: Checkout current repository + uses: actions/checkout@v6 + + - name: Install tools + uses: ARM-software/cmsis-actions/vcpkg@v1 + with: + config: ".ci/vcpkg-configuration.json" + + - name: Activate Arm tool license + uses: ARM-software/cmsis-actions/armlm@v1 + + - name: Initialize CMSIS pack root folder + run: | + cpackget init https://www.keil.com/pack/index.pidx + cpackget update-index + + - name: Add local CMSIS packs + run: | + cpackget add ./ARM.AVH_FVP.pdsc + + - name: Build Test + working-directory: ./example/FVP_Video + run: | + cbuild FVP_Video.csolution.yml \ + --context .${{matrix.context.build_type}}+${{matrix.context.target_type}} \ + --toolchain ${{matrix.toolchain}} \ + --update-rte --rebuild --packs diff --git a/.github/workflows/Build_Run_FVP_Hello.yml b/.github/workflows/Build_Run_FVP_Hello.yml new file mode 100644 index 00000000..bec75d62 --- /dev/null +++ b/.github/workflows/Build_Run_FVP_Hello.yml @@ -0,0 +1,127 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the License); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Build and Run FVP_Hello Example +on: + + workflow_dispatch: + pull_request: + paths: + # Execute workflow when PR modifies this file + - .github/workflows/Build_Run_FVP_Hello.yml + # Execute workflow when PR modifies example directory + - example/FVP_Hello/** + push: + # Execute workflow when main branch is updated + branches: [main] + + #schedule: + # - cron: '00 20 * * 6' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + Build_Run: + strategy: + matrix: + context: [ + {proj: FVP_Hello, build_type: Debug, target_type: SSE-300, model: FVP_Corstone_SSE-300, layer: Corstone-300, mps: mps3}, + {proj: FVP_Hello, build_type: Release, target_type: SSE-300, model: FVP_Corstone_SSE-300, layer: Corstone-300, mps: mps3}, + + {proj: FVP_Hello, build_type: Debug, target_type: SSE-310, model: FVP_Corstone_SSE-310, layer: Corstone-310, mps: mps3}, + {proj: FVP_Hello, build_type: Release, target_type: SSE-310, model: FVP_Corstone_SSE-310, layer: Corstone-310, mps: mps3}, + + {proj: FVP_Hello, build_type: Debug, target_type: SSE-315, model: FVP_Corstone_SSE-315, layer: Corstone-315, mps: mps4}, + {proj: FVP_Hello, build_type: Release, target_type: SSE-315, model: FVP_Corstone_SSE-315, layer: Corstone-315, mps: mps4}, + + {proj: FVP_Hello, build_type: Debug, target_type: SSE-320, model: FVP_Corstone_SSE-320, layer: Corstone-320, mps: mps4}, + {proj: FVP_Hello, build_type: Release, target_type: SSE-320, model: FVP_Corstone_SSE-320, layer: Corstone-320, mps: mps4} + ] + toolchain: [ + {name: AC6, ext: axf}, + {name: GCC, ext: elf}, + {name: CLANG, ext: elf} + ] + + fail-fast: false + + runs-on: ubuntu-latest + + steps: + - name: Checkout current repository + uses: actions/checkout@v6 + + - name: Install tools + uses: ARM-software/cmsis-actions/vcpkg@v1 + with: + config: ".ci/vcpkg-configuration.json" + + - name: Activate Arm tool license + uses: ARM-software/cmsis-actions/armlm@v1 + + - name: Initialize CMSIS pack root folder + run: | + cpackget init https://www.keil.com/pack/index.pidx + cpackget update-index + + - name: Add local CMSIS packs + run: | + cpackget add ./ARM.AVH_FVP.pdsc + + - name: Build example + working-directory: ./example/FVP_Hello + run: | + cbuild FVP_Hello.csolution.yml \ + --context .${{matrix.context.build_type}}+${{matrix.context.target_type}} \ + --toolchain ${{matrix.toolchain.name}} \ + --update-rte --rebuild --packs + + - name: Execute example + working-directory: ./example/FVP_Hello + run: | + ${{ matrix.context.model }} \ + -a ./out/${{matrix.context.proj}}/${{matrix.context.target_type}}/${{matrix.context.build_type}}/${{matrix.context.proj}}.${{matrix.toolchain.ext}} \ + -f ./board/${{matrix.context.layer}}/fvp_config.txt \ + -C ${{matrix.context.mps}}_board.uart0.out_file=${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log \ + --simlimit 30 + + - name: Show example output + working-directory: ./example/FVP_Hello + run: | + echo "FVP UART output:" + cat ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log + + - name: Check example output + # Disable SSE-320 output check due to known issue with FVP UART output + if: matrix.context.target_type != 'SSE-320' + working-directory: ./example/FVP_Hello + run: | + echo "Check FVP UART output:" + COUNT=$(grep "Hello World" ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log | wc -l) + if [ "$COUNT" -eq 10 ]; then + echo "Passed" + else + echo "Failed" + exit 1 + fi + + - name: Upload FVP UART output log + uses: actions/upload-artifact@v6 + with: + name: ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log + path: ./example/FVP_Hello/${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log