正在编写基于MediaExtractor
和MediaCodec
的自定义视频解码器。
解码视频MediaCodec
将其输出缓冲区发送到属于Surface
(消费者)的SurfaceTexture
(生产者),并通过{{ 1}}回调。到目前为止一切顺利。
我想要的是能够获取保存最新视频帧的onFrameAvailable
的纹理,并将其分派到基于GL的渲染系统中,并用于 next 框架以使用 new 纹理。如果可以的话,我将能够非常便宜地渲染视频帧,即不必先渲染/复制到屏幕外缓冲区。
但是我无法使其正常工作。我尝试使用SurfaceTexture
和detachFromGLContext
,但最终出现黑框或崩溃。我很确定,如果仅将纹理从releaseTexImage
断开而不破坏它,那么它将起作用。
是否可以做我想做的事情?