summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IMediaPlayerService.cpp
diff options
context:
space:
mode:
authorJeff Tinker <jtinker@google.com>2013-02-08 10:18:35 -0800
committerJeff Tinker <jtinker@google.com>2013-03-13 13:39:48 -0700
commitcc82dc6d500023eba6048616301a4b12682458db (patch)
tree1f36f887af92cb4bee147e962b85ce10f35d587a /media/libmedia/IMediaPlayerService.cpp
parentc93484ab9fdf044fd32f2388a3ce29040d2ba319 (diff)
downloadframeworks_av-cc82dc6d500023eba6048616301a4b12682458db.zip
frameworks_av-cc82dc6d500023eba6048616301a4b12682458db.tar.gz
frameworks_av-cc82dc6d500023eba6048616301a4b12682458db.tar.bz2
Implementing MediaDrm APIs
Change-Id: I9ff8eeb7d0c383b5c0c68cd54eb54ce7d2d22fe6
Diffstat (limited to 'media/libmedia/IMediaPlayerService.cpp')
-rw-r--r--media/libmedia/IMediaPlayerService.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/media/libmedia/IMediaPlayerService.cpp b/media/libmedia/IMediaPlayerService.cpp
index a95f4c9..e1ce5a9 100644
--- a/media/libmedia/IMediaPlayerService.cpp
+++ b/media/libmedia/IMediaPlayerService.cpp
@@ -21,6 +21,7 @@
#include <binder/Parcel.h>
#include <binder/IMemory.h>
#include <media/ICrypto.h>
+#include <media/IDrm.h>
#include <media/IHDCP.h>
#include <media/IMediaPlayerService.h>
#include <media/IMediaRecorder.h>
@@ -42,6 +43,7 @@ enum {
CREATE_METADATA_RETRIEVER,
GET_OMX,
MAKE_CRYPTO,
+ MAKE_DRM,
MAKE_HDCP,
ADD_BATTERY_DATA,
PULL_BATTERY_DATA,
@@ -123,6 +125,13 @@ public:
return interface_cast<ICrypto>(reply.readStrongBinder());
}
+ virtual sp<IDrm> makeDrm() {
+ Parcel data, reply;
+ data.writeInterfaceToken(IMediaPlayerService::getInterfaceDescriptor());
+ remote()->transact(MAKE_DRM, data, &reply);
+ return interface_cast<IDrm>(reply.readStrongBinder());
+ }
+
virtual sp<IHDCP> makeHDCP(bool createEncryptionModule) {
Parcel data, reply;
data.writeInterfaceToken(IMediaPlayerService::getInterfaceDescriptor());
@@ -225,6 +234,12 @@ status_t BnMediaPlayerService::onTransact(
reply->writeStrongBinder(crypto->asBinder());
return NO_ERROR;
} break;
+ case MAKE_DRM: {
+ CHECK_INTERFACE(IMediaPlayerService, data, reply);
+ sp<IDrm> drm = makeDrm();
+ reply->writeStrongBinder(drm->asBinder());
+ return NO_ERROR;
+ } break;
case MAKE_HDCP: {
CHECK_INTERFACE(IMediaPlayerService, data, reply);
bool createEncryptionModule = data.readInt32();