Merge "Add mediadrm service" into nyc-dev
am: f35b991438
* commit 'f35b9914383e6f55008e0c5d74f49a6365c9522f':
Add mediadrm service
This commit is contained in:
@@ -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,19 +63,30 @@ JCrypto::~JCrypto() {
|
||||
// static
|
||||
sp<ICrypto> JCrypto::MakeCrypto() {
|
||||
sp<IServiceManager> sm = defaultServiceManager();
|
||||
sp<ICrypto> crypto;
|
||||
|
||||
sp<IBinder> binder =
|
||||
sm->getService(String16("media.player"));
|
||||
|
||||
sp<IMediaPlayerService> service =
|
||||
interface_cast<IMediaPlayerService>(binder);
|
||||
|
||||
if (service == NULL) {
|
||||
return NULL;
|
||||
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;
|
||||
}
|
||||
crypto = service->makeCrypto();
|
||||
}
|
||||
|
||||
sp<ICrypto> crypto = service->makeCrypto();
|
||||
|
||||
if (crypto == NULL || (crypto->initCheck() != OK && crypto->initCheck() != NO_INIT)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -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,19 +354,30 @@ JDrm::~JDrm() {
|
||||
// static
|
||||
sp<IDrm> JDrm::MakeDrm() {
|
||||
sp<IServiceManager> sm = defaultServiceManager();
|
||||
sp<IDrm> drm;
|
||||
|
||||
sp<IBinder> binder =
|
||||
sm->getService(String16("media.player"));
|
||||
|
||||
sp<IMediaPlayerService> service =
|
||||
interface_cast<IMediaPlayerService>(binder);
|
||||
|
||||
if (service == NULL) {
|
||||
return NULL;
|
||||
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;
|
||||
}
|
||||
drm = service->makeDrm();
|
||||
}
|
||||
|
||||
sp<IDrm> drm = service->makeDrm();
|
||||
|
||||
if (drm == NULL || (drm->initCheck() != OK && drm->initCheck() != NO_INIT)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user