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

Commit ec3005d1 authored by Jeff Tinker's avatar Jeff Tinker Committed by android-build-merger
Browse files

Merge "Add mediadrm service" into nyc-dev

am: f35b9914

* commit 'f35b9914':
  Add mediadrm service
parents d5ac4502 f35b9914
Loading
Loading
Loading
Loading
+24 −11
Original line number Diff line number Diff line
@@ -25,7 +25,9 @@
#include "JNIHelp.h"

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

@@ -61,18 +63,29 @@ JCrypto::~JCrypto() {
// static
sp<ICrypto> JCrypto::MakeCrypto() {
    sp<IServiceManager> sm = defaultServiceManager();
    sp<ICrypto> crypto;

    char value[PROPERTY_VALUE_MAX];
    if (property_get("media.mediadrmservice.enable", value, NULL)
        && (!strcmp("1", value) || !strcasecmp("true", value))) {
        sp<IBinder> binder =
            sm->getService(String16("media.drm"));
        sp<IMediaDrmService> service =
            interface_cast<IMediaDrmService>(binder);
        if (service == NULL) {
            return NULL;
        }
        crypto = service->makeCrypto();
    } else {
        sp<IBinder> binder =
            sm->getService(String16("media.player"));

        sp<IMediaPlayerService> service =
            interface_cast<IMediaPlayerService>(binder);

        if (service == NULL) {
            return NULL;
        }

    sp<ICrypto> crypto = service->makeCrypto();
        crypto = service->makeCrypto();
    }

    if (crypto == NULL || (crypto->initCheck() != OK && crypto->initCheck() != NO_INIT)) {
        return NULL;
+24 −11
Original line number Diff line number Diff line
@@ -28,7 +28,9 @@

#include <binder/IServiceManager.h>
#include <binder/Parcel.h>
#include <cutils/properties.h>
#include <media/IDrm.h>
#include <media/IMediaDrmService.h>
#include <media/IMediaPlayerService.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/MediaErrors.h>
@@ -352,18 +354,29 @@ JDrm::~JDrm() {
// static
sp<IDrm> JDrm::MakeDrm() {
    sp<IServiceManager> sm = defaultServiceManager();
    sp<IDrm> drm;

    char value[PROPERTY_VALUE_MAX];
    if (property_get("media.mediadrmservice.enable", value, NULL)
        && (!strcmp("1", value) || !strcasecmp("true", value))) {
        sp<IBinder> binder =
            sm->getService(String16("media.drm"));
        sp<IMediaDrmService> service =
            interface_cast<IMediaDrmService>(binder);
        if (service == NULL) {
            return NULL;
        }
        drm = service->makeDrm();
    } else {
        sp<IBinder> binder =
            sm->getService(String16("media.player"));

        sp<IMediaPlayerService> service =
            interface_cast<IMediaPlayerService>(binder);

        if (service == NULL) {
            return NULL;
        }

    sp<IDrm> drm = service->makeDrm();
        drm = service->makeDrm();
    }

    if (drm == NULL || (drm->initCheck() != OK && drm->initCheck() != NO_INIT)) {
        return NULL;