My tests or investigations resulted until now with this:
It seems the ethernet frames are having a 0x2d bytes long header. It is only set in the first ethernet frame.
The two bytes at 0x0e (LSB) 0x0f (MSB) are a consecutive ethernet frame number.
The actual frame is inside several ethernet frames (starting with 0, 0).
The frame lines (or after some pixels) are separated with a (repeating) 0x00 byte offset. This depends on the header.
The header data is only filled in the ethernet frame number zero. After the frame header pixel data may appear.
Pixels are encoded BGR (might be wrong), each 1 byte blue, 1 byte green, 1 byte red, after each other.
The header of the first frame also defines the size (as you already also discovered).
For me it looks like that some bytes in it (at 0x and at 0x) select one resolution out of many (perhaps related to the selectable resolutions of the LINSN sender card, which has DVI and a configurable resolution). It seems that the bytes are not directly encoding the resolution.
0x10 in the frame header at position 0x20 means enable LED error open detection reporting (or some other "enhanced" LED driver funcitionality).
At 0x1b in frame header: select resolution
At 0x2d in frame header: select resolution or checksum maybe?
The four f's are not for brightness directly I guess (maybe select another function?, like brightness sensor or so).
Global brightness, White balance, Gamma curve selection are in the header at position 0x21 to 0x26 and are sent only one time (only one frame). New frames do not include the brightness (etc.) settings, the card "saves" it until it is powered off/on.
How do you detect the different sizes of the frames? I selected the area to send to a specific receiver in the LINSN software at the "Display connection" tab of the "Setup hardware parameters" window and entered different/usual screen resolutions in the Width/Height fields, then Send to receiver to test. By increasing or decreasing the number only a few pixels nothing changed, therefore I also assume that there might be predefined resolution, which can be chosen.
Destination address was (not always): 00:00:00:00:00:00 (sometimes 00:..:fe, do not relate to screen resolution)
Source normal ethernet adapter address
Length: always 1486 byte, Protocol: always 0xaa55
There are also sometimes frames form the receiver card (I guess to report, hey I'm ok, no error here), they are longer (1496 bytes, protocol 0xaa56) and had always the same content (914f0000000000000000000000feff00...). Seems to be ignoring it is ok.
Moreover the configuration about panels (ICs, size, arrangement, etc.) is all stored at the receiver card (including the receiver size and position). If more cards are used then their position must be set (and there resolution) in the "Display connection" setup. After this a receiver card can put freely in the ethernet chain, they will display their intended content area. So it is also possible to display the same content on many receiver cards, simply by programming the same positions into them.