News:

LATEST RELEASE:  FPP 8.5.1 - Download from here - https://github.com/FalconChristmas/fpp/releases/tag/8.5

+-+-

+-User

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

+-Site Stats

Members
Total Members: 16969
Latest: eglass90
New This Month: 7
New This Week: 2
New Today: 1
Stats
Total Posts: 135733
Total Topics: 17043
Most Online Today: 147
Most Online Ever: 7634
(January 21, 2020, 02:14:03 AM)
Users Online
Members: 0
Guests: 114
Total: 114

Question about FPP and DDP messages.

Started by cschill2020, May 09, 2024, 08:03:20 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

cschill2020

Hi,

I am working on a side project building a webapp to send realtime ddp to a kulp64D BBB board running FPP.  I am sending DDP via UDP.   My project is using ws2811 12v strips with 3 leds per individually addressable pixel.  Currently I have ~10k individually addressable pixels.  

I have spent some time in the FPP code, but not to a point where I am rebuilding/testing/debugging.  I have a question about the DDP code in FPP.  Specifically this line:
https://github.com/FalconChristmas/fpp/blob/3cf77f0b8a9edc1e0cd336070dabc690d5c4f66d/src/e131bridge.cpp#L63C1-L64C1
"#define MAX_MSGS 64"

Does this mean that FPP will process at most 64 messages per frame?  This would limit DDP to ~32,000 individually addressable pixels.  I am assuming 500pixels per message.   

Maybe more likely is that this is just the max number of messages that can be stored in a buffer.  But I am curious if this is limiting the number of pixels that can be controlled over UDP.  

Thanks to the community for all the support!  It's so cool to be able to imagine such big projects. 

dkulp

When we get a notification from Linux that there is data on the socket to be read, there are a couple of ways we could retreive the data.   The simple method would be to just call recvmsg or similar to pull one packet off the socket, process it, call recvmsg again, etc... until all the packets are read off and processed.   That involves a bunch of trips into the linux kernel.   Instead, we use the recvmmsg call to grab up to 64 packets in one single call.  We then process the 64 packets and then immediately call recvmmsg again to grab more packets if there are more there.   It has nothing to do with frame rates or number of packets per frame or anything like that.  It's just the number of messages/packets to transfer from Linux's network buffers  into the application space in one call.   
Daniel Kulp - https://kulplights.com

cschill2020

Oh got it, super helpful.  Thank you so much for the quick answer.  Ill take a look a closer look at the code FPP is using to send packets and try to mimic it in my app.  I am sure there are improvements I can make to optimize how I am sending the pixel data to FPP...

Support FPP

+- Recent Topics

QN8066 FM Transmitter by MikeKrebs
July 16, 2025, 08:35:29 PM

Plugin for scoreboard data from node red by sharkboy005
July 16, 2025, 03:06:54 PM

Scoreboard Plugin by sharkboy005
July 16, 2025, 03:05:09 PM

Falcon 16v4 configuring to smart receivers by JonD
July 14, 2025, 05:26:28 AM

E1.31 Bridge Mode - Crash by Poporacer
July 13, 2025, 10:54:02 PM

E fuse api by Jrbrown
July 12, 2025, 08:06:48 PM

FPP VS eero home network Static IP challenges by JonD
July 11, 2025, 06:11:50 PM

Setting up a wired on demand show on Pi/ FPP to push a show to Falcon Controller by lunchour
July 03, 2025, 03:57:56 PM

ELM (Enttec LED Mapper) and FPP with bare RPi questions by ericjforman
July 02, 2025, 03:10:16 PM

xCapture Playback Issues by ericjforman
July 02, 2025, 11:38:48 AM

Powered by EzPortal
Powered by SMFPacks Menu Editor Mod