summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/webrtc/video_engine/include/vie_rtp_rtcp.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/webrtc/video_engine/include/vie_rtp_rtcp.h')
-rw-r--r--chromium/third_party/webrtc/video_engine/include/vie_rtp_rtcp.h53
1 files changed, 48 insertions, 5 deletions
diff --git a/chromium/third_party/webrtc/video_engine/include/vie_rtp_rtcp.h b/chromium/third_party/webrtc/video_engine/include/vie_rtp_rtcp.h
index 9d899ad7f39..972ca58486e 100644
--- a/chromium/third_party/webrtc/video_engine/include/vie_rtp_rtcp.h
+++ b/chromium/third_party/webrtc/video_engine/include/vie_rtp_rtcp.h
@@ -27,6 +27,7 @@
namespace webrtc {
class VideoEngine;
+struct ReceiveBandwidthEstimatorStats;
// This enumerator sets the RTCP mode.
enum ViERTCPMode {
@@ -48,11 +49,6 @@ enum StreamType {
kViEStreamTypeRtx = 1 // Retransmission media stream
};
-enum BandwidthEstimationMode {
- kViEMultiStreamEstimation,
- kViESingleStreamEstimation
-};
-
// This class declares an abstract interface for a user defined observer. It is
// up to the VideoEngine user to implement a derived class which implements the
// observer class. The observer is registered using RegisterRTPObserver() and
@@ -138,6 +134,15 @@ class WEBRTC_DLLEXPORT ViERTP_RTCP {
virtual int SetRtxSendPayloadType(const int video_channel,
const uint8_t payload_type) = 0;
+ // This enables sending redundant payloads when padding up the bitrate instead
+ // of sending dummy padding packets. This feature is off by default and will
+ // only have an effect if RTX is also enabled.
+ // TODO(holmer): Remove default implementation once this has been implemented
+ // in libjingle.
+ virtual int SetPadWithRedundantPayloads(int video_channel, bool enable) {
+ return 0;
+ }
+
virtual int SetRtxReceivePayloadType(const int video_channel,
const uint8_t payload_type) = 0;
@@ -265,6 +270,22 @@ class WEBRTC_DLLEXPORT ViERTP_RTCP {
virtual int SetTransmissionSmoothingStatus(int video_channel,
bool enable) = 0;
+ // Sets a minimal bitrate which will be padded to when the encoder doesn't
+ // produce enough bitrate.
+ // TODO(pbos): Remove default implementation when libjingle's
+ // FakeWebRtcVideoEngine is updated.
+ virtual int SetMinTransmitBitrate(int video_channel,
+ int min_transmit_bitrate_kbps) {
+ return -1;
+ };
+
+ // Set a constant amount to deduct from received bitrate estimates before
+ // using it to allocate capacity among outgoing video streams.
+ virtual int SetReservedTransmitBitrate(
+ int video_channel, unsigned int reserved_transmit_bitrate_bps) {
+ return 0;
+ }
+
// This function returns our locally created statistics of the received RTP
// stream.
virtual int GetReceiveChannelRtcpStatistics(const int video_channel,
@@ -359,6 +380,14 @@ class WEBRTC_DLLEXPORT ViERTP_RTCP {
virtual int DeregisterReceiveChannelRtpStatisticsCallback(
int video_channel, StreamDataCountersCallback* callback) = 0;
+
+ // Gets sent and received RTCP packet types.
+ // TODO(asapersson): Remove default implementation.
+ virtual int GetRtcpPacketTypeCounters(
+ int video_channel,
+ RtcpPacketTypeCounter* packets_sent,
+ RtcpPacketTypeCounter* packets_received) const { return -1; }
+
// The function gets bandwidth usage statistics from the sent RTP streams in
// bits/s.
virtual int GetBandwidthUsage(const int video_channel,
@@ -389,6 +418,20 @@ class WEBRTC_DLLEXPORT ViERTP_RTCP {
const int video_channel,
unsigned int* estimated_bandwidth) const = 0;
+ // This function gets the receive-side bandwidth esitmator statistics.
+ // TODO(jiayl): remove the default impl when libjingle's FakeWebRtcVideoEngine
+ // is updated.
+ virtual int GetReceiveBandwidthEstimatorStats(
+ const int video_channel,
+ ReceiveBandwidthEstimatorStats* output) const { return -1; }
+
+ // This function gets the PacedSender queuing delay for the last sent frame.
+ // TODO(jiayl): remove the default impl when libjingle is updated.
+ virtual int GetPacerQueuingDelayMs(
+ const int video_channel, int* delay_ms) const {
+ return -1;
+ }
+
// This function enables capturing of RTP packets to a binary file on a
// specific channel and for a given direction. The file can later be
// replayed using e.g. RTP Tools rtpplay since the binary file format is