Skip to content

Composition Player Multiple Issues when seeking in PIP and grid mode #2439

@pawaom

Description

@pawaom

Version

Media3 main branch

More version details

I am trying the new 1.7.0/1.8.0(there was some problem in the version numbers) code

When we seek the video It works fine in sequential media, but crashes in 2/2 grid and pip mode

Devices that reproduce the issue

Pixel 9 pro xl upsidedowncupcake emulator
samsung galaxy tab A7 lite sm-t225 android 14

Devices that do not reproduce the issue

N/A

Reproducible in the demo app?

Yes

Reproduction steps

Start the composition demo app

  1. select sequential option select media play then seek it forward/ backward works fine
  2. select Grid option select media play then seek it forward/ backward crashes
  3. select PIP option select media play then seek it forward/ backward crashes

I had reported a similar issue for the older composition player Since the Sequential video is working I assume it must have been resolved
I know composition player is still in active development , so I tried to report the problems early.
#1489

Screen_recording_20250517_143617.1.mp4

Expected result

media should play successfully in both grid and pip mode after seeking forward or backward

Actual result

Play back crashes here is the bug report

2025-05-17 14:40:42.925 23336-23336 CompositionPlayer       androidx.media3.demo.composition     E  playerFailed [eventTime=26.62, mediaPos=18.61, window=0, errorCode=ERROR_CODE_VIDEO_FRAME_PROCESSING_FAILED (Ask Gemini)
                                                                                                    androidx.media3.common.PlaybackException: Error processing video frames
                                                                                                        at androidx.media3.transformer.CompositionPlayer.maybeUpdatePlaybackError(CompositionPlayer.java:1098)
                                                                                                        at androidx.media3.transformer.CompositionPlayer.lambda$onError$2$androidx-media3-transformer-CompositionPlayer(CompositionPlayer.java:488)
                                                                                                        at androidx.media3.transformer.CompositionPlayer$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                        at android.os.Looper.loop(Looper.java:319)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8919)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
                                                                                                    Caused by: androidx.media3.common.VideoFrameProcessingException: java.lang.IllegalStateException
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor.handleException(VideoFrameProcessingTaskExecutor.java:306)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor.lambda$wrapTaskAndSubmitToExecutorService$3$androidx-media3-effect-VideoFrameProcessingTaskExecutor(VideoFrameProcessingTaskExecutor.java:292)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:487)
                                                                                                        at java.util.concurrent.FutureTask.run(FutureTask.java:264)
                                                                                                        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
                                                                                                        at java.lang.Thread.run(Thread.java:1012)
                                                                                                    Caused by: java.lang.IllegalStateException
                                                                                                        at androidx.media3.common.util.Assertions.checkState(Assertions.java:85)
                                                                                                        at androidx.media3.effect.DefaultVideoCompositor.queueInputTexture(DefaultVideoCompositor.java:193)
                                                                                                        at androidx.media3.effect.MultipleInputVideoGraph.queuePreProcessingOutputToCompositor(MultipleInputVideoGraph.java:454)
                                                                                                        at androidx.media3.effect.MultipleInputVideoGraph.lambda$registerInput$0$androidx-media3-effect-MultipleInputVideoGraph(MultipleInputVideoGraph.java:294)
                                                                                                        at androidx.media3.effect.MultipleInputVideoGraph$$ExternalSyntheticLambda3.onTextureRendered(D8$$SyntheticClass:0)
                                                                                                        at androidx.media3.effect.FinalShaderProgramWrapper.renderFrameToOutputTexture(FinalShaderProgramWrapper.java:517)
                                                                                                        at androidx.media3.effect.FinalShaderProgramWrapper.renderFrame(FinalShaderProgramWrapper.java:464)
                                                                                                        at androidx.media3.effect.FinalShaderProgramWrapper.queueInputFrame(FinalShaderProgramWrapper.java:264)
                                                                                                        at androidx.media3.effect.FrameConsumptionManager.lambda$queueInputFrame$1$androidx-media3-effect-FrameConsumptionManager(FrameConsumptionManager.java:93)
                                                                                                        at androidx.media3.effect.FrameConsumptionManager$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor.lambda$wrapTaskAndSubmitToExecutorService$3$androidx-media3-effect-VideoFrameProcessingTaskExecutor(VideoFrameProcessingTaskExecutor.java:290)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) 
                                                                                                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:487) 
                                                                                                        at java.util.concurrent.FutureTask.run(FutureTask.java:264) 
                                                                                                        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307) 
                                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
                                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) 
                                                                                                        at java.lang.Thread.run(Thread.java:1012) 
                                                                                                  ]
