libwvhidl: implement setPlaybackId
Bug: 159337195 Bug: 168341163 Test: GtsMediaTestCases MediaDrmTest#testSetPlaybackId Change-Id: I4fc687892c9dd3b8077b3ecdfd9bbc355b298571
This commit is contained in:
@@ -348,6 +348,9 @@ class CdmEngine {
|
||||
}
|
||||
virtual const std::string& GetAppPackageName() { return app_package_name_; }
|
||||
virtual void SetSpoid(const std::string& spoid) { spoid_ = spoid; }
|
||||
virtual CdmResponseType SetPlaybackId(
|
||||
const CdmSessionId& session_id,
|
||||
const std::string& playback_id);
|
||||
|
||||
protected:
|
||||
friend class CdmEngineFactory;
|
||||
|
||||
@@ -416,6 +416,7 @@ enum CdmResponseType : int32_t {
|
||||
LOAD_USAGE_ENTRY_INVALID_SESSION = 361,
|
||||
RESTORE_OFFLINE_LICENSE_ERROR_3 = 362,
|
||||
NO_SRM_VERSION = 363,
|
||||
SESSION_NOT_FOUND_23 = 364,
|
||||
// Don't forget to add new values to
|
||||
// * core/test/test_printers.cpp.
|
||||
// * android/include/mapErrors-inl.h
|
||||
|
||||
@@ -1922,6 +1922,19 @@ CdmResponseType CdmEngine::ValidateServiceCertificate(const std::string& cert) {
|
||||
return certificate.Init(cert);
|
||||
}
|
||||
|
||||
CdmResponseType CdmEngine::SetPlaybackId(
|
||||
const CdmSessionId& session_id, const std::string& playback_id) {
|
||||
LOGI("Setting session_id = %s playback_id = %s",
|
||||
session_id.c_str(), playback_id.c_str());
|
||||
std::shared_ptr<CdmSession> session;
|
||||
if (!session_map_.FindSession(session_id, &session)) {
|
||||
LOGE("Session ID not found: %s", session_id.c_str());
|
||||
return SESSION_NOT_FOUND_23;
|
||||
}
|
||||
session->GetMetrics()->playback_id_.Record(playback_id);
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
std::string CdmEngine::MapHdcpVersion(CryptoSession::HdcpCapability version) {
|
||||
switch (version) {
|
||||
case HDCP_NONE:
|
||||
|
||||
@@ -812,6 +812,9 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) {
|
||||
case SESSION_NOT_FOUND_22:
|
||||
*os << "SESSION_NOT_FOUND_22";
|
||||
break;
|
||||
case SESSION_NOT_FOUND_23:
|
||||
*os << "SESSION_NOT_FOUND_23";
|
||||
break;
|
||||
case SESSION_NOT_FOUND_FOR_DECRYPT:
|
||||
*os << "SESSION_NOT_FOUND_FOR_DECRYPT";
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user