Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit daca30ef authored by Robert Shih's avatar Robert Shih
Browse files

mediaplayer2: allow prepare DRM in non-prepare states

Required because mediaplayer2 needs to prepare DRM for pending playlist
items while mediaplayer2 is in `started` state.

Bug: 123425309
Test: MediaPlayer2DrmTest
Change-Id: I20bd2afdc415e716a20cfca7c6b97d62e599aaad
parent b5a34d6d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1124,9 +1124,11 @@ status_t MediaPlayer2::prepareDrm(
    // completed) so the state change to "prepared" might not have happened yet (e.g., buffering).
    // Still, we can allow prepareDrm for the use case of being called in OnDrmInfoListener.
    if (!(mCurrentState & (MEDIA_PLAYER2_PREPARING | MEDIA_PLAYER2_PREPARED))) {
        ALOGE("prepareDrm is called in the wrong state (%d).", mCurrentState);
        ALOGW("prepareDrm(%lld) called in non-prepare state(%d)", (long long)srcId, mCurrentState);
        if (srcId == mSrcId) {
            return INVALID_OPERATION;
        }
    }

    if (drmSessionId.isEmpty()) {
        ALOGE("prepareDrm: Unexpected. Can't proceed with crypto. Empty drmSessionId.");