Index: content/renderer/media/webrtc/processed_local_audio_source.h |
diff --git a/content/renderer/media/webrtc/processed_local_audio_source.h b/content/renderer/media/webrtc/processed_local_audio_source.h |
deleted file mode 100644 |
index 3ed82609c777a00326604a2a4cf6d7029c2e03f1..0000000000000000000000000000000000000000 |
--- a/content/renderer/media/webrtc/processed_local_audio_source.h |
+++ /dev/null |
@@ -1,148 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_PROCESSED_LOCAL_AUDIO_SOURCE_H_ |
-#define CONTENT_RENDERER_MEDIA_WEBRTC_PROCESSED_LOCAL_AUDIO_SOURCE_H_ |
- |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/synchronization/lock.h" |
-#include "content/common/media/media_stream_options.h" |
-#include "content/renderer/media/media_stream_audio_level_calculator.h" |
-#include "content/renderer/media/media_stream_audio_processor.h" |
-#include "content/renderer/media/media_stream_audio_source.h" |
-#include "media/base/audio_capturer_source.h" |
-#include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
- |
-namespace media { |
-class AudioBus; |
-} |
- |
-namespace webrtc { |
-class AudioSourceInterface; |
-} |
- |
-namespace content { |
- |
-class PeerConnectionDependencyFactory; |
- |
-// Represents a local source of audio data that is routed through the WebRTC |
-// audio pipeline for post-processing (e.g., for echo cancellation during a |
-// video conferencing call). Owns a media::AudioCapturerSource and the |
-// MediaStreamProcessor that modifies its audio. Modified audio is delivered to |
-// one or more MediaStreamAudioTracks. |
-class CONTENT_EXPORT ProcessedLocalAudioSource final |
- : NON_EXPORTED_BASE(public MediaStreamAudioSource), |
- NON_EXPORTED_BASE(public media::AudioCapturerSource::CaptureCallback) { |
- public: |
- // |consumer_render_frame_id| references the RenderFrame that will consume the |
- // audio data. Audio parameters and (optionally) a pre-existing audio session |
- // ID are derived from |device_info|. |factory| must outlive this instance. |
- ProcessedLocalAudioSource(int consumer_render_frame_id, |
- const StreamDeviceInfo& device_info, |
- PeerConnectionDependencyFactory* factory); |
- |
- ~ProcessedLocalAudioSource() final; |
- |
- // If |source| is an instance of ProcessedLocalAudioSource, return a |
- // type-casted pointer to it. Otherwise, return null. |
- static ProcessedLocalAudioSource* From(MediaStreamAudioSource* source); |
- |
- // Non-browser unit tests cannot provide RenderFrame implementations at |
- // run-time. This is used to skip the otherwise mandatory check for a valid |
- // render frame ID when the source is started. |
- void SetAllowInvalidRenderFrameIdForTesting(bool allowed) { |
- allow_invalid_render_frame_id_for_testing_ = allowed; |
- } |
- |
- // Gets/Sets source constraints. Using this is optional, but must be done |
- // before the first call to ConnectToTrack(). |
- const blink::WebMediaConstraints& source_constraints() const { |
- return constraints_; |
- } |
- void SetSourceConstraints(const blink::WebMediaConstraints& constraints); |
- |
- // The following accessors are not valid until after the source is started |
- // (when the first track is connected). |
- webrtc::AudioSourceInterface* rtc_source() const { return rtc_source_.get(); } |
- const scoped_refptr<MediaStreamAudioProcessor>& audio_processor() const { |
- return audio_processor_; |
- } |
- const scoped_refptr<MediaStreamAudioLevelCalculator::Level>& audio_level() |
- const { |
- return level_calculator_.level(); |
- } |
- |
- // Thread-safe volume accessors used by WebRtcAudioDeviceImpl. |
- void SetVolume(int volume); |
- int Volume() const; |
- int MaxVolume() const; |
- |
- // Audio parameters utilized by the source of the audio capturer. |
- // TODO(phoglund): Think over the implications of this accessor and if we can |
- // remove it. |
- media::AudioParameters GetInputFormat() const; |
- |
- protected: |
- // MediaStreamAudioSource implementation. |
- void* GetClassIdentifier() const final; |
- bool EnsureSourceIsStarted() final; |
- void EnsureSourceIsStopped() final; |
- |
- // AudioCapturerSource::CaptureCallback implementation. |
- // Called on the AudioCapturerSource audio thread. |
- void Capture(const media::AudioBus* audio_source, |
- int audio_delay_milliseconds, |
- double volume, |
- bool key_pressed) override; |
- void OnCaptureError(const std::string& message) override; |
- |
- private: |
- // Helper function to get the source buffer size based on whether audio |
- // processing will take place. |
- int GetBufferSize(int sample_rate) const; |
- |
- // The RenderFrame that will consume the audio data. Used when creating |
- // AudioCapturerSources. |
- const int consumer_render_frame_id_; |
- |
- PeerConnectionDependencyFactory* const pc_factory_; |
- |
- // In debug builds, check that all methods that could cause object graph |
- // or data flow changes are being called on the main thread. |
- base::ThreadChecker thread_checker_; |
- |
- // Cached audio constraints for the capturer. |
- blink::WebMediaConstraints constraints_; |
- |
- // Audio processor doing processing like FIFO, AGC, AEC and NS. Its output |
- // data is in a unit of 10 ms data chunk. |
- scoped_refptr<MediaStreamAudioProcessor> audio_processor_; |
- |
- // The device created by the AudioDeviceFactory in EnsureSourceIsStarted(). |
- scoped_refptr<media::AudioCapturerSource> source_; |
- |
- // Holder for WebRTC audio pipeline objects. Created in |
- // EnsureSourceIsStarted(). |
- scoped_refptr<webrtc::AudioSourceInterface> rtc_source_; |
- |
- // Protects data elements from concurrent access when using the volume |
- // methods. |
- mutable base::Lock volume_lock_; |
- |
- // Stores latest microphone volume received in a CaptureData() callback. |
- // Range is [0, 255]. |
- int volume_; |
- |
- // Used to calculate the signal level that shows in the UI. |
- MediaStreamAudioLevelCalculator level_calculator_; |
- |
- bool allow_invalid_render_frame_id_for_testing_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ProcessedLocalAudioSource); |
-}; |
- |
-} // namespace content |
- |
-#endif // CONTENT_RENDERER_MEDIA_WEBRTC_PROCESSED_LOCAL_AUDIO_SOURCE_H_ |