как вы знаете, у AVFrame есть 2 свойства: pFrame-> data, pFrame-> linesize. После того, как я прочитал кадр из видео /sdcard/test.mp4 (платформа Android) и преобразовал в RGB AVFrame тиски:
img_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height,
pCodecCtx->pix_fmt,
target_width, target_height, PIX_FMT_RGB24, SWS_BICUBIC,
NULL, NULL, NULL);
if(img_convert_ctx == NULL) {
LOGE("could not initialize conversion context\n");
return;
}
sws_scale(img_convert_ctx, (const uint8_t* const*)pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);
Я получаю pFrameRGB после конвертации. Мне нужно текстурировать его в opengl с помощью glTextImage2D:
// Create The Texture
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
// я не знаю, что данные здесь - это pFrameRGB-> data или нет, если нет, как конвертировать их в формат для glTextImage, чтобы я мог отображать видео в opengl, используя AVFrame и gltextImage2D. Все помощь от вас очень ценится.