Index: media/filters/ffmpeg_glue.cc |
diff --git a/media/filters/ffmpeg_glue.cc b/media/filters/ffmpeg_glue.cc |
index f6d939d9eb5f12e2b243aa799ea678dfe52c00d6..eb2713369ec9944a3328d1d7ed71b47c35a30490 100644 |
--- a/media/filters/ffmpeg_glue.cc |
+++ b/media/filters/ffmpeg_glue.cc |
@@ -4,7 +4,6 @@ |
#include "media/filters/ffmpeg_glue.h" |
-#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/macros.h" |
#include "base/metrics/histogram_macros.h" |
@@ -87,40 +86,20 @@ static int LockManagerOperation(void** lock, enum AVLockOp op) { |
return 1; |
} |
-// FFmpeg must only be initialized once, so use a LazyInstance to ensure this. |
-class FFmpegInitializer { |
- public: |
- bool initialized() { return initialized_; } |
+// FFmpeg must only be initialized once per process. |
+static bool InitializeInternal() { |
+ // Register our protocol glue code with FFmpeg. |
+ if (av_lockmgr_register(&LockManagerOperation) != 0) |
+ return false; |
- private: |
- friend struct base::DefaultLazyInstanceTraits<FFmpegInitializer>; |
- |
- FFmpegInitializer() |
- : initialized_(false) { |
- // Register our protocol glue code with FFmpeg. |
- if (av_lockmgr_register(&LockManagerOperation) != 0) |
- return; |
- |
- // Now register the rest of FFmpeg. |
- av_register_all(); |
- |
- initialized_ = true; |
- } |
- |
- ~FFmpegInitializer() { |
- NOTREACHED() << "FFmpegInitializer should be leaky!"; |
- } |
- |
- bool initialized_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FFmpegInitializer); |
-}; |
+ // Now register the rest of FFmpeg. |
+ av_register_all(); |
+ return true; |
+} |
-static base::LazyInstance<FFmpegInitializer>::Leaky g_lazy_instance = |
- LAZY_INSTANCE_INITIALIZER; |
void FFmpegGlue::InitializeFFmpeg() { |
- // Get() will invoke the FFmpegInitializer constructor once. |
- CHECK(g_lazy_instance.Get().initialized()); |
+ static bool initialized = InitializeInternal(); |
scottmg
2017/01/31 21:10:34
Could consider inlining the Internal() function he
Mark Mentovai
2017/01/31 21:33:56
You can eliminate InitializeInternal() by writing
DaleCurtis
2017/01/31 22:04:33
Thanks, done!
|
+ CHECK(initialized); |
} |
FFmpegGlue::FFmpegGlue(FFmpegURLProtocol* protocol) |