blob: 742516cab4e6bd895c3737ed99074af3f3071feb [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromecast/media/cdm/cast_cdm_context.h"
#include "base/logging.h"
#include "chromecast/media/base/decrypt_context_impl.h"
#include "chromecast/media/cdm/cast_cdm.h"
#include "chromecast/public/media/decrypt_context.h"
namespace chromecast {
namespace media {
CastCdmContext::CastCdmContext(CastCdm* cast_cdm) : cast_cdm_(cast_cdm) {
DCHECK(cast_cdm_);
}
CastCdmContext::~CastCdmContext() {}
::media::Decryptor* CastCdmContext::GetDecryptor() {
// Subclasses providing CdmContext for a ClearKey CDM implementation must
// override this method to provide the Decryptor. Subclasses providing DRM
// implementations should return nullptr here.
return nullptr;
}
int CastCdmContext::GetCdmId() const {
// This is a local CDM module.
return ::media::CdmContext::kInvalidCdmId;
}
int CastCdmContext::RegisterPlayer(const base::Closure& new_key_cb,
const base::Closure& cdm_unset_cb) {
return cast_cdm_->RegisterPlayer(new_key_cb, cdm_unset_cb);
}
void CastCdmContext::UnregisterPlayer(int registration_id) {
cast_cdm_->UnregisterPlayer(registration_id);
}
std::unique_ptr<DecryptContextImpl> CastCdmContext::GetDecryptContext(
const std::string& key_id) {
return cast_cdm_->GetDecryptContext(key_id);
}
void CastCdmContext::SetKeyStatus(const std::string& key_id,
CastKeyStatus key_status,
uint32_t system_code) {
cast_cdm_->SetKeyStatus(key_id, key_status, system_code);
}
} // namespace media
} // namespace chromecast