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

Commit a1ac5ba1 authored by Robert Shih's avatar Robert Shih Committed by Android (Google) Code Review
Browse files

Merge "Update clearkey plugin to drm HAL v1.3"

parents 60569140 be926583
Loading
Loading
Loading
Loading
+21 −13
Original line number Diff line number Diff line
@@ -20,20 +20,28 @@

namespace clearkeydrm {

bool isClearKeyUUID(const uint8_t uuid[16]) {
    static const uint8_t kCommonPsshBoxUUID[16] = {
namespace {

const std::array<uint8_t, 16> kCommonPsshBoxUUID{
    0x10,0x77,0xEF,0xEC,0xC0,0xB2,0x4D,0x02,
    0xAC,0xE3,0x3C,0x1E,0x52,0xE2,0xFB,0x4B
};

// To be used in mpd to specify drm scheme for players
    static const uint8_t kClearKeyUUID[16] = {
const std::array<uint8_t, 16> kClearKeyUUID{
    0xE2,0x71,0x9D,0x58,0xA9,0x85,0xB3,0xC9,
    0x78,0x1A,0xB0,0x30,0xAF,0x78,0xD3,0x0E
};

    return !memcmp(uuid, kCommonPsshBoxUUID, sizeof(kCommonPsshBoxUUID)) ||
           !memcmp(uuid, kClearKeyUUID, sizeof(kClearKeyUUID));
}

bool isClearKeyUUID(const uint8_t uuid[16]) {
    return !memcmp(uuid, kCommonPsshBoxUUID.data(), kCommonPsshBoxUUID.size()) ||
           !memcmp(uuid, kClearKeyUUID.data(), kClearKeyUUID.size());
}

std::vector<std::array<uint8_t, 16>> getSupportedCryptoSchemes() {
    return {kCommonPsshBoxUUID, kClearKeyUUID};
}

} // namespace clearkeydrm
+5 −1
Original line number Diff line number Diff line
@@ -17,12 +17,16 @@
#ifndef CLEARKEY_UUID_H_
#define CLEARKEY_UUID_H_

#include <stdint.h>
#include <array>
#include <cstdint>
#include <vector>

namespace clearkeydrm {

bool isClearKeyUUID(const uint8_t uuid[16]);

std::vector<std::array<uint8_t, 16>> getSupportedCryptoSchemes();

} // namespace clearkeydrm

#endif // CLEARKEY_UUID_H_
+3 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ cc_defaults {
        "android.hardware.drm@1.0",
        "android.hardware.drm@1.1",
        "android.hardware.drm@1.2",
        "android.hardware.drm@1.3",
        "libbase",
        "libbinder",
        "libcrypto",
@@ -82,6 +83,7 @@ cc_binary {
    defaults: ["clearkey_service_defaults"],
    srcs: ["service.cpp"],
    init_rc: ["android.hardware.drm@1.2-service.clearkey.rc"],
    vintf_fragments: ["manifest_android.hardware.drm@1.3-service.clearkey.xml"],
}
cc_binary {
    name: "android.hardware.drm@1.2-service-lazy.clearkey",
@@ -89,4 +91,5 @@ cc_binary {
    defaults: ["clearkey_service_defaults"],
    srcs: ["serviceLazy.cpp"],
    init_rc: ["android.hardware.drm@1.2-service-lazy.clearkey.rc"],
    vintf_fragments: ["manifest_android.hardware.drm@1.3-service.clearkey.xml"],
}
+2 −2
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
namespace android {
namespace hardware {
namespace drm {
namespace V1_2 {
namespace V1_3 {
namespace clearkey {

extern "C" {
@@ -38,7 +38,7 @@ ICryptoFactory* createCryptoFactory() {
} // extern "C"

}  // namespace clearkey
}  // namespace V1_2
}  // namespace V1_3
}  // namespace drm
}  // namespace hardware
}  // namespace android
+5 −2
Original line number Diff line number Diff line
@@ -27,9 +27,12 @@
namespace android {
namespace hardware {
namespace drm {
namespace V1_2 {
namespace V1_3 {
namespace clearkey {

using ::android::hardware::drm::V1_0::Status;
using ::android::hardware::drm::V1_2::clearkey::CryptoPlugin;

Return<bool> CryptoFactory::isCryptoSchemeSupported(
    const hidl_array<uint8_t, 16> &uuid)
{
@@ -60,7 +63,7 @@ Return<void> CryptoFactory::createPlugin(
}

} // namespace clearkey
} // namespace V1_2
} // namespace V1_3
} // namespace drm
} // namespace hardware
} // namespace android
Loading