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

IllegalStateException while accessing DefaultDrmSessionManager builder. #350

Closed
1 task
ozguroktem opened this issue Apr 23, 2023 · 1 comment
Closed
1 task
Assignees
Labels

Comments

@ozguroktem
Copy link

ozguroktem commented Apr 23, 2023

Media3 Version

ExoPlayer 2.18.6

Devices that reproduce the issue

Xiaomi Redmi Note 7 running on 11

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Not tested

Reproduction steps

Play any Widevine DRM protected content. Haven't tested other DRM schemes yet.

Expected result

The content should play without any exception thrown since we have not changed anything in our implementation since the last update.

Actual result

Playback does not crash but instead continues with the following stack trace. This actually seems to be intended but we have yet to come up with a reason behind this behavior.

DefaultDrmSessionManager accessed before setPlayer(), possibly on the wrong thread. java.lang.IllegalStateException at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.verifyPlaybackThread(DefaultDrmSessionManager.java:824) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.prepare(DefaultDrmSessionManager.java:471) at com.google.android.exoplayer2.source.dash.DashMediaSource.prepareSourceInternal(DashMediaSource.java:450) at com.google.android.exoplayer2.source.BaseMediaSource.prepareSource(BaseMediaSource.java:221) at com.google.android.exoplayer2.source.CompositeMediaSource.prepareChildSource(CompositeMediaSource.java:120) at com.google.android.exoplayer2.source.MergingMediaSource.prepareSourceInternal(MergingMediaSource.java:171) at com.google.android.exoplayer2.source.BaseMediaSource.prepareSource(BaseMediaSource.java:221) at com.google.android.exoplayer2.source.CompositeMediaSource.prepareChildSource(CompositeMediaSource.java:120) at com.google.android.exoplayer2.source.WrappingMediaSource.prepareChildSource(WrappingMediaSource.java:212) at com.google.android.exoplayer2.source.MaskingMediaSource.createPeriod(MaskingMediaSource.java:108) at com.google.android.exoplayer2.MediaSourceList.createPeriod(MediaSourceList.java:315) at com.google.android.exoplayer2.MediaPeriodHolder.createMediaPeriod(MediaPeriodHolder.java:433) at com.google.android.exoplayer2.MediaPeriodHolder.<init>(MediaPeriodHolder.java:108) at com.google.android.exoplayer2.MediaPeriodQueue.enqueueNextMediaPeriodHolder(MediaPeriodQueue.java:190) at com.google.android.exoplayer2.ExoPlayerImplInternal.maybeUpdateLoadingPeriod(ExoPlayerImplInternal.java:1999) at com.google.android.exoplayer2.ExoPlayerImplInternal.updatePeriods(ExoPlayerImplInternal.java:1986) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:974) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:223) at android.os.HandlerThread.run(HandlerThread.java:67)

Media

Sent via email.

Bug Report

@ozguroktem ozguroktem changed the title IllegalStateException while acquiring FrameworkMediaDrm instance. IllegalStateException while accessing DefaultDrmSessionManager builder. Apr 23, 2023
@icbaker
Copy link
Collaborator

icbaker commented Apr 24, 2023

Thanks for reporting, we spotted this internally last week and I have a fix in internal review - when it gets published it will be linked here. It will be included in the next release.

This instance of this warning is a false alarm, it can be safely ignored until the next release is available.

rohitjoins pushed a commit that referenced this issue Apr 24, 2023
`prepare()` now logs a warning if it's called before `setPlayer()`
because it's not possible to tell if it's being called on the wrong
thread (since 3480a27).

This change finds all the places one is called immediately after the
other and flips the order to be more correct.

Issue: #350

#minor-release

PiperOrigin-RevId: 526582294
rohitjoins pushed a commit to google/ExoPlayer that referenced this issue Apr 24, 2023
`prepare()` now logs a warning if it's called before `setPlayer()`
because it's not possible to tell if it's being called on the wrong
thread (since 9d028b3).

This change finds all the places one is called immediately after the
other and flips the order to be more correct.

Issue: androidx/media#350

#minor-release

PiperOrigin-RevId: 526582294
@icbaker icbaker closed this as completed Apr 24, 2023
icbaker added a commit that referenced this issue May 17, 2023
`prepare()` now logs a warning if it's called before `setPlayer()`
because it's not possible to tell if it's being called on the wrong
thread (since 3480a27).

This change finds all the places one is called immediately after the
other and flips the order to be more correct.

Issue: #350

#minor-release

PiperOrigin-RevId: 526582294
(cherry picked from commit 6aacbc6)
icbaker added a commit to google/ExoPlayer that referenced this issue May 17, 2023
`prepare()` now logs a warning if it's called before `setPlayer()`
because it's not possible to tell if it's being called on the wrong
thread (since 9d028b3).

This change finds all the places one is called immediately after the
other and flips the order to be more correct.

Issue: androidx/media#350

#minor-release

PiperOrigin-RevId: 526582294
(cherry picked from commit aa4e008)
@androidx androidx locked and limited conversation to collaborators Jun 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants