这是indexloc提供的服务,不要输入任何密码
Skip to content

setVideoEffects can take effect immediately #1717

@GavinChu

Description

@GavinChu

[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:

  1. After MediaCodec releases a frame, it cannot send the same frame to ExternalTextureManager again.
  2. The frame in ExternalTextureManager is released after being processed by the next GlShaderProgram.
  3. 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?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions