Index: webrtc/modules/rtp_rtcp/source/ssrc_database.h |
diff --git a/webrtc/modules/rtp_rtcp/source/ssrc_database.h b/webrtc/modules/rtp_rtcp/source/ssrc_database.h |
index 7a3133638d7eb20e5e7cefb58e5f9fca027d0ae6..8c19f7e78dd1c10e409d0830ab664d5e390598e0 100644 |
--- a/webrtc/modules/rtp_rtcp/source/ssrc_database.h |
+++ b/webrtc/modules/rtp_rtcp/source/ssrc_database.h |
@@ -13,13 +13,13 @@ |
#include <set> |
+#include "webrtc/base/criticalsection.h" |
#include "webrtc/base/random.h" |
-#include "webrtc/base/scoped_ptr.h" |
+#include "webrtc/base/thread_annotations.h" |
#include "webrtc/system_wrappers/include/static_instance.h" |
#include "webrtc/typedefs.h" |
namespace webrtc { |
-class CriticalSectionWrapper; |
class SSRCDatabase { |
public: |
@@ -32,19 +32,23 @@ class SSRCDatabase { |
protected: |
SSRCDatabase(); |
- virtual ~SSRCDatabase(); |
+ ~SSRCDatabase(); |
static SSRCDatabase* CreateInstance() { return new SSRCDatabase(); } |
- private: |
// Friend function to allow the SSRC destructor to be accessed from the |
// template class. |
friend SSRCDatabase* GetStaticInstance<SSRCDatabase>( |
CountOperation count_operation); |
- rtc::scoped_ptr<CriticalSectionWrapper> crit_; |
+ private: |
+ rtc::CriticalSection crit_; |
Random random_ GUARDED_BY(crit_); |
std::set<uint32_t> ssrcs_ GUARDED_BY(crit_); |
+ // TODO(tommi): Use a thread checker to ensure the object is created and |
+ // deleted on the same thread. At the moment this isn't possible due to |
+ // voe::ChannelOwner in voice engine. To reproduce, run: |
+ // voe_auto_test --automated --gtest_filter=*MixManyChannelsForStressOpus |
}; |
} // namespace webrtc |