diff options
| author | Adam Stone <blueeyes@google.com> | 2017-12-22 12:34:20 -0800 |
|---|---|---|
| committer | Adam Stone <blueeyes@google.com> | 2018-01-19 16:29:47 -0800 |
| commit | ab394d13bab3a84f23677357576cee7a6f0c7899 (patch) | |
| tree | 49544ed51667ba0850b776529294be75de491961 /drm/libmediadrm/IDrm.cpp | |
| parent | 0b68d531017a66db63cc8c41ba28a4f15e9816f0 (diff) | |
| download | frameworks_av-ab394d13bab3a84f23677357576cee7a6f0c7899.tar.gz frameworks_av-ab394d13bab3a84f23677357576cee7a6f0c7899.tar.bz2 frameworks_av-ab394d13bab3a84f23677357576cee7a6f0c7899.zip | |
Add support for getMetrics to IDrm
Adds support for the new getMetrics call to the IDrm interface and the
DrmHal implementation. The implementation currently returns a dummy
metric collection. Follow-up CLs will flesh out the implementation.
Bug: 64001676
Test: Ran the new unit test created in a related CL; ran Google Play.
Change-Id: Ia6a3af5b59a30ca55267f7e3ba278a510fc8c81e
Diffstat (limited to 'drm/libmediadrm/IDrm.cpp')
| -rw-r--r-- | drm/libmediadrm/IDrm.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drm/libmediadrm/IDrm.cpp b/drm/libmediadrm/IDrm.cpp index 8ff6e6a0c4..d157be7cb6 100644 --- a/drm/libmediadrm/IDrm.cpp +++ b/drm/libmediadrm/IDrm.cpp @@ -46,6 +46,7 @@ enum { GET_PROPERTY_BYTE_ARRAY, SET_PROPERTY_STRING, SET_PROPERTY_BYTE_ARRAY, + GET_METRICS, SET_CIPHER_ALGORITHM, SET_MAC_ALGORITHM, ENCRYPT, @@ -393,6 +394,18 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32(); } + virtual status_t getMetrics(MediaAnalyticsItem *item) { + Parcel data, reply; + data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); + + status_t status = remote()->transact(GET_METRICS, data, &reply); + if (status != OK) { + return status; + } + + item->readFromParcel(reply); + return reply.readInt32(); + } virtual status_t setCipherAlgorithm(Vector<uint8_t> const &sessionId, String8 const &algorithm) { @@ -829,6 +842,17 @@ status_t BnDrm::onTransact( return OK; } + case GET_METRICS: + { + CHECK_INTERFACE(IDrm, data, reply); + + MediaAnalyticsItem item; + status_t result = getMetrics(&item); + item.writeToParcel(reply); + reply->writeInt32(result); + return OK; + } + case SET_CIPHER_ALGORITHM: { CHECK_INTERFACE(IDrm, data, reply); |
