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

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

Merge "Add mediadrm service" into nyc-dev am: f35b9914

am: ec3005d1

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


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


@@ -61,18 +63,29 @@ JCrypto::~JCrypto() {
// static
// static
sp<ICrypto> JCrypto::MakeCrypto() {
sp<ICrypto> JCrypto::MakeCrypto() {
    sp<IServiceManager> sm = defaultServiceManager();
    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 =
        sp<IBinder> binder =
            sm->getService(String16("media.player"));
            sm->getService(String16("media.player"));

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

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

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


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


#include <binder/IServiceManager.h>
#include <binder/IServiceManager.h>
#include <binder/Parcel.h>
#include <binder/Parcel.h>
#include <cutils/properties.h>
#include <media/IDrm.h>
#include <media/IDrm.h>
#include <media/IMediaDrmService.h>
#include <media/IMediaPlayerService.h>
#include <media/IMediaPlayerService.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/MediaErrors.h>
@@ -352,18 +354,29 @@ JDrm::~JDrm() {
// static
// static
sp<IDrm> JDrm::MakeDrm() {
sp<IDrm> JDrm::MakeDrm() {
    sp<IServiceManager> sm = defaultServiceManager();
    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 =
        sp<IBinder> binder =
            sm->getService(String16("media.player"));
            sm->getService(String16("media.player"));

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

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

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


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