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

Commit 218b9537 authored by Robert Shih's avatar Robert Shih
Browse files

media jni: refactor IDrm & ICrypto creation

Bug: 134787536
Test: MediaDrmClearkeyTest#testClearKeyPlaybackCenc
Change-Id: Ib7ef2c1e9b6c4d31bd0f9e03f4ed683accde1da0
parent 2e63cedc
Loading
Loading
Loading
Loading
+2 −16
Original line number Diff line number Diff line
@@ -24,11 +24,10 @@
#include "jni.h"
#include <nativehelper/JNIHelp.h>

#include <binder/IServiceManager.h>
#include <cutils/properties.h>
#include <media/stagefright/foundation/ADebug.h>
#include <mediadrm/DrmUtils.h>
#include <mediadrm/ICrypto.h>
#include <mediadrm/IMediaDrmService.h>

namespace android {

@@ -64,20 +63,7 @@ JCrypto::~JCrypto() {

// static
sp<ICrypto> JCrypto::MakeCrypto() {
    sp<IServiceManager> sm = defaultServiceManager();

    sp<IBinder> binder = sm->getService(String16("media.drm"));
    sp<IMediaDrmService> service = interface_cast<IMediaDrmService>(binder);
    if (service == NULL) {
        return NULL;
    }

    sp<ICrypto> crypto = service->makeCrypto();
    if (crypto == NULL || (crypto->initCheck() != OK && crypto->initCheck() != NO_INIT)) {
        return NULL;
    }

    return crypto;
    return DrmUtils::MakeCrypto();
}

// static
+2 −16
Original line number Diff line number Diff line
@@ -27,14 +27,13 @@
#include "jni.h"
#include <nativehelper/JNIHelp.h>

#include <binder/IServiceManager.h>
#include <binder/Parcel.h>
#include <binder/PersistableBundle.h>
#include <cutils/properties.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/MediaErrors.h>
#include <mediadrm/DrmUtils.h>
#include <mediadrm/IDrm.h>
#include <mediadrm/IMediaDrmService.h>

using ::android::os::PersistableBundle;

@@ -486,20 +485,7 @@ JDrm::~JDrm() {

// static
sp<IDrm> JDrm::MakeDrm() {
    sp<IServiceManager> sm = defaultServiceManager();

    sp<IBinder> binder = sm->getService(String16("media.drm"));
    sp<IMediaDrmService> service = interface_cast<IMediaDrmService>(binder);
    if (service == NULL) {
        return NULL;
    }

    sp<IDrm> drm = service->makeDrm();
    if (drm == NULL || (drm->initCheck() != OK && drm->initCheck() != NO_INIT)) {
        return NULL;
    }

    return drm;
    return DrmUtils::MakeDrm();
}

// static