| 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 "content/renderer/media/webrtc_local_audio_track.h" | 5 #include "content/renderer/media/webrtc_local_audio_track.h" |
| 6 | 6 |
| 7 #include <stdint.h> |
| 8 |
| 7 #include <limits> | 9 #include <limits> |
| 8 | 10 |
| 9 #include "content/public/renderer/media_stream_audio_sink.h" | 11 #include "content/public/renderer/media_stream_audio_sink.h" |
| 10 #include "content/renderer/media/media_stream_audio_level_calculator.h" | 12 #include "content/renderer/media/media_stream_audio_level_calculator.h" |
| 11 #include "content/renderer/media/media_stream_audio_processor.h" | 13 #include "content/renderer/media/media_stream_audio_processor.h" |
| 12 #include "content/renderer/media/media_stream_audio_sink_owner.h" | 14 #include "content/renderer/media/media_stream_audio_sink_owner.h" |
| 13 #include "content/renderer/media/media_stream_audio_track_sink.h" | 15 #include "content/renderer/media/media_stream_audio_track_sink.h" |
| 14 #include "content/renderer/media/webaudio_capturer_source.h" | 16 #include "content/renderer/media/webaudio_capturer_source.h" |
| 15 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" | 17 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" |
| 16 #include "content/renderer/media/webrtc_audio_capturer.h" | 18 #include "content/renderer/media/webrtc_audio_capturer.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 base::TimeTicks estimated_capture_time, | 55 base::TimeTicks estimated_capture_time, |
| 54 bool force_report_nonzero_energy) { | 56 bool force_report_nonzero_energy) { |
| 55 DCHECK(capture_thread_checker_.CalledOnValidThread()); | 57 DCHECK(capture_thread_checker_.CalledOnValidThread()); |
| 56 DCHECK(!estimated_capture_time.is_null()); | 58 DCHECK(!estimated_capture_time.is_null()); |
| 57 | 59 |
| 58 // Calculate the signal level regardless of whether the track is disabled or | 60 // Calculate the signal level regardless of whether the track is disabled or |
| 59 // enabled. If |force_report_nonzero_energy| is true, |audio_bus| contains | 61 // enabled. If |force_report_nonzero_energy| is true, |audio_bus| contains |
| 60 // post-processed data that may be all zeros even though the signal contained | 62 // post-processed data that may be all zeros even though the signal contained |
| 61 // energy before the processing. In this case, report nonzero energy even if | 63 // energy before the processing. In this case, report nonzero energy even if |
| 62 // the energy of the data in |audio_bus| is zero. | 64 // the energy of the data in |audio_bus| is zero. |
| 63 const float minimum_signal_level = force_report_nonzero_energy ? | 65 const float minimum_signal_level = |
| 64 1.0f / std::numeric_limits<int16>::max() : 0.0f; | 66 force_report_nonzero_energy ? 1.0f / std::numeric_limits<int16_t>::max() |
| 67 : 0.0f; |
| 65 const float signal_level = std::max( | 68 const float signal_level = std::max( |
| 66 minimum_signal_level, | 69 minimum_signal_level, |
| 67 std::min(1.0f, level_calculator_->Calculate(audio_bus))); | 70 std::min(1.0f, level_calculator_->Calculate(audio_bus))); |
| 68 const int signal_level_as_pcm16 = | 71 const int signal_level_as_pcm16 = |
| 69 static_cast<int>(signal_level * std::numeric_limits<int16>::max() + | 72 static_cast<int>(signal_level * std::numeric_limits<int16_t>::max() + |
| 70 0.5f /* rounding to nearest int */); | 73 0.5f /* rounding to nearest int */); |
| 71 adapter_->SetSignalLevel(signal_level_as_pcm16); | 74 adapter_->SetSignalLevel(signal_level_as_pcm16); |
| 72 | 75 |
| 73 scoped_refptr<WebRtcAudioCapturer> capturer; | 76 scoped_refptr<WebRtcAudioCapturer> capturer; |
| 74 SinkList::ItemList sinks; | 77 SinkList::ItemList sinks; |
| 75 SinkList::ItemList sinks_to_notify_format; | 78 SinkList::ItemList sinks_to_notify_format; |
| 76 { | 79 { |
| 77 base::AutoLock auto_lock(lock_); | 80 base::AutoLock auto_lock(lock_); |
| 78 capturer = capturer_; | 81 capturer = capturer_; |
| 79 sinks = sinks_.Items(); | 82 sinks = sinks_.Items(); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 (*it)->Reset(); | 232 (*it)->Reset(); |
| 230 } | 233 } |
| 231 } | 234 } |
| 232 | 235 |
| 233 webrtc::AudioTrackInterface* WebRtcLocalAudioTrack::GetAudioAdapter() { | 236 webrtc::AudioTrackInterface* WebRtcLocalAudioTrack::GetAudioAdapter() { |
| 234 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 237 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
| 235 return adapter_.get(); | 238 return adapter_.get(); |
| 236 } | 239 } |
| 237 | 240 |
| 238 } // namespace content | 241 } // namespace content |
| OLD | NEW |