Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e5e3115 authored by Jeff Tinker's avatar Jeff Tinker Committed by Android (Google) Code Review
Browse files

Merge "Add support for HDCP 2.3"

parents f637f04a 30c31856
Loading
Loading
Loading
Loading
+34 −0
Original line number Original line Diff line number Diff line
@@ -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
+14 −0
Original line number Original line Diff line number Diff line
@@ -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 {
    /**
    /**
@@ -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