mirror of
https://github.com/androidx/media.git
synced 2025-05-07 23:50:44 +08:00

Before this CL, SurfaceTexture.onFrameAvailable was used to tell whether a frame was available in the VideoFrameProcessor's output texture. This was incorrect, as it would rely on having the texture be written to before the SurfaceTexture.onFrameAvailableListener is invoked, leading to null-pointer- exceptions on timeouts. Instead of using DefaultVideoFrameProcessor different interfaces to set that we want to output to a texture, and get that output texture, use one interface that sets a listener, and renders to a texture iff that listener is set. As this listener is executed on the GL thread, this also allows us to no longer need to expand visibility for the GL task executor and tasks. PiperOrigin-RevId: 522362101