Я хочу отобразить преобразованный фрейм yuv в rgb на дисплей по умолчанию. В настоящее время я делаю это со следующим кодом, где преобразование yuv в rgb выполняется с помощью кода сборки, который загружает CPU. Я нашел код, чтобы сделать то же самое с opengles.Отображение содержимого буфера OpenglES
Yuv420_to_RGB(ui8buf, buffer1, h1, w1); /* RGB data will be resulted in buffer1 */
window = ANativeWindow_fromSurface(env, surface);
ANativeWindow_acquire(window);
wid = ANativeWindow_getWidth(window);
hei = ANativeWindow_getHeight(window);
ANativeWindow_setBuffersGeometry(window,w1,h1,1)
if (ANativeWindow_lock(window, &buffer, NULL) == 0)
{
memcpy(buffer.bits, buffer1, (4* w1*h1));
ANativeWindow_unlockAndPost(window);
}
ANativeWindow_release(window);
У меня есть принцип opengles, заканчивающийся glDrawArrays. Как я могу отобразить результат преобразования opengles?
У меня есть эквивалент OpenGLES функции Yuv420_to_RGB. Мне не хватает отображения отображаемого содержимого. i.e отображение содержимого буфера opengles на поверхность – RagFox
@RagFox: ну, нарисуйте текстурированный квадрат желаемого размера с текстурой, являющейся изображением. Вот как это сделать. – datenwolf