Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aravis Sniffer Mode #993

Open
Rz-Rz opened this issue Mar 7, 2025 · 0 comments
Open

Aravis Sniffer Mode #993

Rz-Rz opened this issue Mar 7, 2025 · 0 comments

Comments

@Rz-Rz
Copy link

Rz-Rz commented Mar 7, 2025

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant