diff options
author | Andreas Huber <andih@google.com> | 2012-03-26 11:13:27 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-03-26 11:24:04 -0700 |
commit | ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6 (patch) | |
tree | 99d5bb3a2f48f9a3ba3eaaf17e630b589e97bef1 /media/libmedia/IMediaPlayerService.cpp | |
parent | cc1110dc92e53e9cc0afbb043e6ef8295bd9c5d5 (diff) | |
download | frameworks_av-ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6.zip frameworks_av-ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6.tar.gz frameworks_av-ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6.tar.bz2 |
Provisional support for secure decryption of media streams.
Change-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe
Diffstat (limited to 'media/libmedia/IMediaPlayerService.cpp')
-rw-r--r-- | media/libmedia/IMediaPlayerService.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/media/libmedia/IMediaPlayerService.cpp b/media/libmedia/IMediaPlayerService.cpp index f5fccef..9120617 100644 --- a/media/libmedia/IMediaPlayerService.cpp +++ b/media/libmedia/IMediaPlayerService.cpp @@ -20,6 +20,7 @@ #include <binder/Parcel.h> #include <binder/IMemory.h> +#include <media/ICrypto.h> #include <media/IMediaPlayerService.h> #include <media/IMediaRecorder.h> #include <media/IOMX.h> @@ -36,6 +37,7 @@ enum { CREATE_MEDIA_RECORDER, CREATE_METADATA_RETRIEVER, GET_OMX, + MAKE_CRYPTO, ADD_BATTERY_DATA, PULL_BATTERY_DATA }; @@ -111,6 +113,13 @@ public: return interface_cast<IOMX>(reply.readStrongBinder()); } + virtual sp<ICrypto> makeCrypto() { + Parcel data, reply; + data.writeInterfaceToken(IMediaPlayerService::getInterfaceDescriptor()); + remote()->transact(MAKE_CRYPTO, data, &reply); + return interface_cast<ICrypto>(reply.readStrongBinder()); + } + virtual void addBatteryData(uint32_t params) { Parcel data, reply; data.writeInterfaceToken(IMediaPlayerService::getInterfaceDescriptor()); @@ -191,6 +200,12 @@ status_t BnMediaPlayerService::onTransact( reply->writeStrongBinder(omx->asBinder()); return NO_ERROR; } break; + case MAKE_CRYPTO: { + CHECK_INTERFACE(IMediaPlayerService, data, reply); + sp<ICrypto> crypto = makeCrypto(); + reply->writeStrongBinder(crypto->asBinder()); + return NO_ERROR; + } break; case ADD_BATTERY_DATA: { CHECK_INTERFACE(IMediaPlayerService, data, reply); uint32_t params = data.readInt32(); |