Upgrade widevine HIDL service to v1.1.
Merged from http://go/wvgerrit/44803. Upgrade HIDL service to v1.1 and implements new 1.1 media API. Test: Netflix and Play Movies & TV streaming and offline playback Test: GTS WidevineH264PlaybackTests test e.g. ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m GtsMediaTestCases --test com.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P30 Test: GTS MediaDrmTest tests e.g. ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m GtsMediaTestCases --test com.google.android.media.gts.MediaDrmTest#testWidevineApi28 Test: unit tests bug: 69674645 Change-Id: I91e7e43f9178b61a531e846beffb5f5c17050a3c
This commit is contained in:
@@ -7,8 +7,9 @@
|
||||
|
||||
#include <map>
|
||||
|
||||
#include <android/hardware/drm/1.0/IDrmPlugin.h>
|
||||
#include <android/hardware/drm/1.1/IDrmPlugin.h>
|
||||
#include <android/hardware/drm/1.0/IDrmPluginListener.h>
|
||||
#include <android/hardware/drm/1.1/types.h>
|
||||
|
||||
#include "cdm_client_property_set.h"
|
||||
#include "cdm_identifier.h"
|
||||
@@ -21,22 +22,28 @@
|
||||
namespace wvdrm {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace V1_0 {
|
||||
namespace V1_1 {
|
||||
namespace widevine {
|
||||
|
||||
using ::android::hardware::drm::V1_0::EventType;
|
||||
using ::android::hardware::drm::V1_0::IDrmPlugin;
|
||||
using ::android::hardware::drm::V1_0::IDrmPluginListener;
|
||||
using ::android::hardware::drm::V1_0::KeyRequestType;
|
||||
using ::android::hardware::drm::V1_0::KeyStatus;
|
||||
using ::android::hardware::drm::V1_0::KeyType;
|
||||
using ::android::hardware::drm::V1_0::KeyValue;
|
||||
using ::android::hardware::drm::V1_0::SecureStop;
|
||||
using ::android::hardware::drm::V1_0::SecureStopId;
|
||||
using ::android::hardware::drm::V1_0::Status;
|
||||
using ::android::hardware::drm::V1_1::DrmMetricGroup;
|
||||
using ::android::hardware::drm::V1_1::HdcpLevel;
|
||||
using ::android::hardware::drm::V1_1::IDrmPlugin;
|
||||
using ::android::hardware::drm::V1_1::SecureStopRelease;
|
||||
using ::android::hardware::drm::V1_1::SecurityLevel;
|
||||
using ::android::hardware::hidl_array;
|
||||
using ::android::hardware::hidl_string;
|
||||
using ::android::hardware::hidl_vec;
|
||||
using ::android::hardware::Return;
|
||||
using ::android::hardware::Void;
|
||||
using ::android::sp;
|
||||
|
||||
using std::map;
|
||||
@@ -61,6 +68,8 @@ struct WVDrmPlugin : public IDrmPlugin, IDrmPluginListener,
|
||||
|
||||
Return<void> openSession(openSession_cb _hidl_cb) override;
|
||||
|
||||
Return<void> openSession_1_1(SecurityLevel securityLevel, openSession_1_1_cb _hidl_cb) override;
|
||||
|
||||
Return<Status> closeSession(const hidl_vec<uint8_t>& sessionId) override;
|
||||
|
||||
Return<void> getKeyRequest(
|
||||
@@ -71,6 +80,14 @@ struct WVDrmPlugin : public IDrmPlugin, IDrmPluginListener,
|
||||
const hidl_vec<KeyValue>& optionalParameters,
|
||||
getKeyRequest_cb _hidl_cb) override;
|
||||
|
||||
Return<void> getKeyRequest_1_1(
|
||||
const hidl_vec<uint8_t>& scope,
|
||||
const hidl_vec<uint8_t>& initData,
|
||||
const hidl_string& mimeType,
|
||||
KeyType keyType,
|
||||
const hidl_vec<KeyValue>& optionalParameters,
|
||||
getKeyRequest_1_1_cb _hidl_cb) override;
|
||||
|
||||
Return<void> provideKeyResponse(
|
||||
const hidl_vec<uint8_t>& scope,
|
||||
const hidl_vec<uint8_t>& response,
|
||||
@@ -106,6 +123,26 @@ struct WVDrmPlugin : public IDrmPlugin, IDrmPluginListener,
|
||||
Return<Status> releaseSecureStop(
|
||||
const hidl_vec<uint8_t>& secureStopId) override;
|
||||
|
||||
Return<void> getMetrics(getMetrics_cb _hidl_cb) {
|
||||
_hidl_cb(Status::ERROR_DRM_CANNOT_HANDLE, hidl_vec<DrmMetricGroup>());
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> getSecureStopIds(getSecureStopIds_cb _hidl_cb) override;
|
||||
|
||||
Return<Status> releaseSecureStops(const SecureStopRelease& ssRelease) override;
|
||||
|
||||
Return<Status> removeSecureStop(const hidl_vec<uint8_t>& secureStopId) override;
|
||||
|
||||
Return<Status> removeAllSecureStops() override;
|
||||
|
||||
Return<void> getHdcpLevels(getHdcpLevels_cb _hidl_cb) override;
|
||||
|
||||
Return<void> getNumberOfSessions(getNumberOfSessions_cb _hidl_cb) override;
|
||||
|
||||
Return<void> getSecurityLevel(const hidl_vec<uint8_t>& sessionId,
|
||||
getSecurityLevel_cb _hidl_cb) override;
|
||||
|
||||
Return<void> getPropertyString(
|
||||
const hidl_string& propertyName,
|
||||
getPropertyString_cb _hidl_cb) override;
|
||||
@@ -370,13 +407,17 @@ struct WVDrmPlugin : public IDrmPlugin, IDrmPluginListener,
|
||||
|
||||
Status mapOEMCryptoResult(OEMCryptoResult res);
|
||||
|
||||
SecurityLevel mapSecurityLevel(const std::string& level);
|
||||
|
||||
Status openSessionCommon(std::vector<uint8_t>& sessionId);
|
||||
|
||||
bool initDataResemblesPSSH(const std::vector<uint8_t>& initData);
|
||||
|
||||
Status unprovision(const CdmIdentifier& identifier);
|
||||
};
|
||||
|
||||
} // namespace widevine
|
||||
} // namespace V1_0
|
||||
} // namespace V1_1
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace wvdrm
|
||||
|
||||
Reference in New Issue
Block a user