summaryrefslogtreecommitdiffstats
path: root/drm/libmediadrm/IDrm.cpp
diff options
context:
space:
mode:
authorAdam Stone <blueeyes@google.com>2017-12-22 12:34:20 -0800
committerAdam Stone <blueeyes@google.com>2018-01-19 16:29:47 -0800
commitab394d13bab3a84f23677357576cee7a6f0c7899 (patch)
tree49544ed51667ba0850b776529294be75de491961 /drm/libmediadrm/IDrm.cpp
parent0b68d531017a66db63cc8c41ba28a4f15e9816f0 (diff)
downloadframeworks_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.cpp24
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);