Commit 018d1770 by ibaker Committed by Oliver Woodman

Rollback of https://github.com/google/ExoPlayer/commit/9ec867852536307af13a19c594d4fcb4c0302a92

*** Original commit ***

Don't call MediaDrm.setLogSessionId in FrameworkMediaDrm

This method throws an UnsupportedOperationException on some Android 12
devices.

***

PiperOrigin-RevId: 433708582
parent 2d7220cf
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.drm; package com.google.android.exoplayer2.drm;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.media.DeniedByServerException; import android.media.DeniedByServerException;
import android.media.MediaCrypto; import android.media.MediaCrypto;
...@@ -23,6 +25,7 @@ import android.media.MediaDrm; ...@@ -23,6 +25,7 @@ import android.media.MediaDrm;
import android.media.MediaDrmException; import android.media.MediaDrmException;
import android.media.NotProvisionedException; import android.media.NotProvisionedException;
import android.media.UnsupportedSchemeException; import android.media.UnsupportedSchemeException;
import android.media.metrics.LogSessionId;
import android.os.PersistableBundle; import android.os.PersistableBundle;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.DoNotInline; import androidx.annotation.DoNotInline;
...@@ -185,7 +188,13 @@ public final class FrameworkMediaDrm implements ExoMediaDrm { ...@@ -185,7 +188,13 @@ public final class FrameworkMediaDrm implements ExoMediaDrm {
@Override @Override
public void setPlayerIdForSession(byte[] sessionId, PlayerId playerId) { public void setPlayerIdForSession(byte[] sessionId, PlayerId playerId) {
// TODO(b/221032172): Implement this when CDM compatibility issues are resolved. if (Util.SDK_INT >= 31) {
try {
Api31.setLogSessionIdOnMediaDrmSession(mediaDrm, sessionId, playerId);
} catch (UnsupportedOperationException e) {
Log.w(TAG, "setLogSessionId failed.");
}
}
} }
// Return values of MediaDrm.KeyRequest.getRequestType are equal to KeyRequest.RequestType. // Return values of MediaDrm.KeyRequest.getRequestType are equal to KeyRequest.RequestType.
...@@ -515,5 +524,16 @@ public final class FrameworkMediaDrm implements ExoMediaDrm { ...@@ -515,5 +524,16 @@ public final class FrameworkMediaDrm implements ExoMediaDrm {
public static boolean requiresSecureDecoder(MediaDrm mediaDrm, String mimeType) { public static boolean requiresSecureDecoder(MediaDrm mediaDrm, String mimeType) {
return mediaDrm.requiresSecureDecoder(mimeType); return mediaDrm.requiresSecureDecoder(mimeType);
} }
@DoNotInline
public static void setLogSessionIdOnMediaDrmSession(
MediaDrm mediaDrm, byte[] drmSessionId, PlayerId playerId) {
LogSessionId logSessionId = playerId.getLogSessionId();
if (!logSessionId.equals(LogSessionId.LOG_SESSION_ID_NONE)) {
MediaDrm.PlaybackComponent playbackComponent =
checkNotNull(mediaDrm.getPlaybackComponent(drmSessionId));
playbackComponent.setLogSessionId(logSessionId);
}
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment