Android MediaCodec можно использовать для декодирования выходного формата yuv420. Я предполагаю, что это должен быть формат NV12, но когда я пробую его на устройстве Nexus6 7.1.1. Результат очень странный:
Для видео 720p он работает нормально, выходной yuv можно воспроизвести с помощью ffplay с помощью следующей команды:
ffplay -v info -f rawvideo -pixel_format yuv420p -video_size 1280x720 out.yuv
И размер файла out.yuv в точности равен ширине * высоте * 3/2.
Для видео 1080p цвет yuv на выходе вверху не корректируется. Размер файла out.yuv равен 3133440, но ширина * высота * 3/2 должна быть 3110400, так что есть еще 23040 байт. Похоже, цвет верхнего слоя неправильный.
Когда пытаешься расшифровать это на поверхность, это выглядит хорошо. поэтому я предполагаю, что проблема возникает только из пакета YUV 1080p.