| 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..2f6357aec061022a3b5328a11168b4bac79ee93b 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/ssrc_database.h
|
| +++ b/webrtc/modules/rtp_rtcp/source/ssrc_database.h
|
| @@ -13,14 +13,21 @@
|
|
|
| #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;
|
|
|
| +// TODO(tommi, holmer): Look into whether we can eliminate locking in this
|
| +// class or the class itself completely once voice engine doesn't rely on it.
|
| +// At the moment voe_auto_test requires locking, but it's not clear if that's
|
| +// an issue with the test code or if it reflects real world usage or if that's
|
| +// the best design performance wise.
|
| +// If we do decide to keep the class, we should at least get rid of using
|
| +// StaticInstance.
|
| class SSRCDatabase {
|
| public:
|
| static SSRCDatabase* GetSSRCDatabase();
|
| @@ -32,19 +39,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
|
|
|
|
|