#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"
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_;
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);
};