OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #ifndef MEDIA_FILTERS_TEST_VIDEO_FRAME_SCHEDULER_H_ |
| 6 #define MEDIA_FILTERS_TEST_VIDEO_FRAME_SCHEDULER_H_ |
| 7 |
| 8 #include <vector> |
| 9 |
| 10 #include "media/filters/video_frame_scheduler.h" |
| 11 |
| 12 namespace media { |
| 13 |
| 14 // A scheduler that queues frames until told otherwise. |
| 15 class TestVideoFrameScheduler : public VideoFrameScheduler { |
| 16 public: |
| 17 struct ScheduledFrame { |
| 18 ScheduledFrame(const scoped_refptr<VideoFrame> frame, |
| 19 base::TimeTicks wall_ticks, |
| 20 const DoneCB& done_cb); |
| 21 ~ScheduledFrame(); |
| 22 |
| 23 scoped_refptr<VideoFrame> frame; |
| 24 base::TimeTicks wall_ticks; |
| 25 DoneCB done_cb; |
| 26 }; |
| 27 |
| 28 TestVideoFrameScheduler(); |
| 29 virtual ~TestVideoFrameScheduler(); |
| 30 |
| 31 // VideoFrameScheduler implementation. |
| 32 virtual void ScheduleVideoFrame(const scoped_refptr<VideoFrame>& frame, |
| 33 base::TimeTicks wall_ticks, |
| 34 const DoneCB& done_cb) OVERRIDE; |
| 35 virtual void Reset() OVERRIDE; |
| 36 |
| 37 // Displays all frames with scheduled times <= |wall_ticks|. |
| 38 void DisplayFramesUpTo(base::TimeTicks wall_ticks); |
| 39 |
| 40 // Drops all frames with scheduled times <= |wall_ticks|. |
| 41 void DropFramesUpTo(base::TimeTicks wall_ticks); |
| 42 |
| 43 const std::vector<ScheduledFrame>& scheduled_frames() const { |
| 44 return scheduled_frames_; |
| 45 } |
| 46 |
| 47 private: |
| 48 void RunDoneCBForFramesUpTo(base::TimeTicks wall_ticks, Reason reason); |
| 49 |
| 50 std::vector<ScheduledFrame> scheduled_frames_; |
| 51 |
| 52 DISALLOW_COPY_AND_ASSIGN(TestVideoFrameScheduler); |
| 53 }; |
| 54 |
| 55 } // namespace media |
| 56 |
| 57 #endif // MEDIA_FILTERS_TEST_VIDEO_FRAME_SCHEDULER_H_ |
OLD | NEW |