We’ve kept the entire packet header unencrypted so the effect is more visible. The final implementation will just leave the minimum required bytes (1 or 2) of the header unencrypted.
I think, I haven't looked at their implementation; they'll be an artifact of piping the encrypted/mis-decrypted stream into a video decoder. A lot of video coding techniques use variable-size blocks to describe changes to areas of the image, so it's reasonable that piping pseudo-random data into the decoder would produce some noticeable block shapes.