| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #include <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 | 40 |
| 41 // Mock of MediaPlayerManager for testing purpose. | 41 // Mock of MediaPlayerManager for testing purpose. |
| 42 class MockMediaPlayerManager : public MediaPlayerManager { | 42 class MockMediaPlayerManager : public MediaPlayerManager { |
| 43 public: | 43 public: |
| 44 explicit MockMediaPlayerManager(base::MessageLoop* message_loop) | 44 explicit MockMediaPlayerManager(base::MessageLoop* message_loop) |
| 45 : message_loop_(message_loop), | 45 : message_loop_(message_loop), |
| 46 playback_completed_(false), | 46 playback_completed_(false), |
| 47 num_resources_requested_(0), | 47 num_resources_requested_(0), |
| 48 num_metadata_changes_(0), | 48 num_metadata_changes_(0), |
| 49 timestamp_updated_(false) {} | 49 timestamp_updated_(false) {} |
| 50 virtual ~MockMediaPlayerManager() {} | 50 ~MockMediaPlayerManager() override {} |
| 51 | 51 |
| 52 // MediaPlayerManager implementation. | 52 // MediaPlayerManager implementation. |
| 53 virtual MediaResourceGetter* GetMediaResourceGetter() override { | 53 MediaResourceGetter* GetMediaResourceGetter() override { return NULL; } |
| 54 return NULL; | 54 MediaUrlInterceptor* GetMediaUrlInterceptor() override { return NULL; } |
| 55 } | 55 void OnTimeUpdate(int player_id, |
| 56 virtual MediaUrlInterceptor* GetMediaUrlInterceptor() override { | 56 base::TimeDelta current_time, |
| 57 return NULL; | 57 base::TimeTicks current_time_ticks) override { |
| 58 } | |
| 59 virtual void OnTimeUpdate(int player_id, | |
| 60 base::TimeDelta current_time, | |
| 61 base::TimeTicks current_time_ticks) override { | |
| 62 timestamp_updated_ = true; | 58 timestamp_updated_ = true; |
| 63 } | 59 } |
| 64 virtual void OnMediaMetadataChanged( | 60 void OnMediaMetadataChanged(int player_id, |
| 65 int player_id, base::TimeDelta duration, int width, int height, | 61 base::TimeDelta duration, |
| 66 bool success) override { | 62 int width, |
| 63 int height, |
| 64 bool success) override { |
| 67 num_metadata_changes_++; | 65 num_metadata_changes_++; |
| 68 } | 66 } |
| 69 virtual void OnPlaybackComplete(int player_id) override { | 67 void OnPlaybackComplete(int player_id) override { |
| 70 playback_completed_ = true; | 68 playback_completed_ = true; |
| 71 if (message_loop_->is_running()) | 69 if (message_loop_->is_running()) |
| 72 message_loop_->Quit(); | 70 message_loop_->Quit(); |
| 73 } | 71 } |
| 74 virtual void OnMediaInterrupted(int player_id) override {} | 72 void OnMediaInterrupted(int player_id) override {} |
| 75 virtual void OnBufferingUpdate(int player_id, int percentage) override {} | 73 void OnBufferingUpdate(int player_id, int percentage) override {} |
| 76 virtual void OnSeekComplete(int player_id, | 74 void OnSeekComplete(int player_id, |
| 77 const base::TimeDelta& current_time) override {} | 75 const base::TimeDelta& current_time) override {} |
| 78 virtual void OnError(int player_id, int error) override {} | 76 void OnError(int player_id, int error) override {} |
| 79 virtual void OnVideoSizeChanged(int player_id, int width, | 77 void OnVideoSizeChanged(int player_id, int width, int height) override {} |
| 80 int height) override {} | 78 MediaPlayerAndroid* GetFullscreenPlayer() override { return NULL; } |
| 81 virtual MediaPlayerAndroid* GetFullscreenPlayer() override { return NULL; } | 79 MediaPlayerAndroid* GetPlayer(int player_id) override { return NULL; } |
| 82 virtual MediaPlayerAndroid* GetPlayer(int player_id) override { return NULL; } | 80 void RequestFullScreen(int player_id) override {} |
| 83 virtual void RequestFullScreen(int player_id) override {} | |
| 84 #if defined(VIDEO_HOLE) | 81 #if defined(VIDEO_HOLE) |
| 85 virtual bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() override { | 82 bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() override { |
| 86 return false; | 83 return false; |
| 87 } | 84 } |
| 88 #endif // defined(VIDEO_HOLE) | 85 #endif // defined(VIDEO_HOLE) |
| 89 | 86 |
| 90 bool playback_completed() const { | 87 bool playback_completed() const { |
| 91 return playback_completed_; | 88 return playback_completed_; |
| 92 } | 89 } |
| 93 | 90 |
| 94 int num_resources_requested() const { | 91 int num_resources_requested() const { |
| 95 return num_resources_requested_; | 92 return num_resources_requested_; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 124 DISALLOW_COPY_AND_ASSIGN(MockMediaPlayerManager); | 121 DISALLOW_COPY_AND_ASSIGN(MockMediaPlayerManager); |
| 125 }; | 122 }; |
| 126 | 123 |
| 127 class MockDemuxerAndroid : public DemuxerAndroid { | 124 class MockDemuxerAndroid : public DemuxerAndroid { |
| 128 public: | 125 public: |
| 129 explicit MockDemuxerAndroid(base::MessageLoop* message_loop) | 126 explicit MockDemuxerAndroid(base::MessageLoop* message_loop) |
| 130 : message_loop_(message_loop), | 127 : message_loop_(message_loop), |
| 131 num_data_requests_(0), | 128 num_data_requests_(0), |
| 132 num_seek_requests_(0), | 129 num_seek_requests_(0), |
| 133 num_browser_seek_requests_(0) {} | 130 num_browser_seek_requests_(0) {} |
| 134 virtual ~MockDemuxerAndroid() {} | 131 ~MockDemuxerAndroid() override {} |
| 135 | 132 |
| 136 virtual void Initialize(DemuxerAndroidClient* client) override {} | 133 void Initialize(DemuxerAndroidClient* client) override {} |
| 137 virtual void RequestDemuxerData(DemuxerStream::Type type) override { | 134 void RequestDemuxerData(DemuxerStream::Type type) override { |
| 138 num_data_requests_++; | 135 num_data_requests_++; |
| 139 if (message_loop_->is_running()) | 136 if (message_loop_->is_running()) |
| 140 message_loop_->Quit(); | 137 message_loop_->Quit(); |
| 141 } | 138 } |
| 142 virtual void RequestDemuxerSeek(const base::TimeDelta& time_to_seek, | 139 void RequestDemuxerSeek(const base::TimeDelta& time_to_seek, |
| 143 bool is_browser_seek) override { | 140 bool is_browser_seek) override { |
| 144 num_seek_requests_++; | 141 num_seek_requests_++; |
| 145 if (is_browser_seek) | 142 if (is_browser_seek) |
| 146 num_browser_seek_requests_++; | 143 num_browser_seek_requests_++; |
| 147 } | 144 } |
| 148 | 145 |
| 149 int num_data_requests() const { return num_data_requests_; } | 146 int num_data_requests() const { return num_data_requests_; } |
| 150 int num_seek_requests() const { return num_seek_requests_; } | 147 int num_seek_requests() const { return num_seek_requests_; } |
| 151 int num_browser_seek_requests() const { return num_browser_seek_requests_; } | 148 int num_browser_seek_requests() const { return num_browser_seek_requests_; } |
| 152 | 149 |
| 153 private: | 150 private: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 170 MediaSourcePlayerTest() | 167 MediaSourcePlayerTest() |
| 171 : manager_(&message_loop_), | 168 : manager_(&message_loop_), |
| 172 demuxer_(new MockDemuxerAndroid(&message_loop_)), | 169 demuxer_(new MockDemuxerAndroid(&message_loop_)), |
| 173 player_(0, &manager_, | 170 player_(0, &manager_, |
| 174 base::Bind(&MockMediaPlayerManager::OnMediaResourcesRequested, | 171 base::Bind(&MockMediaPlayerManager::OnMediaResourcesRequested, |
| 175 base::Unretained(&manager_)), | 172 base::Unretained(&manager_)), |
| 176 scoped_ptr<DemuxerAndroid>(demuxer_), | 173 scoped_ptr<DemuxerAndroid>(demuxer_), |
| 177 GURL()), | 174 GURL()), |
| 178 decoder_callback_hook_executed_(false), | 175 decoder_callback_hook_executed_(false), |
| 179 surface_texture_a_is_next_(true) {} | 176 surface_texture_a_is_next_(true) {} |
| 180 virtual ~MediaSourcePlayerTest() {} | 177 ~MediaSourcePlayerTest() override {} |
| 181 | 178 |
| 182 protected: | 179 protected: |
| 183 // Get the decoder job from the MediaSourcePlayer. The return value must not | 180 // Get the decoder job from the MediaSourcePlayer. The return value must not |
| 184 // be NULL. | 181 // be NULL. |
| 185 MediaDecoderJob* GetMediaDecoderJob(bool is_audio) { | 182 MediaDecoderJob* GetMediaDecoderJob(bool is_audio) { |
| 186 if (is_audio) { | 183 if (is_audio) { |
| 187 return reinterpret_cast<MediaDecoderJob*>( | 184 return reinterpret_cast<MediaDecoderJob*>( |
| 188 player_.audio_decoder_job_.get()); | 185 player_.audio_decoder_job_.get()); |
| 189 } | 186 } |
| 190 return reinterpret_cast<MediaDecoderJob*>( | 187 return reinterpret_cast<MediaDecoderJob*>( |
| (...skipping 2165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2356 // Wait for the metadata change. | 2353 // Wait for the metadata change. |
| 2357 while(manager_.num_metadata_changes() == 1) { | 2354 while(manager_.num_metadata_changes() == 1) { |
| 2358 player_.OnDemuxerDataAvailable(data); | 2355 player_.OnDemuxerDataAvailable(data); |
| 2359 WaitForVideoDecodeDone(); | 2356 WaitForVideoDecodeDone(); |
| 2360 } | 2357 } |
| 2361 EXPECT_EQ(2, manager_.num_metadata_changes()); | 2358 EXPECT_EQ(2, manager_.num_metadata_changes()); |
| 2362 WaitForVideoDecodeDone(); | 2359 WaitForVideoDecodeDone(); |
| 2363 } | 2360 } |
| 2364 | 2361 |
| 2365 } // namespace media | 2362 } // namespace media |
| OLD | NEW |