Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / media / base / wall_clock_time_source.h
index 9f97a5c..8057746 100644 (file)
@@ -6,6 +6,7 @@
 #define MEDIA_BASE_WALL_CLOCK_TIME_SOURCE_H_
 
 #include "base/memory/scoped_ptr.h"
+#include "base/synchronization/lock.h"
 #include "media/base/media_export.h"
 #include "media/base/time_source.h"
 
@@ -27,10 +28,13 @@ class MEDIA_EXPORT WallClockTimeSource : public TimeSource {
   virtual void SetPlaybackRate(float playback_rate) OVERRIDE;
   virtual void SetMediaTime(base::TimeDelta time) OVERRIDE;
   virtual base::TimeDelta CurrentMediaTime() OVERRIDE;
+  virtual base::TimeDelta CurrentMediaTimeForSyncingVideo() OVERRIDE;
 
   void SetTickClockForTesting(scoped_ptr<base::TickClock> tick_clock);
 
  private:
+  base::TimeDelta CurrentMediaTime_Locked();
+
   scoped_ptr<base::TickClock> tick_clock_;
   bool ticking_;
 
@@ -41,6 +45,10 @@ class MEDIA_EXPORT WallClockTimeSource : public TimeSource {
   base::TimeDelta base_time_;
   base::TimeTicks reference_wall_ticks_;
 
+  // TODO(scherkus): Remove internal locking from this class after access to
+  // Renderer::CurrentMediaTime() is single threaded http://crbug.com/370634
+  base::Lock lock_;
+
   DISALLOW_COPY_AND_ASSIGN(WallClockTimeSource);
 };