mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00

This is because the replay cache needs to clear the cache after one mediaItem is fully played. That is, if the last two frames are cached, we need to wait until they are both rendered before receiving inputs from the next input stream because the texture size might change. And when the texture size changes, we teardown all previous used textures, and this causes a state confusion in the shader program in that, the cache thinks one texture id is in-use (because it's not released) but the baseGlShaderProgram texturePool thinks it's already free (as a result of size change) Also fixes an issue that, if replaying a frame after EOS is signalled, the EOS signal is lost because we flush the pipeline. PiperOrigin-RevId: 745191032