Chromium Code Reviews| 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..77086c8a5ad09a22d7d8feb99cdff9beb032a596 100644 |
| --- a/webrtc/modules/rtp_rtcp/source/ssrc_database.h |
| +++ b/webrtc/modules/rtp_rtcp/source/ssrc_database.h |
| @@ -13,38 +13,31 @@ |
| #include <set> |
| +#include "webrtc/base/criticalsection.h" |
| #include "webrtc/base/random.h" |
| #include "webrtc/base/scoped_ptr.h" |
|
the sun
2016/01/25 11:24:57
dd
tommi
2016/01/25 12:28:33
Done.
|
| -#include "webrtc/system_wrappers/include/static_instance.h" |
| +#include "webrtc/base/thread_annotations.h" |
| #include "webrtc/typedefs.h" |
| namespace webrtc { |
| -class CriticalSectionWrapper; |
| class SSRCDatabase { |
| public: |
| - static SSRCDatabase* GetSSRCDatabase(); |
| - static void ReturnSSRCDatabase(); |
| + SSRCDatabase(); |
| + ~SSRCDatabase(); |
| uint32_t CreateSSRC(); |
| void RegisterSSRC(uint32_t ssrc); |
| void ReturnSSRC(uint32_t ssrc); |
| - protected: |
| - SSRCDatabase(); |
| - virtual ~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_; |
| + 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 |