Let\'s say I\'ve got an image of some format (its binary representation, say, cv::Mat from OpenCV or YuvImage from Android, not compressed), and interpreted its data as YUV NV21
Well, at the end, we've found some inconsistencies in image handling.
YuvImage of Android expects you to feed it with NV21, so I had a working conversion method from I420 to NV21. When I changed a video source (same vendor, different model), I expected it to come with the same format, but, in fact, it was NV12 instead.
Reinterpret-casting NV12 as I420 and then converting it to NV21 is what happened here.