diff options
Diffstat (limited to 'webrtc/audio_receive_stream.h')
-rw-r--r-- | webrtc/audio_receive_stream.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/webrtc/audio_receive_stream.h b/webrtc/audio_receive_stream.h index 3e5a518a7d..8cab094f4b 100644 --- a/webrtc/audio_receive_stream.h +++ b/webrtc/audio_receive_stream.h @@ -15,6 +15,7 @@ #include <string> #include <vector> +#include "webrtc/base/scoped_ptr.h" #include "webrtc/config.h" #include "webrtc/stream.h" #include "webrtc/transport.h" @@ -23,6 +24,12 @@ namespace webrtc { class AudioDecoder; +class AudioSinkInterface; + +// WORK IN PROGRESS +// This class is under development and is not yet intended for for use outside +// of WebRtc/Libjingle. Please use the VoiceEngine API instead. +// See: https://bugs.chromium.org/p/webrtc/issues/detail?id=4690 class AudioReceiveStream : public ReceiveStream { public: @@ -66,6 +73,12 @@ class AudioReceiveStream : public ReceiveStream { // Sender SSRC used for sending RTCP (such as receiver reports). uint32_t local_ssrc = 0; + // Enable feedback for send side bandwidth estimation. + // See + // https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions + // for details. + bool transport_cc = false; + // RTP header extensions used for the received stream. std::vector<RtpExtension> extensions; } rtp; @@ -95,6 +108,16 @@ class AudioReceiveStream : public ReceiveStream { }; virtual Stats GetStats() const = 0; + + // Sets an audio sink that receives unmixed audio from the receive stream. + // Ownership of the sink is passed to the stream and can be used by the + // caller to do lifetime management (i.e. when the sink's dtor is called). + // Only one sink can be set and passing a null sink, clears an existing one. + // NOTE: Audio must still somehow be pulled through AudioTransport for audio + // to stream through this sink. In practice, this happens if mixed audio + // is being pulled+rendered and/or if audio is being pulled for the purposes + // of feeding to the AEC. + virtual void SetSink(rtc::scoped_ptr<AudioSinkInterface> sink) = 0; }; } // namespace webrtc |