Loading drm/1.2/IDrmPlugin.hal +34 −0 Original line number Original line Diff line number Diff line Loading @@ -183,6 +183,40 @@ interface IDrmPlugin extends @1.1::IDrmPlugin { getProvisionRequest_1_2(string certificateType, string certificateAuthority) getProvisionRequest_1_2(string certificateType, string certificateAuthority) generates (Status status, vec<uint8_t> request, string defaultUrl); generates (Status status, vec<uint8_t> request, string defaultUrl); /** * Return the currently negotiated and max supported HDCP levels. * * This method only differs from @1.1 version by the addition of * support for HDCP 2.3. * * The current level is based on the display(s) the device is connected to. * If multiple HDCP-capable displays are simultaneously connected to * separate interfaces, this method returns the lowest negotiated HDCP level * of all interfaces. * * The maximum HDCP level is the highest level that can potentially be * negotiated. It is a constant for any device, i.e. it does not depend on * downstream receiving devices that could be connected. For example, if * the device has HDCP 1.x keys and is capable of negotiating HDCP 1.x, but * does not have HDCP 2.x keys, then the maximum HDCP capability would be * reported as 1.x. If multiple HDCP-capable interfaces are present, it * indicates the highest of the maximum HDCP levels of all interfaces. * * This method should only be used for informational purposes, not for * enforcing compliance with HDCP requirements. Trusted enforcement of HDCP * policies must be handled by the DRM system. * * @return status the status of the call. The status must be OK or * ERROR_DRM_INVALID_STATE if the HAL is in a state where the HDCP * level cannot be queried. * @return connectedLevel the lowest HDCP level for any connected * displays * @return maxLevel the highest HDCP level that can be supported * by the device */ getHdcpLevels_1_2() generates (Status status, HdcpLevel connectedLevel, HdcpLevel maxLevel); /** /** * Send a session lost state event to the listener. This event * Send a session lost state event to the listener. This event * indicates that a session's state has become invalid because the * indicates that a session's state has become invalid because the Loading drm/1.2/types.hal +14 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.hardware.drm@1.2; package android.hardware.drm@1.2; import @1.0::Status; import @1.0::Status; import @1.1::HdcpLevel; enum OfflineLicenseState : uint32_t { enum OfflineLicenseState : uint32_t { /** /** Loading Loading @@ -71,6 +72,19 @@ enum Status : @1.0::Status { ERROR_DRM_RESOURCE_CONTENTION, ERROR_DRM_RESOURCE_CONTENTION, }; }; /** * HDCP specifications are defined by Digital Content Protection LLC (DCP). * "HDCP Specification Rev. 2.3 Interface Independent Adaptation" * "HDCP 2.3 on HDMI Specification" */ enum HdcpLevel : @1.1::HdcpLevel { /** * HDCP version 2.3 Type 1. */ HDCP_V2_3 }; /** /** * KeySetId is an identifier that references a set of keys in an * KeySetId is an identifier that references a set of keys in an * offline license. The keySetId is created by the HAL implementation * offline license. The keySetId is created by the HAL implementation Loading Loading
drm/1.2/IDrmPlugin.hal +34 −0 Original line number Original line Diff line number Diff line Loading @@ -183,6 +183,40 @@ interface IDrmPlugin extends @1.1::IDrmPlugin { getProvisionRequest_1_2(string certificateType, string certificateAuthority) getProvisionRequest_1_2(string certificateType, string certificateAuthority) generates (Status status, vec<uint8_t> request, string defaultUrl); generates (Status status, vec<uint8_t> request, string defaultUrl); /** * Return the currently negotiated and max supported HDCP levels. * * This method only differs from @1.1 version by the addition of * support for HDCP 2.3. * * The current level is based on the display(s) the device is connected to. * If multiple HDCP-capable displays are simultaneously connected to * separate interfaces, this method returns the lowest negotiated HDCP level * of all interfaces. * * The maximum HDCP level is the highest level that can potentially be * negotiated. It is a constant for any device, i.e. it does not depend on * downstream receiving devices that could be connected. For example, if * the device has HDCP 1.x keys and is capable of negotiating HDCP 1.x, but * does not have HDCP 2.x keys, then the maximum HDCP capability would be * reported as 1.x. If multiple HDCP-capable interfaces are present, it * indicates the highest of the maximum HDCP levels of all interfaces. * * This method should only be used for informational purposes, not for * enforcing compliance with HDCP requirements. Trusted enforcement of HDCP * policies must be handled by the DRM system. * * @return status the status of the call. The status must be OK or * ERROR_DRM_INVALID_STATE if the HAL is in a state where the HDCP * level cannot be queried. * @return connectedLevel the lowest HDCP level for any connected * displays * @return maxLevel the highest HDCP level that can be supported * by the device */ getHdcpLevels_1_2() generates (Status status, HdcpLevel connectedLevel, HdcpLevel maxLevel); /** /** * Send a session lost state event to the listener. This event * Send a session lost state event to the listener. This event * indicates that a session's state has become invalid because the * indicates that a session's state has become invalid because the Loading
drm/1.2/types.hal +14 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.hardware.drm@1.2; package android.hardware.drm@1.2; import @1.0::Status; import @1.0::Status; import @1.1::HdcpLevel; enum OfflineLicenseState : uint32_t { enum OfflineLicenseState : uint32_t { /** /** Loading Loading @@ -71,6 +72,19 @@ enum Status : @1.0::Status { ERROR_DRM_RESOURCE_CONTENTION, ERROR_DRM_RESOURCE_CONTENTION, }; }; /** * HDCP specifications are defined by Digital Content Protection LLC (DCP). * "HDCP Specification Rev. 2.3 Interface Independent Adaptation" * "HDCP 2.3 on HDMI Specification" */ enum HdcpLevel : @1.1::HdcpLevel { /** * HDCP version 2.3 Type 1. */ HDCP_V2_3 }; /** /** * KeySetId is an identifier that references a set of keys in an * KeySetId is an identifier that references a set of keys in an * offline license. The keySetId is created by the HAL implementation * offline license. The keySetId is created by the HAL implementation Loading