Files
platform-external-webrtc/pc/localaudiosource.h
Piotr (Peter) Slatala 95ca6e1692 AudioSource allows implementations to return settings
So far the code assumed that there is only one implementation of AudioSourceInterface: LocalAudioSource.
That is not true. This change allows custom implementations to still set options (such as audio network adaptation) on the source.

Long term solution should include refactoring options so that they are passed to peer connection or call object, and not be defined on audio source.


Bug: webrtc:9719
Change-Id: Ic3b92219502bc73a964adbbb9c5cd7156aa382e1
Reviewed-on: https://webrtc-review.googlesource.com/c/110681
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25626}
2018-11-13 16:30:09 +00:00

50 lines
1.5 KiB
C++

/*
* Copyright 2012 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef PC_LOCALAUDIOSOURCE_H_
#define PC_LOCALAUDIOSOURCE_H_
#include "api/mediastreaminterface.h"
#include "api/notifier.h"
#include "media/base/mediachannel.h"
// LocalAudioSource implements AudioSourceInterface.
// This contains settings for switching audio processing on and off.
namespace webrtc {
class LocalAudioSource : public Notifier<AudioSourceInterface> {
public:
// Creates an instance of LocalAudioSource.
static rtc::scoped_refptr<LocalAudioSource> Create(
const cricket::AudioOptions* audio_options);
SourceState state() const override { return kLive; }
bool remote() const override { return false; }
const cricket::AudioOptions options() const override { return options_; }
void AddSink(AudioTrackSinkInterface* sink) override {}
void RemoveSink(AudioTrackSinkInterface* sink) override {}
protected:
LocalAudioSource() {}
~LocalAudioSource() override {}
private:
void Initialize(const cricket::AudioOptions* audio_options);
cricket::AudioOptions options_;
};
} // namespace webrtc
#endif // PC_LOCALAUDIOSOURCE_H_