| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_BASE_FAKE_DEMUXER_STREAM_H_ | 5 #ifndef MEDIA_BASE_FAKE_DEMUXER_STREAM_H_ |
| 6 #define MEDIA_BASE_FAKE_DEMUXER_STREAM_H_ | 6 #define MEDIA_BASE_FAKE_DEMUXER_STREAM_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
| 10 #include "media/base/audio_decoder_config.h" | 10 #include "media/base/audio_decoder_config.h" |
| 11 #include "media/base/demuxer_stream.h" | 11 #include "media/base/demuxer_stream.h" |
| 12 #include "media/base/demuxer_stream_provider.h" | 12 #include "media/base/media_resource.h" |
| 13 #include "media/base/video_decoder_config.h" | 13 #include "media/base/video_decoder_config.h" |
| 14 | 14 |
| 15 namespace base { | 15 namespace base { |
| 16 class SingleThreadTaskRunner; | 16 class SingleThreadTaskRunner; |
| 17 } // namespace base | 17 } // namespace base |
| 18 | 18 |
| 19 namespace media { | 19 namespace media { |
| 20 | 20 |
| 21 class FakeDemuxerStream : public DemuxerStream { | 21 class FakeDemuxerStream : public DemuxerStream { |
| 22 public: | 22 public: |
| 23 // Constructs an object that outputs |num_configs| different configs in | 23 // Constructs an object that outputs |num_configs| different configs in |
| 24 // sequence with |num_frames_in_one_config| buffers for each config. The | 24 // sequence with |num_frames_in_one_config| buffers for each config. The |
| 25 // output buffers are encrypted if |is_encrypted| is true. | 25 // output buffers are encrypted if |is_encrypted| is true. |
| 26 FakeDemuxerStream(int num_configs, | 26 FakeDemuxerStream(int num_configs, |
| 27 int num_buffers_in_one_config, | 27 int num_buffers_in_one_config, |
| 28 bool is_encrypted); | 28 bool is_encrypted); |
| 29 ~FakeDemuxerStream() override; | 29 ~FakeDemuxerStream() override; |
| 30 | 30 |
| 31 // DemuxerStream implementation. | 31 // DemuxerStream implementation. |
| 32 void Read(const ReadCB& read_cb) override; | 32 void Read(const ReadCB& read_cb) override; |
| 33 AudioDecoderConfig audio_decoder_config() override; | 33 AudioDecoderConfig audio_decoder_config() override; |
| 34 VideoDecoderConfig video_decoder_config() override; | 34 VideoDecoderConfig video_decoder_config() override; |
| 35 Type type() const override; | 35 Type type() const override; |
| 36 bool SupportsConfigChanges() override; | 36 bool SupportsConfigChanges() override; |
| 37 VideoRotation video_rotation() override; | 37 VideoRotation video_rotation() override; |
| 38 bool enabled() const override; | 38 bool enabled() const override; |
| 39 void set_enabled(bool enabled, base::TimeDelta timestamp) override; | 39 void set_enabled(bool enabled, base::TimeDelta timestamp) override; |
| 40 void SetStreamStatusChangeCB(const StreamStatusChangeCB& cb) override; | |
| 41 | 40 |
| 42 void Initialize(); | 41 void Initialize(); |
| 43 | 42 |
| 44 int num_buffers_returned() const { return num_buffers_returned_; } | 43 int num_buffers_returned() const { return num_buffers_returned_; } |
| 45 | 44 |
| 46 // Upon the next read, holds the read callback until SatisfyRead() or Reset() | 45 // Upon the next read, holds the read callback until SatisfyRead() or Reset() |
| 47 // is called. | 46 // is called. |
| 48 void HoldNextRead(); | 47 void HoldNextRead(); |
| 49 | 48 |
| 50 // Upon the next config change read, holds the read callback until | 49 // Upon the next config change read, holds the read callback until |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 ReadCB read_cb_; | 95 ReadCB read_cb_; |
| 97 | 96 |
| 98 int next_read_num_; | 97 int next_read_num_; |
| 99 // Zero-based number indicating which read operation should be held. -1 means | 98 // Zero-based number indicating which read operation should be held. -1 means |
| 100 // no read shall be held. | 99 // no read shall be held. |
| 101 int read_to_hold_; | 100 int read_to_hold_; |
| 102 | 101 |
| 103 DISALLOW_COPY_AND_ASSIGN(FakeDemuxerStream); | 102 DISALLOW_COPY_AND_ASSIGN(FakeDemuxerStream); |
| 104 }; | 103 }; |
| 105 | 104 |
| 106 class FakeDemuxerStreamProvider : public DemuxerStreamProvider { | 105 class FakeMediaResource : public MediaResource { |
| 107 public: | 106 public: |
| 108 // Note: FakeDemuxerStream currently only supports a fake video DemuxerStream. | 107 // Note: FakeDemuxerStream currently only supports a fake video DemuxerStream. |
| 109 FakeDemuxerStreamProvider(int num_video_configs, | 108 FakeMediaResource(int num_video_configs, |
| 110 int num_video_buffers_in_one_config, | 109 int num_video_buffers_in_one_config, |
| 111 bool is_video_encrypted); | 110 bool is_video_encrypted); |
| 112 ~FakeDemuxerStreamProvider() override; | 111 ~FakeMediaResource() override; |
| 113 | 112 |
| 114 // DemuxerStreamProvider implementation. | 113 // MediaResource implementation. |
| 115 DemuxerStream* GetStream(DemuxerStream::Type type) override; | 114 std::vector<DemuxerStream*> GetStreams() override; |
| 115 void SetStreamStatusChangeCB(const StreamStatusChangeCB& cb) override; |
| 116 | 116 |
| 117 private: | 117 private: |
| 118 FakeDemuxerStream fake_video_stream_; | 118 FakeDemuxerStream fake_video_stream_; |
| 119 | 119 |
| 120 DISALLOW_COPY_AND_ASSIGN(FakeDemuxerStreamProvider); | 120 DISALLOW_COPY_AND_ASSIGN(FakeMediaResource); |
| 121 }; | 121 }; |
| 122 | 122 |
| 123 } // namespace media | 123 } // namespace media |
| 124 | 124 |
| 125 #endif // MEDIA_BASE_FAKE_DEMUXER_STREAM_H_ | 125 #endif // MEDIA_BASE_FAKE_DEMUXER_STREAM_H_ |
| OLD | NEW |