IMHO, if you get swapped red and blue, then it's possible that it's actually U and V that are swapped, so you should replace this by a fromYUYV() or prepend fromYUYV() using a swapUV() and check whether the output looks better than swapRedBlue().
This is because 0.75*U = B-Y whereas 0.40*V = R-Y, and those two constants differ, so confusing U and V and then swapping reds and blues will cause reds to appear brighter and blues to appear dimmer, than if just U and V were swapped.
yes, you are basically right. nevertheless, it is still unclear to me, how to detect correctly whether to use YUYV or YVYU
Either way, it appears to me that a message should be added to address idiosyncrasies of various hardware solutions. This way a user should be able to address this within PD rather than tinkering with the source, especially given that PD is already a programming language in and of itself.
Best wishes,
Ico