Всем привет.
Делаю получение кадров из видеофайлов в виде RGB24 битмапов. Использую для этого ffmpeg, отрисовываю полученые изображения на виджете, пронаследованном от QGLWidget. Получаю такую картинку: http://joxi.ru/0PagUtg5CbA4Ihe_rNQ , то есть вместо одного полноценного изображения - 3 маленьких с разным цветовым оттенком. Работаю с кодеками первый раз, поэтому слабо представляю куда копать. Если надо еще что-то показать из кода, скажите. Посмотрел, те файлы на которых я тестировал - имеют формат картинки YUV.
Контекст конвертирования создаю так:
this->img_convert_context = sws_getCachedContext(NULL,
this->codec_context->width, this->codec_context->height,
this->codec_context->pix_fmt,
this->codec_context->width, this->codec_context->height,
AV_PIX_FMT_RGB24, SWS_BICUBIC,
NULL, NULL, NULL);
И собственно преобразование кадра:
sws_scale(this->img_convert_context,
(uint8_t const * const *)this->pFrame->data, this->pFrame->linesize,
0, this->codec_context->height,
this->pFrameRGB->data, this->pFrameRGB->linesize);