OLD | NEW |
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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/callback_helpers.h" | 6 #include "base/callback_helpers.h" |
7 #include "base/format_macros.h" | 7 #include "base/format_macros.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "media/base/audio_buffer_converter.h" | 10 #include "media/base/audio_buffer_converter.h" |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 // Fill entire buffer to complete prerolling. | 205 // Fill entire buffer to complete prerolling. |
206 renderer_->SetMediaTime(start_timestamp); | 206 renderer_->SetMediaTime(start_timestamp); |
207 renderer_->StartPlaying(); | 207 renderer_->StartPlaying(); |
208 WaitForPendingRead(); | 208 WaitForPendingRead(); |
209 EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); | 209 EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
210 DeliverRemainingAudio(); | 210 DeliverRemainingAudio(); |
211 } | 211 } |
212 | 212 |
213 void StartTicking() { | 213 void StartTicking() { |
214 renderer_->StartTicking(); | 214 renderer_->StartTicking(); |
215 renderer_->SetPlaybackRate(1.0f); | 215 renderer_->SetPlaybackRate(1.0); |
216 } | 216 } |
217 | 217 |
218 void StopTicking() { renderer_->StopTicking(); } | 218 void StopTicking() { renderer_->StopTicking(); } |
219 | 219 |
220 bool IsReadPending() const { | 220 bool IsReadPending() const { |
221 return !decode_cb_.is_null(); | 221 return !decode_cb_.is_null(); |
222 } | 222 } |
223 | 223 |
224 void WaitForPendingRead() { | 224 void WaitForPendingRead() { |
225 SCOPED_TRACE("WaitForPendingRead()"); | 225 SCOPED_TRACE("WaitForPendingRead()"); |
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
714 } | 714 } |
715 | 715 |
716 // Test for AudioRendererImpl calling Pause()/Play() on the sink when the | 716 // Test for AudioRendererImpl calling Pause()/Play() on the sink when the |
717 // playback rate is set to zero and non-zero. | 717 // playback rate is set to zero and non-zero. |
718 TEST_F(AudioRendererImplTest, SetPlaybackRate) { | 718 TEST_F(AudioRendererImplTest, SetPlaybackRate) { |
719 Initialize(); | 719 Initialize(); |
720 Preroll(); | 720 Preroll(); |
721 | 721 |
722 // Rendering hasn't started. Sink should always be paused. | 722 // Rendering hasn't started. Sink should always be paused. |
723 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); | 723 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); |
724 renderer_->SetPlaybackRate(0.0f); | 724 renderer_->SetPlaybackRate(0.0); |
725 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); | 725 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); |
726 renderer_->SetPlaybackRate(1.0f); | 726 renderer_->SetPlaybackRate(1.0); |
727 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); | 727 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); |
728 | 728 |
729 // Rendering has started with non-zero rate. Rate changes will affect sink | 729 // Rendering has started with non-zero rate. Rate changes will affect sink |
730 // state. | 730 // state. |
731 renderer_->StartTicking(); | 731 renderer_->StartTicking(); |
732 EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state()); | 732 EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state()); |
733 renderer_->SetPlaybackRate(0.0f); | 733 renderer_->SetPlaybackRate(0.0); |
734 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); | 734 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); |
735 renderer_->SetPlaybackRate(1.0f); | 735 renderer_->SetPlaybackRate(1.0); |
736 EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state()); | 736 EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state()); |
737 | 737 |
738 // Rendering has stopped. Sink should be paused. | 738 // Rendering has stopped. Sink should be paused. |
739 renderer_->StopTicking(); | 739 renderer_->StopTicking(); |
740 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); | 740 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); |
741 | 741 |
742 // Start rendering with zero playback rate. Sink should be paused until | 742 // Start rendering with zero playback rate. Sink should be paused until |
743 // non-zero rate is set. | 743 // non-zero rate is set. |
744 renderer_->SetPlaybackRate(0.0f); | 744 renderer_->SetPlaybackRate(0.0); |
745 renderer_->StartTicking(); | 745 renderer_->StartTicking(); |
746 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); | 746 EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state()); |
747 renderer_->SetPlaybackRate(1.0f); | 747 renderer_->SetPlaybackRate(1.0); |
748 EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state()); | 748 EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state()); |
749 } | 749 } |
750 | 750 |
751 } // namespace media | 751 } // namespace media |
OLD | NEW |