OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "content/browser/media/capture/web_contents_audio_input_stream.h" | 5 #include "content/browser/media/capture/web_contents_audio_input_stream.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <list> | 9 #include <list> |
| 10 #include <memory> |
| 11 #include <utility> |
10 | 12 |
11 #include "base/bind.h" | 13 #include "base/bind.h" |
12 #include "base/bind_helpers.h" | 14 #include "base/bind_helpers.h" |
13 #include "base/location.h" | 15 #include "base/location.h" |
14 #include "base/macros.h" | 16 #include "base/macros.h" |
15 #include "base/single_thread_task_runner.h" | 17 #include "base/single_thread_task_runner.h" |
16 #include "base/synchronization/waitable_event.h" | 18 #include "base/synchronization/waitable_event.h" |
17 #include "base/threading/thread.h" | 19 #include "base/threading/thread.h" |
| 20 #include "base/time/time.h" |
18 #include "content/browser/media/capture/audio_mirroring_manager.h" | 21 #include "content/browser/media/capture/audio_mirroring_manager.h" |
19 #include "content/browser/media/capture/web_contents_tracker.h" | 22 #include "content/browser/media/capture/web_contents_tracker.h" |
20 #include "content/public/browser/browser_thread.h" | 23 #include "content/public/browser/browser_thread.h" |
21 #include "content/public/test/test_browser_thread_bundle.h" | 24 #include "content/public/test/test_browser_thread_bundle.h" |
22 #include "media/audio/simple_sources.h" | 25 #include "media/audio/simple_sources.h" |
23 #include "media/audio/virtual_audio_input_stream.h" | 26 #include "media/audio/virtual_audio_input_stream.h" |
24 #include "testing/gmock/include/gmock/gmock.h" | 27 #include "testing/gmock/include/gmock/gmock.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 28 #include "testing/gtest/include/gtest/gtest.h" |
26 | 29 |
27 using ::testing::_; | 30 using ::testing::_; |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 sources_.push_back(source); | 304 sources_.push_back(source); |
302 if (is_duplication()) { | 305 if (is_duplication()) { |
303 media::AudioPushSink* out = destination_->AddPushInput(params); | 306 media::AudioPushSink* out = destination_->AddPushInput(params); |
304 ASSERT_TRUE(out); | 307 ASSERT_TRUE(out); |
305 sinks_.push_back(out); | 308 sinks_.push_back(out); |
306 std::unique_ptr<media::AudioBus> audio_data = AudioBus::Create(params); | 309 std::unique_ptr<media::AudioBus> audio_data = AudioBus::Create(params); |
307 base::TimeTicks now = base::TimeTicks::Now(); | 310 base::TimeTicks now = base::TimeTicks::Now(); |
308 // 20 Audio buses are enough for all test cases. | 311 // 20 Audio buses are enough for all test cases. |
309 const int kAudioBusesNumber = 20; | 312 const int kAudioBusesNumber = 20; |
310 for (int i = 0; i < kAudioBusesNumber; i++) { | 313 for (int i = 0; i < kAudioBusesNumber; i++) { |
311 int frames = source->OnMoreData(audio_data.get(), 0, 0); | 314 int frames = source->OnMoreData( |
| 315 base::TimeDelta(), base::TimeTicks::Now(), 0, audio_data.get()); |
312 std::unique_ptr<media::AudioBus> copy = AudioBus::Create(params); | 316 std::unique_ptr<media::AudioBus> copy = AudioBus::Create(params); |
313 audio_data->CopyTo(copy.get()); | 317 audio_data->CopyTo(copy.get()); |
314 out->OnData(std::move(copy), now); | 318 out->OnData(std::move(copy), now); |
315 now += base::TimeDelta::FromMillisecondsD( | 319 now += base::TimeDelta::FromMillisecondsD( |
316 frames * params.GetMicrosecondsPerFrame()); | 320 frames * params.GetMicrosecondsPerFrame()); |
317 } | 321 } |
318 } else { | 322 } else { |
319 AudioOutputStream* const out = destination_->AddInput(params); | 323 AudioOutputStream* const out = destination_->AddInput(params); |
320 ASSERT_TRUE(out); | 324 ASSERT_TRUE(out); |
321 streams_.push_back(out); | 325 streams_.push_back(out); |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 WaitForData(); | 540 WaitForData(); |
537 RUN_ON_AUDIO_THREAD(ChangeMirroringTarget); | 541 RUN_ON_AUDIO_THREAD(ChangeMirroringTarget); |
538 RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); | 542 RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); |
539 RUN_ON_AUDIO_THREAD(Stop); | 543 RUN_ON_AUDIO_THREAD(Stop); |
540 RUN_ON_AUDIO_THREAD(Close); | 544 RUN_ON_AUDIO_THREAD(Close); |
541 } | 545 } |
542 | 546 |
543 INSTANTIATE_TEST_CASE_P(, WebContentsAudioInputStreamTest, ::testing::Bool()); | 547 INSTANTIATE_TEST_CASE_P(, WebContentsAudioInputStreamTest, ::testing::Bool()); |
544 | 548 |
545 } // namespace content | 549 } // namespace content |
OLD | NEW |