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 CHROMECAST_MEDIA_CMA_BASE_MOCK_FRAME_CONSUMER_H_ |
| 6 #define CHROMECAST_MEDIA_CMA_BASE_MOCK_FRAME_CONSUMER_H_ |
| 7 |
| 8 #include <vector> |
| 9 |
| 10 #include "base/callback.h" |
| 11 #include "base/macros.h" |
| 12 |
| 13 namespace media { |
| 14 class AudioDecoderConfig; |
| 15 class VideoDecoderConfig; |
| 16 } |
| 17 |
| 18 namespace chromecast { |
| 19 namespace media { |
| 20 class CodedFrameProvider; |
| 21 class DecoderBufferBase; |
| 22 class FrameGeneratorForTest; |
| 23 |
| 24 class MockFrameConsumer { |
| 25 public: |
| 26 explicit MockFrameConsumer(CodedFrameProvider* coded_frame_provider); |
| 27 ~MockFrameConsumer(); |
| 28 |
| 29 void Configure(const std::vector<bool>& delayed_task_pattern, |
| 30 bool last_read_aborted_by_flush, |
| 31 scoped_ptr<FrameGeneratorForTest> frame_generator); |
| 32 |
| 33 // Starts consuming frames. Invoke |done_cb| when all the expected frames |
| 34 // have been received. |
| 35 void Start(const base::Closure& done_cb); |
| 36 |
| 37 private: |
| 38 void ReadFrame(); |
| 39 void OnNewFrame(const scoped_refptr<DecoderBufferBase>& buffer, |
| 40 const ::media::AudioDecoderConfig& audio_config, |
| 41 const ::media::VideoDecoderConfig& video_config); |
| 42 |
| 43 void OnFlushCompleted(); |
| 44 |
| 45 CodedFrameProvider* const coded_frame_provider_; |
| 46 |
| 47 base::Closure done_cb_; |
| 48 |
| 49 // Parameterization of the frame consumer: |
| 50 // |delayed_task_pattern_| indicates the pattern for fetching frames, |
| 51 // i.e. after receiving a frame, either fetch a frame right away |
| 52 // or wait some time before fetching another frame. |
| 53 // |pattern_idx_| is the current index in the pattern. |
| 54 // |last_read_aborted_by_flush_| indicates whether the last buffer request |
| 55 // should be aborted by a Flush. |
| 56 std::vector<bool> delayed_task_pattern_; |
| 57 size_t pattern_idx_; |
| 58 bool last_read_aborted_by_flush_; |
| 59 |
| 60 // Expected results. |
| 61 scoped_ptr<FrameGeneratorForTest> frame_generator_; |
| 62 |
| 63 DISALLOW_COPY_AND_ASSIGN(MockFrameConsumer); |
| 64 }; |
| 65 |
| 66 } // namespace media |
| 67 } // namespace chromecast |
| 68 |
| 69 #endif // CHROMECAST_MEDIA_CMA_BASE_MOCK_FRAME_CONSUMER_H_ |
OLD | NEW |