2025-05-17 14:40:42.954 23336-23336 CompPreviewVM           androidx.media3.demo.composition     E  Preview error (Ask Gemini)
                                                                                                    androidx.media3.common.PlaybackException: Error processing video frames
                                                                                                        at androidx.media3.transformer.CompositionPlayer.maybeUpdatePlaybackError(CompositionPlayer.java:1098)
                                                                                                        at androidx.media3.transformer.CompositionPlayer.lambda$onError$2$androidx-media3-transformer-CompositionPlayer(CompositionPlayer.java:488)
                                                                                                        at androidx.media3.transformer.CompositionPlayer$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                        at android.os.Looper.loop(Looper.java:319)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8919)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
                                                                                                    Caused by: androidx.media3.common.VideoFrameProcessingException: java.lang.IllegalStateException
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor.handleException(VideoFrameProcessingTaskExecutor.java:306)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor.lambda$wrapTaskAndSubmitToExecutorService$3$androidx-media3-effect-VideoFrameProcessingTaskExecutor(VideoFrameProcessingTaskExecutor.java:292)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
                                                                                                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:487)
                                                                                                        at java.util.concurrent.FutureTask.run(FutureTask.java:264)
                                                                                                        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
                                                                                                        at java.lang.Thread.run(Thread.java:1012)
                                                                                                    Caused by: java.lang.IllegalStateException
                                                                                                        at androidx.media3.common.util.Assertions.checkState(Assertions.java:85)
                                                                                                        at androidx.media3.effect.DefaultVideoCompositor.queueInputTexture(DefaultVideoCompositor.java:193)
                                                                                                        at androidx.media3.effect.MultipleInputVideoGraph.queuePreProcessingOutputToCompositor(MultipleInputVideoGraph.java:454)
                                                                                                        at androidx.media3.effect.MultipleInputVideoGraph.lambda$registerInput$0$androidx-media3-effect-MultipleInputVideoGraph(MultipleInputVideoGraph.java:294)
                                                                                                        at androidx.media3.effect.MultipleInputVideoGraph$$ExternalSyntheticLambda3.onTextureRendered(D8$$SyntheticClass:0)
                                                                                                        at androidx.media3.effect.FinalShaderProgramWrapper.renderFrameToOutputTexture(FinalShaderProgramWrapper.java:517)
                                                                                                        at androidx.media3.effect.FinalShaderProgramWrapper.renderFrame(FinalShaderProgramWrapper.java:464)
                                                                                                        at androidx.media3.effect.FinalShaderProgramWrapper.queueInputFrame(FinalShaderProgramWrapper.java:264)
                                                                                                        at androidx.media3.effect.FrameConsumptionManager.lambda$queueInputFrame$1$androidx-media3-effect-FrameConsumptionManager(FrameConsumptionManager.java:93)
                                                                                                        at androidx.media3.effect.FrameConsumptionManager$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor.lambda$wrapTaskAndSubmitToExecutorService$3$androidx-media3-effect-VideoFrameProcessingTaskExecutor(VideoFrameProcessingTaskExecutor.java:290)
                                                                                                        at androidx.media3.effect.VideoFrameProcessingTaskExecutor$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) 
                                                                                                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:487) 
                                                                                                        at java.util.concurrent.FutureTask.run(FutureTask.java:264) 
                                                                                                        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307) 
                                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
                                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) 
                                                                                                        at java.lang.Thread.run(Thread.java:1012) 

Media

Media that is used is the one provided by Android exoplayer media3 composition demo app

Bug Report

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions