Loading drm/libmediadrm/DrmHal.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -838,6 +838,11 @@ status_t DrmHal::setPropertyByteArray(String8 const &name, return toStatusT(status); } status_t DrmHal::getMetrics(MediaAnalyticsItem* metrics) { // TODO: Replace this with real metrics. metrics->setCString("/drm/mediadrm/dummymetric", "dummy"); return OK; } status_t DrmHal::setCipherAlgorithm(Vector<uint8_t> const &sessionId, String8 const &algorithm) { Loading Loading @@ -1030,6 +1035,7 @@ void DrmHal::writeByteArray(Parcel &obj, hidl_vec<uint8_t> const &vec) } } void DrmHal::reportMetrics() const { Vector<uint8_t> metrics; Loading drm/libmediadrm/IDrm.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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) { Loading Loading @@ -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); Loading media/libmedia/include/media/DrmHal.h +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include <media/IDrm.h> #include <media/IDrmClient.h> #include <media/MediaAnalyticsItem.h> #include <utils/threads.h> using ::android::hardware::drm::V1_0::EventType; Loading Loading @@ -104,6 +105,7 @@ struct DrmHal : public BnDrm, virtual status_t setPropertyString(String8 const &name, String8 const &value ) const; virtual status_t setPropertyByteArray(String8 const &name, Vector<uint8_t> const &value ) const; virtual status_t getMetrics(MediaAnalyticsItem *item); virtual status_t setCipherAlgorithm(Vector<uint8_t> const &sessionId, String8 const &algorithm); Loading media/libmedia/include/media/IDrm.h +3 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include <media/stagefright/foundation/ABase.h> #include <media/drm/DrmAPI.h> #include <media/IDrmClient.h> #include <media/MediaAnalyticsItem.h> #ifndef ANDROID_IDRM_H_ Loading Loading @@ -86,6 +87,8 @@ struct IDrm : public IInterface { virtual status_t setPropertyByteArray(String8 const &name, Vector<uint8_t> const &value) const = 0; virtual status_t getMetrics(MediaAnalyticsItem *item) = 0; virtual status_t setCipherAlgorithm(Vector<uint8_t> const &sessionId, String8 const &algorithm) = 0; Loading Loading
drm/libmediadrm/DrmHal.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -838,6 +838,11 @@ status_t DrmHal::setPropertyByteArray(String8 const &name, return toStatusT(status); } status_t DrmHal::getMetrics(MediaAnalyticsItem* metrics) { // TODO: Replace this with real metrics. metrics->setCString("/drm/mediadrm/dummymetric", "dummy"); return OK; } status_t DrmHal::setCipherAlgorithm(Vector<uint8_t> const &sessionId, String8 const &algorithm) { Loading Loading @@ -1030,6 +1035,7 @@ void DrmHal::writeByteArray(Parcel &obj, hidl_vec<uint8_t> const &vec) } } void DrmHal::reportMetrics() const { Vector<uint8_t> metrics; Loading
drm/libmediadrm/IDrm.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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) { Loading Loading @@ -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); Loading
media/libmedia/include/media/DrmHal.h +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include <media/IDrm.h> #include <media/IDrmClient.h> #include <media/MediaAnalyticsItem.h> #include <utils/threads.h> using ::android::hardware::drm::V1_0::EventType; Loading Loading @@ -104,6 +105,7 @@ struct DrmHal : public BnDrm, virtual status_t setPropertyString(String8 const &name, String8 const &value ) const; virtual status_t setPropertyByteArray(String8 const &name, Vector<uint8_t> const &value ) const; virtual status_t getMetrics(MediaAnalyticsItem *item); virtual status_t setCipherAlgorithm(Vector<uint8_t> const &sessionId, String8 const &algorithm); Loading
media/libmedia/include/media/IDrm.h +3 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include <media/stagefright/foundation/ABase.h> #include <media/drm/DrmAPI.h> #include <media/IDrmClient.h> #include <media/MediaAnalyticsItem.h> #ifndef ANDROID_IDRM_H_ Loading Loading @@ -86,6 +87,8 @@ struct IDrm : public IInterface { virtual status_t setPropertyByteArray(String8 const &name, Vector<uint8_t> const &value) const = 0; virtual status_t getMetrics(MediaAnalyticsItem *item) = 0; virtual status_t setCipherAlgorithm(Vector<uint8_t> const &sessionId, String8 const &algorithm) = 0; Loading