aravis icon indicating copy to clipboard operation
aravis copied to clipboard

Aravis Sniffer Mode

Open Rz-Rz opened this issue 9 months ago • 0 comments

Is your feature request related to a problem? Please describe. Currently, Aravis requires exclusive control access to stream from a GigE Vision camera. This becomes an issue when another application already holds control access, making it impossible to use Aravis to view or debug streams from cameras in active use by other software. Additionally, integrating multiple cameras where not all are directly controlled can be challenging because of this limitation.

Describe the solution you'd like I would like to propose adding a "listener" or "sniffer" mode to Aravis, allowing it to passively receive and decode GVSP (GigE Vision Streaming Protocol) packets without requiring controller privileges. This mode would enable monitoring a camera feed already controlled by another application. Integrating such a sniffer capability within Aravis would provide a consistent API and streamline the handling of both controlled and uncontrolled camera streams.

This feature would ideally include:

Packet-level capture functionality (using raw sockets or libpcap).

Automatic frame reassembly from captured GVSP packets.

Decoding of standard GigE Vision image payloads (e.g., RGB8, Mono, Bayer).

Performance considerations for efficiently handling packet reassembly and minimizing packet loss.

Describe alternatives you've considered As an alternative, implementing external packet sniffing tools (e.g., libpcap or PF_RING) and manually decoding the packets outside Aravis is possible, but integrating this functionality directly into Aravis would significantly simplify development and improve overall application architecture.

Rz-Rz avatar Mar 07 '25 10:03 Rz-Rz