app_info_ = PlayerAppInfo();
src_queue_size_ = SrcQueueSize();
is_msg_task_stop_ = false;
+ key_system_acquired_ = false;
}
void EsPlayer::ResetContextForStop_() {
&time_size_);
} else
return;
- *byte_size = boost::any_cast<std::uint64_t>(byte_size_);
- *time_size = boost::any_cast<std::uint64_t>(time_size_);
+ try {
+ *byte_size = boost::any_cast<std::uint64_t>(byte_size_);
+ *time_size = boost::any_cast<std::uint64_t>(time_size_);
+ } catch (...) {
+ LOG_INFO_P(this, "any_cast failed");
+ }
if (time_unit_type == kPlayerTimeUnitTypeMs)
*time_size = util::ConvertNsToMs(*time_size);
else if (time_unit_type == kPlayerTimeUnitTypeUs)
MakeGstBufferForEncryptedPacket_(gstbuffer, packet, drm_info);
return PacketSubmitStatus::kSuccess;
};
+ if (!key_system_acquired_ && drm_info.handle != 0) {
+ key_system_ = eme::IEME::getKeySystemName(drm_info.handle);
+ LOG_INFO("KeySystemName :: [%s] ", key_system_.c_str());
+ if (!state_manager_
+ .GetPreparingState()) { // if the stream comes with clean data at
+ // the beginning, re-post kpi when we get
+ // key system.
+ kpi::CodecLogger logger;
+ kpi::EsCodecLoggerKeys event_keys = MakeKpiKeys_();
+ logger.SendKpi(true, event_keys);
+ }
+ key_system_acquired_ = true;
+ }
return SubmitPacketCommon_(packet, submitpacket_op);
}
// LCOV_EXCL_STOP
event_info.is_clean = true;
} else {
event_info.is_clean = false;
+ event_info.key_system = key_system_;
}
for (const auto& track : track_) {