| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chromecast/media/cma/backend/alsa/stream_mixer_alsa.h" | 5 #include "chromecast/media/cma/backend/alsa/stream_mixer_alsa.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 pcm_ = nullptr; | 539 pcm_ = nullptr; |
| 540 } | 540 } |
| 541 | 541 |
| 542 void StreamMixerAlsa::SignalError() { | 542 void StreamMixerAlsa::SignalError() { |
| 543 state_ = kStateError; | 543 state_ = kStateError; |
| 544 for (InputQueue* input : inputs_) | 544 for (InputQueue* input : inputs_) |
| 545 input->SignalError(); | 545 input->SignalError(); |
| 546 } | 546 } |
| 547 | 547 |
| 548 void StreamMixerAlsa::SetAlsaWrapperForTest( | 548 void StreamMixerAlsa::SetAlsaWrapperForTest( |
| 549 scoped_ptr<AlsaWrapper> alsa_wrapper) { | 549 std::unique_ptr<AlsaWrapper> alsa_wrapper) { |
| 550 if (alsa_) { | 550 if (alsa_) { |
| 551 Stop(); | 551 Stop(); |
| 552 ClosePcm(); | 552 ClosePcm(); |
| 553 } | 553 } |
| 554 alsa_ = std::move(alsa_wrapper); | 554 alsa_ = std::move(alsa_wrapper); |
| 555 } | 555 } |
| 556 | 556 |
| 557 void StreamMixerAlsa::WriteFramesForTest() { | 557 void StreamMixerAlsa::WriteFramesForTest() { |
| 558 RUN_ON_MIXER_THREAD(&StreamMixerAlsa::WriteFramesForTest); | 558 RUN_ON_MIXER_THREAD(&StreamMixerAlsa::WriteFramesForTest); |
| 559 WriteFrames(); | 559 WriteFrames(); |
| 560 } | 560 } |
| 561 | 561 |
| 562 void StreamMixerAlsa::ClearInputsForTest() { | 562 void StreamMixerAlsa::ClearInputsForTest() { |
| 563 RUN_ON_MIXER_THREAD(&StreamMixerAlsa::ClearInputsForTest); | 563 RUN_ON_MIXER_THREAD(&StreamMixerAlsa::ClearInputsForTest); |
| 564 inputs_.clear(); | 564 inputs_.clear(); |
| 565 } | 565 } |
| 566 | 566 |
| 567 void StreamMixerAlsa::AddInput(scoped_ptr<InputQueue> input) { | 567 void StreamMixerAlsa::AddInput(std::unique_ptr<InputQueue> input) { |
| 568 RUN_ON_MIXER_THREAD(&StreamMixerAlsa::AddInput, | 568 RUN_ON_MIXER_THREAD(&StreamMixerAlsa::AddInput, |
| 569 base::Passed(std::move(input))); | 569 base::Passed(std::move(input))); |
| 570 if (!alsa_) | 570 if (!alsa_) |
| 571 alsa_.reset(new AlsaWrapper()); | 571 alsa_.reset(new AlsaWrapper()); |
| 572 | 572 |
| 573 DCHECK(input); | 573 DCHECK(input); |
| 574 // If the new input is a primary one, we may need to change the output | 574 // If the new input is a primary one, we may need to change the output |
| 575 // sample rate to match its input sample rate. | 575 // sample rate to match its input sample rate. |
| 576 // We only change the output rate if it is not set to a fixed value. | 576 // We only change the output rate if it is not set to a fixed value. |
| 577 if (input->primary() && | 577 if (input->primary() && |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 DCHECK(std::find(loopback_observers_.begin(), loopback_observers_.end(), | 822 DCHECK(std::find(loopback_observers_.begin(), loopback_observers_.end(), |
| 823 observer) != loopback_observers_.end()); | 823 observer) != loopback_observers_.end()); |
| 824 loopback_observers_.erase(std::remove(loopback_observers_.begin(), | 824 loopback_observers_.erase(std::remove(loopback_observers_.begin(), |
| 825 loopback_observers_.end(), observer), | 825 loopback_observers_.end(), observer), |
| 826 loopback_observers_.end()); | 826 loopback_observers_.end()); |
| 827 observer->OnRemoved(); | 827 observer->OnRemoved(); |
| 828 } | 828 } |
| 829 | 829 |
| 830 } // namespace media | 830 } // namespace media |
| 831 } // namespace chromecast | 831 } // namespace chromecast |
| OLD | NEW |