Skip to content

Player crash when playing multi period stream #982

@StaehliJ

Description

@StaehliJ

Is there an existing issue for this?

  • I have searched existing issues and found no similar bug report.

Description of the problem

When playing a multi period content the player is crashing

url = https://d24rwxnt7vw9qb.cloudfront.net/out/v1/d0409ade052145c5a639d8db3c5ce4b4/index.mpd
license url = https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/?specConform=true

Relevant stack trace or log output

java.lang.IndexOutOfBoundsException
                 	at androidx.media3.common.util.Assertions.checkIndex(Assertions.java:71)
                 	at androidx.media3.exoplayer.dash.DashMediaSource$DashTimeline.getWindow(DashMediaSource.java:1343)
                 	at androidx.media3.exoplayer.source.ForwardingTimeline.getWindow(ForwardingTimeline.java:72)
                 	at androidx.media3.exoplayer.source.TimelineWithUpdatedMediaItem.getWindow(TimelineWithUpdatedMediaItem.java:42)
                 	at ch.srgssr.pillarbox.player.source.PillarboxMediaSource$PillarboxTimeline.getWindow(PillarboxMediaSource.kt:163)
                 	at androidx.media3.exoplayer.source.MaskingMediaSource$MaskingTimeline.getWindow(MaskingMediaSource.java:319)
                 	at androidx.media3.exoplayer.AbstractConcatenatedTimeline.getWindow(AbstractConcatenatedTimeline.java:202)
                 	at androidx.media3.common.Timeline.getWindow(Timeline.java:1088)
                 	at ch.srgssr.pillarbox.player.analytics.PlaybackSessionManager.updateSession(PlaybackSessionManager.kt:245)
                 	at ch.srgssr.pillarbox.player.analytics.PlaybackSessionManager.onTimelineChanged(PlaybackSessionManager.kt:260)
                 	at androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector.lambda$onTimelineChanged$32(DefaultAnalyticsCollector.java:494)
                 	at androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector$$ExternalSyntheticLambda8.invoke(D8$$SyntheticClass:0)
                 	at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:342)
                 	at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:226)
                 	at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
                 	at androidx.media3.common.util.ListenerSet.flushEvents(ListenerSet.java:248)
                 	at androidx.media3.common.util.ListenerSet.sendEvent(ListenerSet.java:263)
                 	at androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector.sendEvent(DefaultAnalyticsCollector.java:905)
                 	at androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector.onTimelineChanged(DefaultAnalyticsCollector.java:491)
                 	at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$14(ExoPlayerImpl.java:2048)
                 	at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
                 	at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:342)
                 	at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:226)
                 	at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
                 	at androidx.media3.common.util.ListenerSet.flushEvents(ListenerSet.java:248)
                 	at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:2139)
                 	at androidx.media3.exoplayer.ExoPlayerImpl.handlePlaybackInfo(ExoPlayerImpl.java:1973)
                 	at androidx.media3.exoplayer.ExoPlayerImpl.lambda$new$1$androidx-media3-exoplayer-ExoPlayerImpl(ExoPlayerImpl.java:347)
                 	at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda12.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)

Reproducibility

Always

Steps to reproduce

  1. Add the given url and license url
  2. Start playback
  3. Wait until it crashes

Library version

latest

Operating system

not relevant

Code sample

  1. Play the given url and license url in the demo
  2. Player crash after

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions