Мне нужно накачать результаты видео GStreamer в текстуру ModelRenderable в Sceneform.
У меня есть код для каждой отдельной задачи. Я попытался выполнить рендеринг прямо из GStreamer на поверхность ExternalTexture, но получил ошибки из-за конфликтующего владельца текстуры Я могу опубликовать эти детали, если это необходимо, но использование отдельной конечной текстуры, похоже, решило эту проблему (при условии подтверждения).
На стороне Sceneform у меня есть ExternalTexture, SurfaceTexture и Surface, и я могу получить Canvas через ExternalTexture.getSurface (). LockHardwareCanvas ()
На стороне GStreamer я создал отдельную текстуру OpenGL в качестве места рендеринга.
Единственный способ получить доступ к текстуре Sceneform - это заблокировать Canvas и скопировать в него растровое изображение, которое, как я полагаю, будет , а не , будет аппаратным бликом и будет слишком медленно. Я вижу различные способы сделать копию текстуры GPU, но всем им нужно имя текстуры OpenGL для текстуры назначения, которое, насколько я могу судить, SceneForm не предоставляет никакого доступа.
Есть предложения? Я собираюсь погрузиться в источники Sceneform?