мы пытаемся декодировать битовые потоки AVC/h264, используя новый API NdkMediaCodec. Хотя декодирование теперь работает нормально, мы пытаемся преобразовать содержимое декодированного видеокадра в GLES2 для рендеринга. API позволяет передавать ANativeWindow во время настройки, но мы хотим контролировать планирование рендеринга видео и, в конечном счете, просто предоставить N текстур, которые заполняются данными декодированного кадра.
Все попытки сопоставить память, возвращаемую getOutputBuffer(), с GLES через eglCreateImageKHR/external image не увенчались успехом. NdkMediaCodec, похоже, использует libstagefright/OMX для внутреннего использования. Таким образом, выходные буферы, скорее всего, выделены с помощью gralloc, не так ли? Есть ли способ получить дескриптор gralloc/GraphicsBuffer для привязки кадра к EGL/GLES2?
Поскольку существует множество форматов пикселей для медиа-фрейма без какой-либо дополнительной документации по их расположению в памяти, трудно надежно использовать NdkMediaCodec.
Большое спасибо за любые подсказки!