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

Commit 087f22c2 authored by Robert Shih's avatar Robert Shih Committed by Android (Google) Code Review
Browse files

Merge "mediaplayer2: per-source DRM prepare/release iface"

parents b079c02b 3c3728de
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -260,11 +260,11 @@ public:
    virtual void onMessageReceived(const sp<AMessage> & /* msg */) override { }

    // Modular DRM
    virtual status_t prepareDrm(const uint8_t /* uuid */[16],
    virtual status_t prepareDrm(int64_t /*srcId*/, const uint8_t /* uuid */[16],
                                const Vector<uint8_t>& /* drmSessionId */) {
        return INVALID_OPERATION;
    }
    virtual status_t releaseDrm() {
    virtual status_t releaseDrm(int64_t /*srcId*/) {
        return INVALID_OPERATION;
    }

+4 −2
Original line number Diff line number Diff line
@@ -105,8 +105,10 @@ public:
            status_t        getParameter(int key, Parcel* reply);

            // Modular DRM
            status_t        prepareDrm(const uint8_t uuid[16], const Vector<uint8_t>& drmSessionId);
            status_t        releaseDrm();
            status_t        prepareDrm(int64_t srcId,
                                       const uint8_t uuid[16],
                                       const Vector<uint8_t>& drmSessionId);
            status_t        releaseDrm(int64_t srcId);
            // AudioRouting
            status_t        setPreferredDevice(jobject device);
            jobject         getRoutedDevice();
+5 −4
Original line number Diff line number Diff line
@@ -1094,7 +1094,8 @@ void MediaPlayer2::notify(int64_t srcId, int msg, int ext1, int ext2, const Play
}

// Modular DRM
status_t MediaPlayer2::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t>& drmSessionId) {
status_t MediaPlayer2::prepareDrm(
        int64_t srcId, const uint8_t uuid[16], const Vector<uint8_t>& drmSessionId) {
    // TODO change to ALOGV
    ALOGD("prepareDrm: uuid: %p  drmSessionId: %p(%zu)", uuid,
            drmSessionId.array(), drmSessionId.size());
@@ -1118,7 +1119,7 @@ status_t MediaPlayer2::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t>&
    }

    // Passing down to mediaserver mainly for creating the crypto
    status_t status = mPlayer->prepareDrm(uuid, drmSessionId);
    status_t status = mPlayer->prepareDrm(srcId, uuid, drmSessionId);
    ALOGE_IF(status != OK, "prepareDrm: Failed at mediaserver with ret: %d", status);

    // TODO change to ALOGV
@@ -1127,7 +1128,7 @@ status_t MediaPlayer2::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t>&
    return status;
}

status_t MediaPlayer2::releaseDrm() {
status_t MediaPlayer2::releaseDrm(int64_t srcId) {
    Mutex::Autolock _l(mLock);
    if (mPlayer == NULL) {
        return NO_INIT;
@@ -1142,7 +1143,7 @@ status_t MediaPlayer2::releaseDrm() {
        return INVALID_OPERATION;
    }

    status_t status = mPlayer->releaseDrm();
    status_t status = mPlayer->releaseDrm(srcId);
    // TODO change to ALOGV
    ALOGD("releaseDrm: mediaserver::releaseDrm ret: %d", status);
    if (status != OK) {
+5 −2
Original line number Diff line number Diff line
@@ -3046,7 +3046,8 @@ const char *NuPlayer2::getDataSourceType() {
 }

// Modular DRM begin
status_t NuPlayer2::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId)
status_t NuPlayer2::prepareDrm(
        int64_t srcId, const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId)
{
    ALOGV("prepareDrm ");

@@ -3056,6 +3057,7 @@ status_t NuPlayer2::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &dr
    uint8_t UUID[16];
    memcpy(UUID, uuid, sizeof(UUID));
    Vector<uint8_t> sessionId = drmSessionId;
    msg->setInt64("srcId", srcId);
    msg->setPointer("uuid", (void*)UUID);
    msg->setPointer("drmSessionId", (void*)&sessionId);

@@ -3072,11 +3074,12 @@ status_t NuPlayer2::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &dr
    return status;
}

status_t NuPlayer2::releaseDrm()
status_t NuPlayer2::releaseDrm(int64_t srcId)
{
    ALOGV("releaseDrm ");

    sp<AMessage> msg = new AMessage(kWhatReleaseDrm, this);
    msg->setInt64("srcId", srcId);

    sp<AMessage> response;
    status_t status = msg->postAndAwaitResponse(&response);
+2 −2
Original line number Diff line number Diff line
@@ -92,8 +92,8 @@ struct NuPlayer2 : public AHandler {
    float getFrameRate();

    // Modular DRM
    status_t prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId);
    status_t releaseDrm();
    status_t prepareDrm(int64_t srcId, const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId);
    status_t releaseDrm(int64_t srcId);

    const char *getDataSourceType();

Loading