Comments (1)
I poked at this a bit more. In short, I wasn't setting the socket buffer size properly, and fixing that made it work.
Notes:
The socket buffer size can be set like this:
g_object_set (*stream,
"socket-buffer", ARV_GV_STREAM_SOCKET_BUFFER_FIXED,
"socket-buffer-size", 20000000,
NULL);
This sets the SO_RCVBUF
setting on the socket. Described like this in
socket(7):
SO_RCVBUF
Sets or gets the maximum socket receive buffer in bytes. The
kernel doubles this value (to allow space for bookkeeping
overhead) when it is set using setsockopt(2), and this doubled
value is returned by getsockopt(2). The default value is set by
the /proc/sys/net/core/rmem_default file, and the maximum allowed
value is set by the /proc/sys/net/core/rmem_max file. The minimum
(doubled) value for this option is 256.
The setting ends up in sk_rcvbuf
in the kernel:
- https://lxr.linux.no/#linux+v6.7.1/net/core/sock.c#L1250
- https://lxr.linux.no/#linux+v6.7.1/net/core/sock.c#L960
Which is used in multiple places in https://lxr.linux.no/#linux+v6.7.1/net/ipv4/udp.c
If the data comes in faster than it can be read, it's stored in this buffer; if
the buffer is too small, the packets are thrown away. The logic and available
diagnostics are in the udp.c file linked above. /proc/net/snmp
records the
dropped packets and there's a udp_fail_queue_rcv_skb
tracepoint to catch some
paths.
The buffer size should be set to a bit more than the ArvBuffer payload size probably. I would guess aravis already does that by default, but it wasn't working on my machine. I'm going to take a look to get more detail in a bit.
from aravis.
Related Issues (20)
- Disconnection Issues and Failed Buffers When Connecting a camera with Basler Pylon on Same Computer HOT 9
- arvtest.c Schema=1.1 always fail and trigger failure
- arv_camera_gv_auto_packet_size() crash bug HOT 3
- GVSTream object is not callable
- Documentation request: documentation for each function should state how/whether to free the output HOT 6
- Variable-sized registers not doing the expected thing HOT 7
- Enabling Auto Exposure HOT 1
- Option to force device connection HOT 4
- No buffer timestamp with arv_stream_timeout_pop_buffer() ?
- Aravis Viewer Player performance issue to stream 4k 60 fps camera using ARM processor (nVIDIA Jetson)
- Testing Basler acA3800-14uc and Basler a2A2590-60ucBAS
- ArvPixelFormat wrong values HOT 3
- Bug with payload
- not able to read chunk data using aravis 0.8 (it worked with 0.6) HOT 3
- Gstreamer pipeline freeze on first frame (GStreamer + Daheng USB3)
- Is there a way to convert mono10 to mono10p HOT 1
- Large glass-to-glass latency with Blackfly S USB3
- aravis 0.10 not stream
- aravis-viewer or library is giving error for the image region size above 640x480 with cypress FX3 camera HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aravis.