| Index: content/renderer/media/webrtc/processed_local_audio_track.h
|
| diff --git a/content/renderer/media/webrtc_local_audio_track.h b/content/renderer/media/webrtc/processed_local_audio_track.h
|
| similarity index 31%
|
| rename from content/renderer/media/webrtc_local_audio_track.h
|
| rename to content/renderer/media/webrtc/processed_local_audio_track.h
|
| index d3d28d5143f22223ff9f1e706bfd805a5b47afbb..66e28be627c60d9557764f5ab38e73f04e70813c 100644
|
| --- a/content/renderer/media/webrtc_local_audio_track.h
|
| +++ b/content/renderer/media/webrtc/processed_local_audio_track.h
|
| @@ -2,66 +2,42 @@
|
| // 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_LOCAL_AUDIO_TRACK_H_
|
| -#define CONTENT_RENDERER_MEDIA_WEBRTC_LOCAL_AUDIO_TRACK_H_
|
| -
|
| -#include <list>
|
| -#include <string>
|
| +#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_PROCESSED_LOCAL_AUDIO_TRACK_H_
|
| +#define CONTENT_RENDERER_MEDIA_WEBRTC_PROCESSED_LOCAL_AUDIO_TRACK_H_
|
|
|
| #include "base/macros.h"
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "base/threading/thread_checker.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_track.h"
|
| -#include "content/renderer/media/tagged_list.h"
|
| -#include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h"
|
| -#include "media/audio/audio_parameters.h"
|
| -
|
| -namespace media {
|
| -class AudioBus;
|
| -}
|
|
|
| namespace content {
|
|
|
| -class MediaStreamAudioLevelCalculator;
|
| -class MediaStreamAudioProcessor;
|
| -class MediaStreamAudioSink;
|
| -class MediaStreamAudioSinkOwner;
|
| -class MediaStreamAudioTrackSink;
|
| +class WebRtcLocalAudioTrackAdapter;
|
|
|
| -// A WebRtcLocalAudioTrack manages thread-safe connects/disconnects to sinks,
|
| -// and the delivery of audio data from the source to the sinks.
|
| -class CONTENT_EXPORT WebRtcLocalAudioTrack
|
| +// A MediaStreamAudioTrack that also holds a WebRtcLocalAudioTrackAdapter and
|
| +// provides an "adapter" bridge between the media stream object graph in the
|
| +// content namespace and the separate object graph in the webrtc namespace.
|
| +//
|
| +// This class is instantiated by ProcessLocalAudioSource.
|
| +class CONTENT_EXPORT ProcessedLocalAudioTrack final
|
| : NON_EXPORTED_BASE(public MediaStreamAudioTrack) {
|
| public:
|
| - explicit WebRtcLocalAudioTrack(
|
| + explicit ProcessedLocalAudioTrack(
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter);
|
|
|
| - ~WebRtcLocalAudioTrack() override;
|
| -
|
| - // Add a sink to the track. This function will trigger a OnSetFormat()
|
| - // call on the |sink|.
|
| - // Called on the main render thread.
|
| - void AddSink(MediaStreamAudioSink* sink) override;
|
| + ~ProcessedLocalAudioTrack() final;
|
|
|
| - // Remove a sink from the track.
|
| - // Called on the main render thread.
|
| - void RemoveSink(MediaStreamAudioSink* sink) override;
|
| + // If |track| is an instance of ProcessedLocalAudioTrack, return a type-casted
|
| + // pointer to it. Otherwise, return null.
|
| + static ProcessedLocalAudioTrack* From(MediaStreamAudioTrack* track);
|
|
|
| - // Overrides for MediaStreamTrack.
|
| - void SetEnabled(bool enabled) override;
|
| - webrtc::AudioTrackInterface* GetAudioAdapter() override;
|
| - media::AudioParameters GetOutputFormat() const override;
|
| + const scoped_refptr<WebRtcLocalAudioTrackAdapter>& adapter() const {
|
| + return adapter_;
|
| + }
|
|
|
| - // Method called by the capturer to deliver the capture data.
|
| - // Called on the capture audio thread.
|
| - void Capture(const media::AudioBus& audio_bus,
|
| - base::TimeTicks estimated_capture_time);
|
| -
|
| - // Method called by the capturer to set the audio parameters used by source
|
| - // of the capture data..
|
| - // Called on the capture audio thread.
|
| - void OnSetFormat(const media::AudioParameters& params);
|
| + // Override for MediaStreamTrack.
|
| + void SetEnabled(bool enabled) final;
|
|
|
| // Called by the capturer before the audio data flow begins to set the object
|
| // that provides shared access to the current audio signal level.
|
| @@ -72,35 +48,20 @@ class CONTENT_EXPORT WebRtcLocalAudioTrack
|
| void SetAudioProcessor(scoped_refptr<MediaStreamAudioProcessor> processor);
|
|
|
| private:
|
| - typedef TaggedList<MediaStreamAudioTrackSink> SinkList;
|
| -
|
| // MediaStreamAudioTrack override.
|
| - void OnStop() final;
|
| + void* GetClassIdentifier() const final;
|
|
|
| // All usage of libjingle is through this adapter. The adapter holds
|
| // a pointer to this object, but no reference.
|
| const scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter_;
|
|
|
| - // A tagged list of sinks that the audio data is fed to. Tags
|
| - // indicate tracks that need to be notified that the audio format
|
| - // has changed.
|
| - SinkList sinks_;
|
| -
|
| - // Tests that methods are called on libjingle's signaling thread.
|
| - base::ThreadChecker signal_thread_checker_;
|
| -
|
| - // Used to DCHECK that some methods are called on the capture audio thread.
|
| - base::ThreadChecker capture_thread_checker_;
|
| -
|
| - // Protects |params_| and |sinks_|.
|
| - mutable base::Lock lock_;
|
| -
|
| - // Audio parameters of the audio capture stream.
|
| - media::AudioParameters audio_parameters_;
|
| + // 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_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(WebRtcLocalAudioTrack);
|
| + DISALLOW_COPY_AND_ASSIGN(ProcessedLocalAudioTrack);
|
| };
|
|
|
| } // namespace content
|
|
|
| -#endif // CONTENT_RENDERER_MEDIA_WEBRTC_LOCAL_AUDIO_TRACK_H_
|
| +#endif // CONTENT_RENDERER_MEDIA_WEBRTC_PROCESSED_LOCAL_AUDIO_TRACK_H_
|
|
|