Open BucherTomas opened 2 years ago
Is that even an error message? It's unclear to me. The first line references CryptoException
but does not indicate conclusively that one was actually thrown. Then there are two informational lines that look correct (they say that the clearkey and widevine CDMs exist on the device). Then there are two warnings lines, but it's unclear whether they cause the failure. They do possibly imply some kind of version mismatch. @rrfrias - do these lines look problematic to you?
@BucherTomas - When you say playback is "stopping with an error", does that mean that the playback is failing, and therefore that Player.Listener.onPlayerError
is being called? If so, what's the full stack trace of the exception that's passed to that callback (including its cause)? That would be a much clearer starting point. If you're able to reproduce this locally, please also capture a full bugreport with adb bugreport
immediately after reproducing the issue, email it to dev.exoplayer@gmail.com
referencing Issue #10162
in the subject line, and update this issue to indicate that you've done this. Thanks!
Thank you.
We have integrated Mux Data analytics module for ExoPlayer for error reporting (that is where we got the error message from) and we cannot conclusively state whether it leverages Player.Listener.onPlayerError
or not. But as the same module is able to report regular looking errors, it would seem that it does and I assume that this is what is being fed as DRM error in this instance from Android 12 to the Mux module as originated from here https://android.googlesource.com/platform/frameworks/av/+/master/drm/libmediadrm/DrmUtils.cpp#327.
We do not currently have any Xiaomi with OS 12 on our hands and hence cannot reproduce the failure ourselves, so we are unfortunately unable to provide adb bugreport
. I am aware that this is crucial for deeper debugging, but this how it is now. That is why I posted it as a question for now. We can attempt to obtain such device but it might take a while.
When you see these exceptions from a Xiaomi running android 12 do you always see this exception? While it is possible, given the structure of the code, it is unexpected. I would have expected a specific error.
android.media.MediaCodec.CryptoException - OK: OK
@rrfrias The message with android.media.MediaCodec.CryptoException - OK: OK
is there always when the issue occurs and playback stops. For subsequent playback attempts the affected device might additionally throw also
android.media.MediaDrm$MediaDrmStateException: Failed to open session: ERROR_DRM_UNKNOWN ============================== Beginning of DRM Plugin Log ============================== 05-03 22:37:24.216 I found instance=clearkey version=android.hardware.drm@1.3::IDrmFactory 05-03 22:37:24.216 I found instance=widevine version=android.hardware.drm@1.3::IDrmFactory 05-03 23:17:34.348 W Cannot cast android.hardware.drm@1.0::ICryptoPlugin obj to android.hardware.drm@1.4::ICryptoPlugin plugin 05-03 23:17:53.948 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin ============================== End of DRM Plugin Log ==============================
and it appears that the device is then blocked from playback until it is restarted. But this follow-up error is not always present. Nothing else, i.e. more details, is reported.
This appears to be ERROR_DRM_UNKNOWN as well. This is an internal error code translation error that we will address.
android.media.MediaCodec.CryptoException - OK: OK
@ojw28, can you share information to log drm metrics information , which should help us get at the root cause?
Might it be possible when you get a android.media.MediaCodec.CryptoException to add a call to MediaDrm.getMetrics().toString() to your code. If you can get us metrics information, it will help us debug this furthur.
Thank you, we are implementing something utilizing your suggestion.
It might take a couple of weeks before the app version is distributed to end users and we get some data for you, so please do not autoclose the ticket in the meantime.
Thanks @BucherTomas . Will wait and keep it open till you have more information.
Hey @BucherTomas. We need more information to resolve this issue but there hasn't been an update in 14 weekdays. I'm marking the issue as stale and if there are no new updates in the next 7 days I will close it automatically.
If you have more information that will help us get to the bottom of this, just add a comment!
Still working on this...
Hey @BucherTomas. We need more information to resolve this issue but there hasn't been an update in 14 weekdays. I'm marking the issue as stale and if there are no new updates in the next 7 days I will close it automatically.
If you have more information that will help us get to the bottom of this, just add a comment!
We are just about to release app version with enhanced logging that should provide the required info for you. Once we have something, it will be shared here.
We have started gathering some logs from end-users based on the provided instructions in https://github.com/google/ExoPlayer/issues/10162#issuecomment-1127218050 but it does not appear to provide anything meaningful. It simply returns the bundle size as in "PersistableBundle[mParcelledData.dataSize=18828]"
.
When consulting with our devs, they think that @rrfrias may have meant to get the result of https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/PersistableBundle.java#347. Would that be correct?
May I please get a response to my previous question? Thank you.
It simply returns the bundle size as in "PersistableBundle[mParcelledData.dataSize=18828]"
Sorry I gave you bad advice. Since the bundle is still parceled toString()
will just print the size but not data. One option is to use MediaDrm.getMetrics().writeToStream() but that is rather verbose.
A preferable change is to use MediaDrm.getPropertyByteArray("metrics") . This returns a byte[] so you might need to convert it to a Base64 encoded string before you share with us (Base64.getEncoder().encodeToString(bytes)
) .
Apologies for having to roll another update. It might also be better to try to playback some content on a test device, then share the metrics data with us to make sure it looks good before you can push out the app update.
Thanks, this is an example of what we are getting now after the conversion to Base64. Is this correct?
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
Thanks, this is helpful. What is the model of this Xiaomi device? I am not seeing any errors similar to MediaDrmStateException (ERROR_DRM_UNKNOWN). Can you share a few more if you have access to them? You can email them to dev.exoplayer@gmail.com referencing Issue #10162 in the subject line.
Internal ref: 256929910
@rrfrias The shared data was just to confirm that we are now getting what you need. It was not from a Xiaomi device and it was not captured during the issue we are discussing here. For that we need to publish the app again and wait for the logs to be collected from our users. Then I will share them with you.
Understood. Thanks!
I managed to get a Xiaomi device running Android OS 12. I can try to repro, if you can share repro steps, test URL etc by mailing dev.exoplayer@gmail.com
with Issue #10162
in the subject line.
@rrfrias Thank you, the email has been sent with some additional details.
I'm facing a similar error. In my case, the following stack trace is displayed on Galaxy S10 and playback fails.
Non-fatal Exception: com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:595)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by com.google.android.exoplayer2.drm.DrmSession$DrmSessionException: android.media.MediaDrm$MediaDrmStateException: Failed to get key request: ERROR_DRM_UNKNOWN
============================== Beginning of DRM Plugin Log ==============================
10-27 09:54:14.531 I found instance=clearkey version=android.hardware.drm@1.3::IDrmFactory
10-27 09:54:14.531 I found instance=widevine version=android.hardware.drm@1.3::IDrmFactory
10-27 09:54:15.489 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:15.977 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:21.753 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:26.966 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:35.376 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:42.083 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:55:16.247 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:08.636 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:17.351 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:43.997 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:54.288 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:56.608 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:58:25.804 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
============================== End of DRM Plugin Log ============================<truncated: 2 chars>
at com.google.android.exoplayer2.drm.DefaultDrmSession.onError(DefaultDrmSession.java:544)
at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeysError(DefaultDrmSession.java:534)
at com.google.android.exoplayer2.drm.DefaultDrmSession.postKeyRequest(DefaultDrmSession.java:485)
at com.google.android.exoplayer2.drm.DefaultDrmSession.doLicense(DefaultDrmSession.java:425)
at com.google.android.exoplayer2.drm.DefaultDrmSession.acquire(DefaultDrmSession.java:315)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSession(DefaultDrmSessionManager.java:790)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSessionWithRetry(DefaultDrmSessionManager.java:690)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:573)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:519)
at com.google.android.exoplayer2.source.SampleQueue.onFormatResult(SampleQueue.java:926)
at com.google.android.exoplayer2.source.SampleQueue.peekSampleMetadata(SampleQueue.java:697)
at com.google.android.exoplayer2.source.SampleQueue.read(SampleQueue.java:423)
at com.google.android.exoplayer2.source.chunk.ChunkSampleStream.readData(ChunkSampleStream.java:392)
at com.google.android.exoplayer2.BaseRenderer.readSource(BaseRenderer.java:425)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:948)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:779)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:998)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:499)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by android.media.MediaDrm$MediaDrmStateException: Failed to get key request: ERROR_DRM_UNKNOWN
============================== Beginning of DRM Plugin Log ==============================
10-27 09:54:14.531 I found instance=clearkey version=android.hardware.drm@1.3::IDrmFactory
10-27 09:54:14.531 I found instance=widevine version=android.hardware.drm@1.3::IDrmFactory
10-27 09:54:15.489 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:15.977 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:21.753 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:26.966 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:35.376 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:54:42.083 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:55:16.247 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:08.636 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:17.351 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:43.997 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:54.288 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:57:56.608 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
10-27 09:58:25.804 W Cannot cast android.hardware.drm@1.0::IDrmPlugin obj to android.hardware.drm@1.4::IDrmPlugin plugin
============================== End of DRM Plugin Log ==============================
at android.media.MediaDrm.getKeyRequestNative(MediaDrm.java)
at android.media.MediaDrm.getKeyRequest(MediaDrm.java:1580)
at com.google.android.exoplayer2.drm.FrameworkMediaDrm.getKeyRequest(FrameworkMediaDrm.java:214)
at com.google.android.exoplayer2.drm.DefaultDrmSession.postKeyRequest(DefaultDrmSession.java:481)
at com.google.android.exoplayer2.drm.DefaultDrmSession.doLicense(DefaultDrmSession.java:425)
at com.google.android.exoplayer2.drm.DefaultDrmSession.acquire(DefaultDrmSession.java:315)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSession(DefaultDrmSessionManager.java:790)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSessionWithRetry(DefaultDrmSessionManager.java:690)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:573)
at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:519)
at com.google.android.exoplayer2.source.SampleQueue.onFormatResult(SampleQueue.java:926)
at com.google.android.exoplayer2.source.SampleQueue.peekSampleMetadata(SampleQueue.java:697)
at com.google.android.exoplayer2.source.SampleQueue.read(SampleQueue.java:423)
at com.google.android.exoplayer2.source.chunk.ChunkSampleStream.readData(ChunkSampleStream.java:392)
at com.google.android.exoplayer2.BaseRenderer.readSource(BaseRenderer.java:425)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:948)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:779)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:998)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:499)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
[Additional info]
@hokar This is a different issue. Can you open a new github tracker? The stack trace is useful but in this case not conclusive. Might it be possible to capture metric information as mentioned here https://github.com/google/ExoPlayer/issues/10162#issuecomment-1284616207 or share a bugreport.
@rrfrias Thank you for your reply. I got it. I will post an issue.
Hey @BucherTomas. We need more information to resolve this issue but there hasn't been an update in 14 weekdays. I'm marking the issue as stale and if there are no new updates in the next 7 days I will close it automatically.
If you have more information that will help us get to the bottom of this, just add a comment!
This is just to keep the ticket open.
The deployment of app production version gathering the required info is still ahead of us. This is in the hands of our customer, so we cannot make it any faster.
Let us know whenever you have more information.
We received a bugreport emailed to dev.exoplayer@gmail.com with subject line Issue #10162 a week back. HD1903 (OnePlus7T_EEA-RKQ1.201022.002). This is very helpful. Can you reply and give us approval to share this with Qualcomm+OnePlus to investigate furthur?
@rrfrias That mentioned bugreport was not provided by me as original reporter of this ticket. It must have been sent by somebody else. We are attempting to solve issues with Xiaomi devices here while the bugreport was for another vendor.
Unless the responsible person for the bugreport expresses their disapproval here soon, I'd say go for it.
On second inspection, the failure is a different issue. @BucherTomas please share whenever you have more information.
@rrfrias Our customer has just deployed the new player version with this debugging info enabled. We are actively monitoring the logs so that we can provide details as soon as possible. It is still a bit hit and miss to run into the issue, so hopefully it is not going to take long.
@rrfrias just an update on current state of things.
We have two larger customers that we log for the purpose of this ticket. The one who recently deployed their app with correct MediaDrm.getMetrics() contents has strangely no record of this issue occuring for the last two weeks. Granted, they generate less DRM traffic, so there is also less chances to run into the issue. So we're still monitoring here.
The second customer with larger amounts of DRM traffic where we are still seeing the issue with android.media.MediaCodec.CryptoException - OK: OK
message to this day has still not deployed their own app with updated logging, so unfortunately I can't provide logs from their app yet.
Thanks for the update. Let us know whenever you do get information.
We have finally managed to gather some logs. Sent to your dev email.
@BucherTomas, did you send it with subject line Issue https://github.com/google/ExoPlayer/issues/10162? The last email i see from you is on November 16th 2022.
@rrfrias Absolutely, the mail has been sent on Feb 28, 12:03 UTC with subject line Issue #10162
. I can resend it again if needed.
Can you please resend? I do not see it.
@rrfrias Done.
This is quite odd. I do not see any recent messages to dev.exoplayer@gmail.com with 10162 in the subject line. I have also checked messages from your email address and the last one i see is the one sent here on November 16th 2022
@rrfrias Not sure what's the problem here. Anyway, to prevent further sharing problems, the captured logs are attached here. mediaDrmMetrics.txt
Thanks! The metrics are helpful. We are analyzing the data.
Has there been any response from Xiaomi to the report? We are still seeing the same issue half a year later. Thanks.
Hello,
this is rather a question since we are unable to provide adb bugreport for deeper analysis.
The last few weeks we have been noticing in our analytics tool the following error from Xiaomi devices newly upgraded to the new OS 12.
There is nothing in Crashlytics, though and no other brand is so far exhibiting the same issue with OS 12, only Xiaomi.
This is randomly occuring after some playback time of encrypted content without with player still in focus. It is happening with different content that other devices have no issues with, the Widevine license does not explicitly restrict anything.
Here it took a couple of minutes, the time 10:42:58 is when the session stopped with an error. From what we can ascertain, it concerns only OS 12, there are no reports of similar behavior from OS 11, the sent error message or stack itself would be of course different as this syntax is available since OS 12 but there is still nothing like that and users did not report anything with older OS versions and now they do with OS 12.
We are still running ExoPlayer 2.13.1 and although I can see that there were some compatibility enhancements with OS 12 in later revisions, there does not appear to be anything related to this particular issue.
Questions taking into account that there is not much to go on from the error message:
Thank you.