Chromium Code Reviews| Index: media/test/mock_media_source.h |
| diff --git a/media/test/mock_media_source.h b/media/test/mock_media_source.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5c0bf44ef405a667f4e91fd49c0f44360504ab71 |
| --- /dev/null |
| +++ b/media/test/mock_media_source.h |
| @@ -0,0 +1,76 @@ |
| +// Copyright (c) 2017 The Chromium Authors. All rights reserved. |
|
DaleCurtis
2017/04/20 21:40:25
Ditto. Probably all new files in this cl need this
xjz
2017/04/20 22:07:45
Done. Thanks for catching this.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef MEDIA_TEST_MOCK_MEDIA_SOURCE_H_ |
| +#define MEDIA_TEST_MOCK_MEDIA_SOURCE_H_ |
| + |
| +#include "base/time/time.h" |
| +#include "media/base/demuxer.h" |
| +#include "media/base/pipeline_status.h" |
| +#include "media/filters/chunk_demuxer.h" |
| +#include "testing/gmock/include/gmock/gmock.h" |
| + |
| +namespace media { |
| + |
| +// Indicates that the whole file should be appended. |
| +extern const size_t kAppendWholeFile; |
| + |
| +// Helper class that emulates calls made on the ChunkDemuxer by the |
| +// Media Source API. |
| +class MockMediaSource { |
| + public: |
| + MockMediaSource(const std::string& filename, |
| + const std::string& mimetype, |
| + size_t initial_append_size); |
| + ~MockMediaSource(); |
| + |
| + std::unique_ptr<Demuxer> GetDemuxer(); |
| + void set_encrypted_media_init_data_cb( |
| + const Demuxer::EncryptedMediaInitDataCB& encrypted_media_init_data_cb); |
| + void set_demuxer_failure_cb(const PipelineStatusCB& demuxer_failure_cb); |
| + void Seek(base::TimeDelta seek_time, |
| + size_t new_position, |
| + size_t seek_append_size); |
| + void Seek(base::TimeDelta seek_time); |
| + void AppendData(size_t size); |
| + bool AppendAtTime(base::TimeDelta timestamp_offset, |
| + const uint8_t* pData, |
| + int size); |
| + void AppendAtTimeWithWindow(base::TimeDelta timestamp_offset, |
| + base::TimeDelta append_window_start, |
| + base::TimeDelta append_window_end, |
| + const uint8_t* pData, |
| + int size); |
| + void SetMemoryLimits(size_t limit_bytes); |
| + void EvictCodedFrames(base::TimeDelta currentMediaTime, size_t newDataSize); |
| + void RemoveRange(base::TimeDelta start, base::TimeDelta end); |
| + void EndOfStream(); |
| + void Shutdown(); |
| + void DemuxerOpened(); |
| + void DemuxerOpenedTask(); |
| + ChunkDemuxer::Status AddId(); |
| + void OnEncryptedMediaInitData(EmeInitDataType init_data_type, |
| + const std::vector<uint8_t>& init_data); |
| + base::TimeDelta last_timestamp_offset() const; |
| + void InitSegmentReceived(std::unique_ptr<MediaTracks> tracks); |
| + MOCK_METHOD1(InitSegmentReceivedMock, void(std::unique_ptr<MediaTracks>&)); |
| + |
| + private: |
| + MediaLog media_log_; |
| + scoped_refptr<DecoderBuffer> file_data_; |
| + size_t current_position_; |
| + size_t initial_append_size_; |
| + std::string mimetype_; |
| + ChunkDemuxer* chunk_demuxer_; |
| + std::unique_ptr<Demuxer> owned_chunk_demuxer_; |
| + PipelineStatusCB demuxer_failure_cb_; |
| + Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb_; |
| + base::TimeDelta last_timestamp_offset_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MockMediaSource); |
| +}; |
| + |
| +} // namespace media |
| + |
| +#endif // MEDIA_TEST_MOCK_MEDIA_SOURCE_H_ |