| 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 |