Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exoplayer constantly requesting for the same segment in dash live stream #1534

Open
Vinni0834 opened this issue Jul 6, 2024 · 3 comments
Open

Comments

@Vinni0834
Copy link

HI,
My exoplayer application is constantly requesting the same segment number ,so I dwelled down a little
I added a breakpoint at timeus calculation then I found out that all the values that I am getting are some random values.this is the call stack
`"ExoPlayer: Playback@22667" prio=5 tid=0x46 nid=NA runnable

java.lang.Thread.State: RUNNABLE

at androidx.media3.exoplayer.dash.manifest.SegmentBase$MultiSe gmentBase.getSegmentNum (Segme ntBase.java:190)

at androidx.media3.exoplayer.dash.manifest.Representation$MultiSegment Representation.getSegmentN um(Representation.java:358)

at androidx.media3.exoplayer.d ash.DefaultDashChunk Source$Repre sentation Holder.getSegmentNum(Def aultDashChunk Source.java:1151)

at androidx.media3.exoplayer.dash.DefaultDashChunkSource.getSeg mentNum(DefaultDashChunk Source.j ava:685)

at androidx.media3.exoplayer.dash.DefaultDashChunkSource.getNextChunk(DefaultDashChunkSource.java:401)

at androidx.media3.exoplayer.source.chunk.ChunkSampleStream.continueLoading(ChunkSampleStream.java:588)

at androidx.media3.exoplayer.source.Composite SequenceableLoade r$SequenceableLoaderWith Track Types.continueLoading (CompositeSequeceableLoader.java:131)

at androidx.media3.exoplayer.dash. DashMediaPeriod.continueLoading(DashMediaPeriod.java:328)

at androidx.media3.exoplayer.source.M asking Media Period.continueLoading( Masking MediaPeriod.java:229)

at androidx.media3.exoplayer.M ediaPeriod Holder.continueLoading(MediaPeriod Holder.java:234)

at androidx.media3.exoplayer. ExoPlayer ImplInternal.maybeContinueLoading(ExoPlayerImplInternal.java:2521)

at androidx.media3.exoplayer. ExoPlayer ImplInternal.handlePeriod Prepared(ExoPlayerImplInternal.java:2473)

at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage (ExoPlayerImplInternal.java:563)

at android.os.Handler.dispatch Message(Handler.java:102)

at android.os.Looper.loopOnce( Looper.java:201)

at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)`

I can see that in Android.os.looper.looponce there is an maskingmedia object and based on those values segment number is calculated .when I had checked the network logs it's actually requesting future segments.the segments that are not available in the livestream .

@simpleearn
Copy link

HI,
My exoplayer application is constantly requesting the same segment number ,so I dwelled down a little
I added a breakpoint at timeus calculation then I found out that all the values that I am getting are some random values.this is the call stack
`"ExoPlayer: Playback@22667" prio=5 tid=0x46 nid=NA runnable

java.lang.Thread.State: RUNNABLE

at androidx.media3.exoplayer.dash.manifest.SegmentBase$MultiSe gmentBase.getSegmentNum (Segme ntBase.java:190)

at androidx.media3.exoplayer.dash.manifest.Representation$MultiSegment Representation.getSegmentN um(Representation.java:358)

at androidx.media3.exoplayer.d ash.DefaultDashChunk Source$Repre sentation Holder.getSegmentNum(Def aultDashChunk Source.java:1151)

at androidx.media3.exoplayer.dash.DefaultDashChunkSource.getSeg mentNum(DefaultDashChunk Source.j ava:685)

at androidx.media3.exoplayer.dash.DefaultDashChunkSource.getNextChunk(DefaultDashChunkSource.java:401)

at androidx.media3.exoplayer.source.chunk.ChunkSampleStream.continueLoading(ChunkSampleStream.java:588)

at androidx.media3.exoplayer.source.Composite SequenceableLoade r$SequenceableLoaderWith Track Types.continueLoading (CompositeSequeceableLoader.java:131)

at androidx.media3.exoplayer.dash. DashMediaPeriod.continueLoading(DashMediaPeriod.java:328)

at androidx.media3.exoplayer.source.M asking Media Period.continueLoading( Masking MediaPeriod.java:229)

at androidx.media3.exoplayer.M ediaPeriod Holder.continueLoading(MediaPeriod Holder.java:234)

at androidx.media3.exoplayer. ExoPlayer ImplInternal.maybeContinueLoading(ExoPlayerImplInternal.java:2521)

at androidx.media3.exoplayer. ExoPlayer ImplInternal.handlePeriod Prepared(ExoPlayerImplInternal.java:2473)

at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage (ExoPlayerImplInternal.java:563)

at android.os.Handler.dispatch Message(Handler.java:102)

at android.os.Looper.loopOnce( Looper.java:201)

at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)`

I can see that in Android.os.looper.looponce there is an maskingmedia object and based on those values segment number is calculated .when I had checked the network logs it's actually requesting future segments.the segments that are not available in the livestr

@Vinni0834
Copy link
Author

@simpleearn what was your comment
Didn't get you

@rohitjoins
Copy link
Contributor

Hi! Please provide complete information as requested in the issue template. The issue template can be found here.

Please share the test content so we can replicate this issue. If you're unable to share bug reports or test content publicly, please send them to [email protected] with the subject Issue #1534. Please also update this issue to indicate you've done this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants