-
Notifications
You must be signed in to change notification settings - Fork 574
Closed
Labels
Description
[REQUIRED] Use case description
Before the player is prepared, setVideoEffect has been called to set an effect.
When playback is paused, we call setVideoEffect again to update the effect chain:
- The player cannot update the current screen with new effects.
- The new effects can only be applied when the player resumes playback.
We hope that the current screen will take effect immediately after calling setVideoEffect.
I took a preliminary look at the cause of the problem:
- After MediaCodec releases a frame, it cannot send the same frame to ExternalTextureManager again.
- The frame in ExternalTextureManager is released after being processed by the next GlShaderProgram.
- setVideoEffect will trigger ExternalTextureManager#signalEndOfCurrentInputStream and reconfigure the special effects chain.
Proposed solution
I can't think of a feasible solution for the time being. Do you have a plan or solution?
RGdevz