libwvhidl: implement setPlaybackId

Bug: 159337195
Bug: 168341163
Test: GtsMediaTestCases MediaDrmTest#testSetPlaybackId
Change-Id: I4fc687892c9dd3b8077b3ecdfd9bbc355b298571
This commit is contained in:
Robert Shih
2021-01-18 00:10:54 -08:00
parent 56195b41c6
commit e0a1e459a2
14 changed files with 58 additions and 0 deletions

View File

@@ -225,6 +225,10 @@ struct WVDrmPlugin : public ::drm::V1_4::IDrmPlugin, IDrmPluginListener,
Return<bool> requiresSecureDecoderDefault(const hidl_string& mime) override;
Return<::drm::V1_0::Status> setPlaybackId(
const hidl_vec<uint8_t>& sessionId,
const hidl_string& playbackId) override;
// The following methods do not use hidl interface, it is used internally.
virtual Status unprovisionDevice();

View File

@@ -1955,6 +1955,16 @@ Return<bool> WVDrmPlugin::requiresSecureDecoderDefault(const hidl_string& mime)
}
}
Return<::drm::V1_0::Status> WVDrmPlugin::setPlaybackId(
const hidl_vec<uint8_t>& sessionId,
const hidl_string& playbackId) {
const std::vector<uint8_t> sId = toVector(sessionId);
CdmSessionId cdmSessionId(sId.begin(), sId.end());
std::string cdmPlaybackId = playbackId;
CdmResponseType res = mCDM->SetPlaybackId(cdmSessionId, cdmPlaybackId);
return mapCdmResponseType(res);
}
void WVDrmPlugin::OnSessionRenewalNeeded(const CdmSessionId& cdmSessionId) {
const std::vector<uint8_t> sessionId = StrToVector(cdmSessionId);
const hidl_vec<uint8_t> data; // data is ignored

View File

@@ -412,6 +412,11 @@ void HidlMetricsAdapter::AddSessionMetrics(
"license_service_version",
proto_metrics.license_service_version());
}
if (proto_metrics.has_playback_id()) {
group_builder.AddValue(
"playback_id",
proto_metrics.playback_id());
}
group_vector_.emplace_back(group_builder.Build());
}