В настоящее время я понимаю, что если у вас есть изображение или видео размером 640 x 480, то плоскость Y будет иметь размер 640 x 480 > байты и U и V в обеих плоскостях имеют размер 640/2 x 480/2. Это не означает, что плоскость U имеет 640/2 x 480/2, а плоскость V имеет 640/2 x 480/2, обе имеют только 640/2 x 480/2 байт. поэтому общее количество байтов в массиве выходного буфера будет равно.
2 умножается на (640/2) * (480/2), поскольку uv-плоскость займет два байта.
Код: Выделить всё
byte [] myArray new byte[(640 * 480) + (2 * (640/2) * (480/2)) ];
Подробнее здесь: https://stackoverflow.com/questions/174 ... d-uv-plane