
(this CL is based on the work by Taylor and Steve in https://webrtc-review.googlesource.com/c/src/+/10201) This SetAudioPlayout method lets applications disable audio playout while still processing incoming audio data and generating statistics on the received audio. This may be useful if the application wants to set up media flows as soon as possible, but isn't ready to play audio yet. Currently, native applications don't have any API point to control this, unless they completely implement their own AudioDeviceModule. The SetAudioRecording works in a similar fashion but for the recorded audio. One difference is that calling SetAudioRecording(false) does not keep any audio processing alive. TBR=solenberg Bug: webrtc:7313 Change-Id: I0aa075f6bfef9818f1080f85a8ff7842fb0750aa Reviewed-on: https://webrtc-review.googlesource.com/16180 Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20499}
122 lines
4.9 KiB
C++
122 lines
4.9 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 API_PEERCONNECTIONPROXY_H_
|
|
#define API_PEERCONNECTIONPROXY_H_
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "api/peerconnectioninterface.h"
|
|
#include "api/proxy.h"
|
|
|
|
namespace webrtc {
|
|
|
|
// TODO(deadbeef): Move this to .cc file and out of api/. What threads methods
|
|
// are called on is an implementation detail.
|
|
BEGIN_SIGNALING_PROXY_MAP(PeerConnection)
|
|
PROXY_SIGNALING_THREAD_DESTRUCTOR()
|
|
PROXY_METHOD0(rtc::scoped_refptr<StreamCollectionInterface>, local_streams)
|
|
PROXY_METHOD0(rtc::scoped_refptr<StreamCollectionInterface>, remote_streams)
|
|
PROXY_METHOD1(bool, AddStream, MediaStreamInterface*)
|
|
PROXY_METHOD1(void, RemoveStream, MediaStreamInterface*)
|
|
PROXY_METHOD2(rtc::scoped_refptr<RtpSenderInterface>,
|
|
AddTrack,
|
|
MediaStreamTrackInterface*,
|
|
std::vector<MediaStreamInterface*>)
|
|
PROXY_METHOD1(bool, RemoveTrack, RtpSenderInterface*)
|
|
PROXY_METHOD1(rtc::scoped_refptr<DtmfSenderInterface>,
|
|
CreateDtmfSender,
|
|
AudioTrackInterface*)
|
|
PROXY_METHOD2(rtc::scoped_refptr<RtpSenderInterface>,
|
|
CreateSender,
|
|
const std::string&,
|
|
const std::string&)
|
|
PROXY_CONSTMETHOD0(std::vector<rtc::scoped_refptr<RtpSenderInterface>>,
|
|
GetSenders)
|
|
PROXY_CONSTMETHOD0(std::vector<rtc::scoped_refptr<RtpReceiverInterface>>,
|
|
GetReceivers)
|
|
PROXY_METHOD3(bool,
|
|
GetStats,
|
|
StatsObserver*,
|
|
MediaStreamTrackInterface*,
|
|
StatsOutputLevel)
|
|
PROXY_METHOD1(void, GetStats, RTCStatsCollectorCallback*)
|
|
PROXY_METHOD2(rtc::scoped_refptr<DataChannelInterface>,
|
|
CreateDataChannel,
|
|
const std::string&,
|
|
const DataChannelInit*)
|
|
PROXY_CONSTMETHOD0(const SessionDescriptionInterface*, local_description)
|
|
PROXY_CONSTMETHOD0(const SessionDescriptionInterface*, remote_description)
|
|
PROXY_CONSTMETHOD0(const SessionDescriptionInterface*,
|
|
pending_local_description)
|
|
PROXY_CONSTMETHOD0(const SessionDescriptionInterface*,
|
|
pending_remote_description)
|
|
PROXY_CONSTMETHOD0(const SessionDescriptionInterface*,
|
|
current_local_description)
|
|
PROXY_CONSTMETHOD0(const SessionDescriptionInterface*,
|
|
current_remote_description)
|
|
PROXY_METHOD2(void,
|
|
CreateOffer,
|
|
CreateSessionDescriptionObserver*,
|
|
const MediaConstraintsInterface*)
|
|
PROXY_METHOD2(void,
|
|
CreateAnswer,
|
|
CreateSessionDescriptionObserver*,
|
|
const MediaConstraintsInterface*)
|
|
PROXY_METHOD2(void,
|
|
CreateOffer,
|
|
CreateSessionDescriptionObserver*,
|
|
const RTCOfferAnswerOptions&)
|
|
PROXY_METHOD2(void,
|
|
CreateAnswer,
|
|
CreateSessionDescriptionObserver*,
|
|
const RTCOfferAnswerOptions&)
|
|
PROXY_METHOD2(void,
|
|
SetLocalDescription,
|
|
SetSessionDescriptionObserver*,
|
|
SessionDescriptionInterface*)
|
|
PROXY_METHOD2(void,
|
|
SetRemoteDescription,
|
|
SetSessionDescriptionObserver*,
|
|
SessionDescriptionInterface*)
|
|
PROXY_METHOD0(PeerConnectionInterface::RTCConfiguration, GetConfiguration);
|
|
PROXY_METHOD2(bool,
|
|
SetConfiguration,
|
|
const PeerConnectionInterface::RTCConfiguration&,
|
|
RTCError*);
|
|
PROXY_METHOD1(bool,
|
|
SetConfiguration,
|
|
const PeerConnectionInterface::RTCConfiguration&);
|
|
PROXY_METHOD1(bool, AddIceCandidate, const IceCandidateInterface*)
|
|
PROXY_METHOD1(bool,
|
|
RemoveIceCandidates,
|
|
const std::vector<cricket::Candidate>&);
|
|
PROXY_METHOD1(void, SetAudioPlayout, bool)
|
|
PROXY_METHOD1(void, SetAudioRecording, bool)
|
|
PROXY_METHOD1(void, RegisterUMAObserver, UMAObserver*)
|
|
PROXY_METHOD1(RTCError, SetBitrate, const BitrateParameters&);
|
|
PROXY_METHOD1(void,
|
|
SetBitrateAllocationStrategy,
|
|
std::unique_ptr<rtc::BitrateAllocationStrategy>);
|
|
PROXY_METHOD0(SignalingState, signaling_state)
|
|
PROXY_METHOD0(IceConnectionState, ice_connection_state)
|
|
PROXY_METHOD0(IceGatheringState, ice_gathering_state)
|
|
PROXY_METHOD2(bool, StartRtcEventLog, rtc::PlatformFile, int64_t)
|
|
PROXY_METHOD1(bool, StartRtcEventLog, std::unique_ptr<RtcEventLogOutput>)
|
|
PROXY_METHOD0(void, StopRtcEventLog)
|
|
PROXY_METHOD0(void, Close)
|
|
END_PROXY_MAP()
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // API_PEERCONNECTIONPROXY_H_
|