Я рендерил поток с камеры с помощью DirectX 9, но он отображает поток немного туманно, что-то вроде серого наложения на нем. Я выясняю это, когда мой результат сравнивают с VLC.
Я получаю массивы YUV через ffmpeg и использую прямоугольник блокировки Direct3DSurface9 для копирования из памяти. После копирования я получаю backbuffer и растягиваю его. Наконец представь это.
Я пробовал D3DMATERIAL9, но без эффектов для меня. Если я не ошибаюсь, материальные эффекты используются для вершины. Затем попытался SetDeviceGammaRamp снова не работает.
Так я создаю свою поверхность
d3d9Dev->CreateOffscreenPlainSurface(_srcWidth,_srcHeight,(D3DFORMAT)MAKEFOURCC('Y','V','1','2'), D3DPOLL_DEFAULT, &d3d9Surface, NULL);
EDIT
Я получаю поток с камеры в формате YUV и не преобразовал его в RGB. Весы формата YUV 16-235. Поэтому моя программа показывает туманные цвета. Я изменил свой формат BGRA через ffmpeg. Это решает мою проблему.