Index: media/filters/test_video_frame_scheduler.h |
diff --git a/media/filters/test_video_frame_scheduler.h b/media/filters/test_video_frame_scheduler.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5435c55a364a0ed55e08bf1ac5d5a897a4e48f96 |
--- /dev/null |
+++ b/media/filters/test_video_frame_scheduler.h |
@@ -0,0 +1,57 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef MEDIA_FILTERS_TEST_VIDEO_FRAME_SCHEDULER_H_ |
+#define MEDIA_FILTERS_TEST_VIDEO_FRAME_SCHEDULER_H_ |
+ |
+#include <vector> |
+ |
+#include "media/filters/video_frame_scheduler.h" |
+ |
+namespace media { |
+ |
+// A scheduler that queues frames until told otherwise. |
+class TestVideoFrameScheduler : public VideoFrameScheduler { |
+ public: |
+ struct ScheduledFrame { |
+ ScheduledFrame(const scoped_refptr<VideoFrame> frame, |
+ base::TimeTicks wall_ticks, |
+ const DoneCB& done_cb); |
+ ~ScheduledFrame(); |
+ |
+ scoped_refptr<VideoFrame> frame; |
+ base::TimeTicks wall_ticks; |
+ DoneCB done_cb; |
+ }; |
+ |
+ TestVideoFrameScheduler(); |
+ virtual ~TestVideoFrameScheduler(); |
+ |
+ // VideoFrameScheduler implementation. |
+ virtual void ScheduleVideoFrame(const scoped_refptr<VideoFrame>& frame, |
+ base::TimeTicks wall_ticks, |
+ const DoneCB& done_cb) OVERRIDE; |
+ virtual void Reset() OVERRIDE; |
+ |
+ // Displays all frames with scheduled times <= |wall_ticks|. |
+ void DisplayFramesUpTo(base::TimeTicks wall_ticks); |
+ |
+ // Drops all frames with scheduled times <= |wall_ticks|. |
+ void DropFramesUpTo(base::TimeTicks wall_ticks); |
+ |
+ const std::vector<ScheduledFrame>& scheduled_frames() { |
+ return scheduled_frames_; |
+ } |
+ |
+ private: |
+ void RunDoneCBForFramesUpTo(base::TimeTicks wall_ticks, Reason reason); |
+ |
+ std::vector<ScheduledFrame> scheduled_frames_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestVideoFrameScheduler); |
+}; |
+ |
+} // namespace media |
+ |
+#endif // MEDIA_FILTERS_TEST_VIDEO_FRAME_SCHEDULER_H_ |