Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Unified Diff: media/test/mock_media_source.h

Issue 2808583002: RELAND: Media Remoting end to end integration tests. (Closed)
Patch Set: Rebased. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/test/fake_encrypted_media.cc ('k') | media/test/mock_media_source.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..286f6fd7182a38c57eca4f126c6216587a631db0
--- /dev/null
+++ b/media/test/mock_media_source.h
@@ -0,0 +1,87 @@
+// Copyright 2017 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_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) {
+ encrypted_media_init_data_cb_ = encrypted_media_init_data_cb;
+ }
+
+ void set_demuxer_failure_cb(const PipelineStatusCB& demuxer_failure_cb) {
+ demuxer_failure_cb_ = 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);
+ bool 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 {
+ return last_timestamp_offset_;
+ }
+
+ 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_
« no previous file with comments | « media/test/fake_encrypted_media.cc ('k') | media/test/mock_media_source.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698