The error was intentional. Xavier really wanted to prevent implicit copies in that element. None of the parser or payloader actually care about downstream allocation, so these don’t work.
I made this work in progress patch, to opt-in for copies, it adds a new “allow-copy” property, perhaps “enable-copy” would be more accurate, the implementation is still not very clear either, this is why its a WIP.
It’s copied into the memfd once in unixfdsink, and passed zero-copy through unixfdsrc. If you use that with VA or V4L2 memory, which are DMABuf, these are zero copy end to end.
Put this in context, if you use a socket, it will be copied twice.