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

Side by Side Diff: media/base/pipeline_impl_unittest.cc

Issue 1769743002: Fix media memory usage reporting after a pipeline suspend. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « media/base/pipeline_impl.cc ('k') | media/blink/webmediaplayer_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "media/base/pipeline_impl.h" 5 #include "media/base/pipeline_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 scoped_ptr<StrictMock<MockDemuxerStream>> CreateStream( 168 scoped_ptr<StrictMock<MockDemuxerStream>> CreateStream(
169 DemuxerStream::Type type) { 169 DemuxerStream::Type type) {
170 scoped_ptr<StrictMock<MockDemuxerStream>> stream( 170 scoped_ptr<StrictMock<MockDemuxerStream>> stream(
171 new StrictMock<MockDemuxerStream>(type)); 171 new StrictMock<MockDemuxerStream>(type));
172 return stream; 172 return stream;
173 } 173 }
174 174
175 // Sets up expectations to allow the video renderer to initialize. 175 // Sets up expectations to allow the video renderer to initialize.
176 void SetRendererExpectations() { 176 void SetRendererExpectations() {
177 EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _)) 177 EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _))
178 .WillOnce(DoAll(SaveArg<3>(&buffering_state_cb_), 178 .WillOnce(DoAll(SaveArg<2>(&statistics_cb_),
179 SaveArg<3>(&buffering_state_cb_),
179 SaveArg<4>(&ended_cb_), PostCallback<1>(PIPELINE_OK))); 180 SaveArg<4>(&ended_cb_), PostCallback<1>(PIPELINE_OK)));
180 EXPECT_CALL(*renderer_, HasAudio()).WillRepeatedly(Return(audio_stream())); 181 EXPECT_CALL(*renderer_, HasAudio()).WillRepeatedly(Return(audio_stream()));
181 EXPECT_CALL(*renderer_, HasVideo()).WillRepeatedly(Return(video_stream())); 182 EXPECT_CALL(*renderer_, HasVideo()).WillRepeatedly(Return(video_stream()));
182 } 183 }
183 184
184 void AddTextStream() { 185 void AddTextStream() {
185 EXPECT_CALL(*this, OnAddTextTrack(_, _)) 186 EXPECT_CALL(*this, OnAddTextTrack(_, _))
186 .WillOnce(Invoke(this, &PipelineImplTest::DoOnAddTextTrack)); 187 .WillOnce(Invoke(this, &PipelineImplTest::DoOnAddTextTrack));
187 static_cast<DemuxerHost*>(pipeline_.get()) 188 static_cast<DemuxerHost*>(pipeline_.get())
188 ->AddTextStream(text_stream(), 189 ->AddTextStream(text_stream(),
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 scoped_ptr<StrictMock<MockDemuxer>> demuxer_; 352 scoped_ptr<StrictMock<MockDemuxer>> demuxer_;
352 scoped_ptr<StrictMock<MockRenderer>> scoped_renderer_; 353 scoped_ptr<StrictMock<MockRenderer>> scoped_renderer_;
353 StrictMock<MockRenderer>* renderer_; 354 StrictMock<MockRenderer>* renderer_;
354 StrictMock<CallbackHelper> text_renderer_callbacks_; 355 StrictMock<CallbackHelper> text_renderer_callbacks_;
355 TextRenderer* text_renderer_; 356 TextRenderer* text_renderer_;
356 scoped_ptr<StrictMock<MockDemuxerStream>> audio_stream_; 357 scoped_ptr<StrictMock<MockDemuxerStream>> audio_stream_;
357 scoped_ptr<StrictMock<MockDemuxerStream>> video_stream_; 358 scoped_ptr<StrictMock<MockDemuxerStream>> video_stream_;
358 scoped_ptr<FakeTextTrackStream> text_stream_; 359 scoped_ptr<FakeTextTrackStream> text_stream_;
359 BufferingStateCB buffering_state_cb_; 360 BufferingStateCB buffering_state_cb_;
360 base::Closure ended_cb_; 361 base::Closure ended_cb_;
362 StatisticsCB statistics_cb_;
361 VideoDecoderConfig video_decoder_config_; 363 VideoDecoderConfig video_decoder_config_;
362 PipelineMetadata metadata_; 364 PipelineMetadata metadata_;
363 base::TimeDelta start_time_; 365 base::TimeDelta start_time_;
364 366
365 private: 367 private:
366 DISALLOW_COPY_AND_ASSIGN(PipelineImplTest); 368 DISALLOW_COPY_AND_ASSIGN(PipelineImplTest);
367 }; 369 };
368 370
369 // Test that playback controls methods no-op when the pipeline hasn't been 371 // Test that playback controls methods no-op when the pipeline hasn't been
370 // started. 372 // started.
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 CreateTextStream(); 594 CreateTextStream();
593 MockDemuxerStreamVector streams; 595 MockDemuxerStreamVector streams;
594 streams.push_back(audio_stream()); 596 streams.push_back(audio_stream());
595 streams.push_back(video_stream()); 597 streams.push_back(video_stream());
596 598
597 SetDemuxerExpectations(&streams, base::TimeDelta::FromSeconds(3000)); 599 SetDemuxerExpectations(&streams, base::TimeDelta::FromSeconds(3000));
598 SetRendererExpectations(); 600 SetRendererExpectations();
599 601
600 StartPipelineAndExpect(PIPELINE_OK); 602 StartPipelineAndExpect(PIPELINE_OK);
601 603
604 // Inject some fake memory usage to verify its cleared after suspend.
605 PipelineStatistics stats;
606 stats.audio_memory_usage = 12345;
607 stats.video_memory_usage = 67890;
608 statistics_cb_.Run(stats);
609 EXPECT_EQ(stats.audio_memory_usage,
610 pipeline_->GetStatistics().audio_memory_usage);
611 EXPECT_EQ(stats.video_memory_usage,
612 pipeline_->GetStatistics().video_memory_usage);
613
602 ExpectSuspend(); 614 ExpectSuspend();
603 DoSuspend(); 615 DoSuspend();
604 616
617 EXPECT_EQ(pipeline_->GetStatistics().audio_memory_usage, 0);
618 EXPECT_EQ(pipeline_->GetStatistics().video_memory_usage, 0);
619
605 base::TimeDelta expected = base::TimeDelta::FromSeconds(2000); 620 base::TimeDelta expected = base::TimeDelta::FromSeconds(2000);
606 ExpectResume(expected); 621 ExpectResume(expected);
607 DoResume(expected); 622 DoResume(expected);
608 } 623 }
609 624
610 TEST_F(PipelineImplTest, SetVolume) { 625 TEST_F(PipelineImplTest, SetVolume) {
611 CreateAudioStream(); 626 CreateAudioStream();
612 MockDemuxerStreamVector streams; 627 MockDemuxerStreamVector streams;
613 streams.push_back(audio_stream()); 628 streams.push_back(audio_stream());
614 629
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); 1151 INSTANTIATE_TEARDOWN_TEST(Error, Seeking);
1137 INSTANTIATE_TEARDOWN_TEST(Error, Playing); 1152 INSTANTIATE_TEARDOWN_TEST(Error, Playing);
1138 INSTANTIATE_TEARDOWN_TEST(Error, Suspending); 1153 INSTANTIATE_TEARDOWN_TEST(Error, Suspending);
1139 INSTANTIATE_TEARDOWN_TEST(Error, Suspended); 1154 INSTANTIATE_TEARDOWN_TEST(Error, Suspended);
1140 INSTANTIATE_TEARDOWN_TEST(Error, Resuming); 1155 INSTANTIATE_TEARDOWN_TEST(Error, Resuming);
1141 1156
1142 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); 1157 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing);
1143 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Suspended); 1158 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Suspended);
1144 1159
1145 } // namespace media 1160 } // namespace media
OLDNEW
« no previous file with comments | « media/base/pipeline_impl.cc ('k') | media/blink/webmediaplayer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698