diff --git a/libwvdrmengine/cdm/include/wv_content_decryption_module.h b/libwvdrmengine/cdm/include/wv_content_decryption_module.h index 42744209..aaf1558b 100644 --- a/libwvdrmengine/cdm/include/wv_content_decryption_module.h +++ b/libwvdrmengine/cdm/include/wv_content_decryption_module.h @@ -121,6 +121,7 @@ class WvContentDecryptionModule : public TimerHandler { void OnTimerEvent(); static Lock session_sharing_id_generation_lock_; + Lock policy_timer_lock_; Timer policy_timer_; // instance variables diff --git a/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp b/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp index b59c6154..e247b823 100644 --- a/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp +++ b/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp @@ -2,8 +2,6 @@ #include "wv_content_decryption_module.h" -#include - #include "cdm_client_property_set.h" #include "cdm_engine.h" #include "initialization_data.h" @@ -214,11 +212,13 @@ void WvContentDecryptionModule::NotifyResolution(const CdmSessionId& session_id, } void WvContentDecryptionModule::EnablePolicyTimer() { + AutoLock auto_lock(policy_timer_lock_); if (!policy_timer_.IsRunning()) policy_timer_.Start(this, kCdmPolicyTimerDurationSeconds); } void WvContentDecryptionModule::DisablePolicyTimer(bool force) { + AutoLock auto_lock(policy_timer_lock_); if ((cdm_engine_->SessionSize() == 0 || force) && policy_timer_.IsRunning()) policy_timer_.Stop(); } @@ -232,6 +232,4 @@ uint32_t WvContentDecryptionModule::GenerateSessionSharingId() { return ++next_session_sharing_id; } - - } // namespace wvcdm