Я декодирую поток H264 с помощью FFmpeg на iPhone.Я знаю, что поток H264 действителен, а SPS / PPS верны, так как VLC, Quicktime, Flash все правильно декодируют поток.Проблема, с которой я сталкиваюсь на iPhone, лучше всего показана на этой картинке.
Это как если бы рисовались векторы движения.Эта картинка была сфотографирована, когда на ней было много движения.Если сцена статична, то в углах есть точки.Это всегда происходит с прогнозирующими кадрами.Блочные цвета также являются проблемой.
Я пробовал различные настройки сборки для FFmpeg, такие как отключение оптимизаций, asm, neon и многих других комбинаций.Кажется, ничто не меняет поведение декодера.Я также попробовал выпуски Works with HTML, Love and Peace, а также последние источники GIT.Возможно, отсутствует параметр, или, возможно, я случайно включил некоторые параметры отладки в декодере.
Edit
Я использую sws_scale для преобразования изображения вRGBA.Я пробовал разные пиксельные форматы с одинаковыми результатами.
sws_scale(convertCtx, (const uint8_t**)srcFrame->data, srcFrame->linesize, 0, codecCtx->height, dstFrame->data, dstFrame->linesize);
Я использую PIX_FMT_YUV420P в качестве исходного формата при настройке контекста моего кодека.