webrtc_m130/api/rtp_sender_interface.h

147 lines
5.9 KiB
C
Raw Permalink Normal View History

/*
* Copyright 2015 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.
*/
// This file contains interfaces for RtpSenders
// http://w3c.github.io/webrtc-pc/#rtcrtpsender-interface
#ifndef API_RTP_SENDER_INTERFACE_H_
#define API_RTP_SENDER_INTERFACE_H_
#include <cstdint>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/functional/any_invocable.h"
#include "api/crypto/frame_encryptor_interface.h"
#include "api/dtls_transport_interface.h"
#include "api/dtmf_sender_interface.h"
#include "api/frame_transformer_interface.h"
#include "api/media_stream_interface.h"
#include "api/media_types.h"
#include "api/ref_count.h"
#include "api/rtc_error.h"
#include "api/rtp_parameters.h"
#include "api/scoped_refptr.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
class RtpSenderObserverInterface {
public:
// The observer is called when the first media packet is sent for the observed
// sender. It is called immediately if the first packet was already sent.
virtual void OnFirstPacketSent(cricket::MediaType media_type) = 0;
protected:
virtual ~RtpSenderObserverInterface() {}
};
using SetParametersCallback = absl::AnyInvocable<void(RTCError) &&>;
class RTC_EXPORT RtpSenderInterface : public webrtc::RefCountInterface,
public FrameTransformerHost {
public:
// Returns true if successful in setting the track.
// Fails if an audio track is set on a video RtpSender, or vice-versa.
virtual bool SetTrack(MediaStreamTrackInterface* track) = 0;
virtual rtc::scoped_refptr<MediaStreamTrackInterface> track() const = 0;
// The dtlsTransport attribute exposes the DTLS transport on which the
// media is sent. It may be null.
// https://w3c.github.io/webrtc-pc/#dom-rtcrtpsender-transport
Reland "rtpsender interface: make pure virtual again" This reverts commit fbb7ce8a935db1988b3571639cab1eaed88980d1. Reason for revert: Relanding because the upstream project should be compatible with the changes now. Original change's description: > Revert "rtpsender interface: make pure virtual again" > > This reverts commit 021512b76a872b04e803d61f46c740ed363d641b. > > Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly. > > Original change's description: > > rtpsender interface: make pure virtual again > > > > after providing default implementations in Chromium tests > > > > BUG=None > > > > Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100 > > Commit-Queue: Philipp Hancke <phancke@microsoft.com> > > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > > Cr-Commit-Position: refs/heads/main@{#37941} > > Bug: None > Change-Id: I40f27c36819365fadae32032521f7e11184bee62 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484 > Owners-Override: Andrey Logvin <landrey@google.com> > Commit-Queue: Andrey Logvin <landrey@google.com> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> > Auto-Submit: Andrey Logvin <landrey@google.com> > Cr-Commit-Position: refs/heads/main@{#37947} Bug: None Change-Id: I531e17d5252d4bd5450d5ac5c64fc8f51b4a1d1d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273701 Commit-Queue: Andrey Logvin <landrey@google.com> Reviewed-by: Philipp Hancke <phancke@microsoft.com> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Andrey Logvin <landrey@google.com> Cr-Commit-Position: refs/heads/main@{#37969}
2022-08-31 08:55:33 +00:00
virtual rtc::scoped_refptr<DtlsTransportInterface> dtls_transport() const = 0;
// Returns primary SSRC used by this sender for sending media.
// Returns 0 if not yet determined.
// TODO(deadbeef): Change to std::optional.
// TODO(deadbeef): Remove? With GetParameters this should be redundant.
virtual uint32_t ssrc() const = 0;
// Audio or video sender?
virtual cricket::MediaType media_type() const = 0;
// Not to be confused with "mid", this is a field we can temporarily use
// to uniquely identify a receiver until we implement Unified Plan SDP.
virtual std::string id() const = 0;
Reland "Reland "Adds support for multiple or no media stream ids."" This is a reland of f351c3408a0c7f695447a2a9f4e6a1719a0d6a26 Reland history: The original CL broke tests in chromium which were manually tested in the first reland. Another small fix was added to the reland to fix a downstream bug, which caused separate tests to fail in chromium. These were not caught because the chromium trybot was down. These are temporarily disabled in chrome to allow this change to roll in. Original change's description: > Reland "Adds support for multiple or no media stream ids." > > This is a reland of 1550292efe680ac79a18004705c908b1cdca54cb > > Original change's description: > > Adds support for multiple or no media stream ids. > > > > With Unified Plan SDP semantics, this adds support for specifying > > either no media stream ids or multiple media stream ids for a > > transceiver/sender/receiver. This includes serializing/deserializing > > SDPs with multiple a=msid lines in a m section, or an "a=msid:- > > <appdata>" line to indicate the no stream case. Note that this does > > not synchronize between multiple streams, this is still just supported > > based upon the first media stream id. > > > > Bug: webrtc:7932, webrtc:7933 > > Change-Id: Ib7433929af7b2925abe2824b485b360cec12f275 > > Reviewed-on: https://webrtc-review.googlesource.com/61341 > > Commit-Queue: Seth Hampson <shampson@webrtc.org> > > Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> > > Reviewed-by: Steve Anton <steveanton@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#22611} > > Bug: webrtc:7932, webrtc:7933 > Change-Id: Ica272ac18088103e65cccf6b96a6d3ecccb178ed > Reviewed-on: https://webrtc-review.googlesource.com/65560 > Commit-Queue: Seth Hampson <shampson@webrtc.org> > Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> > Reviewed-by: Steve Anton <steveanton@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#22687} TBR=deadbeef@webrtc.org Bug: webrtc:7932, webrtc:7933 Change-Id: Ideb30219b2f952dd51428cd4e8bd43ef49df5b17 Reviewed-on: https://webrtc-review.googlesource.com/66280 Commit-Queue: Seth Hampson <shampson@webrtc.org> Reviewed-by: Seth Hampson <shampson@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22699}
2018-04-02 16:31:36 -07:00
// Returns a list of media stream ids associated with this sender's track.
// These are signalled in the SDP so that the remote side can associate
// tracks.
virtual std::vector<std::string> stream_ids() const = 0;
Add RtpSenderInterface.SetStreams This is a reland of df5731e44d510e9f23a35b77e9e102eb41919bf4 with fixes to avoid existing chromium tests to fail. Instead of replacing the existing RtpSender::set_stream_ids() to also fire OnRenegotiationNeeded(), this CL keeps the old set_stream_ids() and adds the new RtpSender::SetStreams() which sets the stream IDs and fires the callback. This allows existing callsites to maintain behavior, and reserve SetStreams() for the cases when we want OnRenegotiationNeeded() to fire. Using the SetStreams() name instead of SetStreamIDs() to match the W3C spec and to make it more different that the existing set_stream_ids(). Original change's description: > Improve spec compliance of SetStreamIDs in RtpSenderInterface > > This CL makes RtpSender::SetStreamIDs fire fire negotiationneeded > event if needed and exposes the method on RtpSenderInterface. > > This is a spec-compliance change. > > Bug: webrtc:10129 > Change-Id: I2b98b92665c847102838b094516a79b24de0e47e > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135121 > Commit-Queue: Guido Urdaneta <guidou@webrtc.org> > Reviewed-by: Steve Anton <steveanton@webrtc.org> > Reviewed-by: Henrik Boström <hbos@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#27974} Bug: webrtc:10129 Change-Id: Ic0b322bfa25c157e3a39465ef8b486f898eaf6bd Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137439 Commit-Queue: Guido Urdaneta <guidou@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27992}
2019-05-20 19:31:53 +02:00
// Sets the IDs of the media streams associated with this sender's track.
// These are signalled in the SDP so that the remote side can associate
// tracks.
Reland "rtpsender interface: make pure virtual again" This reverts commit fbb7ce8a935db1988b3571639cab1eaed88980d1. Reason for revert: Relanding because the upstream project should be compatible with the changes now. Original change's description: > Revert "rtpsender interface: make pure virtual again" > > This reverts commit 021512b76a872b04e803d61f46c740ed363d641b. > > Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly. > > Original change's description: > > rtpsender interface: make pure virtual again > > > > after providing default implementations in Chromium tests > > > > BUG=None > > > > Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100 > > Commit-Queue: Philipp Hancke <phancke@microsoft.com> > > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > > Cr-Commit-Position: refs/heads/main@{#37941} > > Bug: None > Change-Id: I40f27c36819365fadae32032521f7e11184bee62 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484 > Owners-Override: Andrey Logvin <landrey@google.com> > Commit-Queue: Andrey Logvin <landrey@google.com> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> > Auto-Submit: Andrey Logvin <landrey@google.com> > Cr-Commit-Position: refs/heads/main@{#37947} Bug: None Change-Id: I531e17d5252d4bd5450d5ac5c64fc8f51b4a1d1d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273701 Commit-Queue: Andrey Logvin <landrey@google.com> Reviewed-by: Philipp Hancke <phancke@microsoft.com> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Andrey Logvin <landrey@google.com> Cr-Commit-Position: refs/heads/main@{#37969}
2022-08-31 08:55:33 +00:00
virtual void SetStreams(const std::vector<std::string>& stream_ids) = 0;
Add RtpSenderInterface.SetStreams This is a reland of df5731e44d510e9f23a35b77e9e102eb41919bf4 with fixes to avoid existing chromium tests to fail. Instead of replacing the existing RtpSender::set_stream_ids() to also fire OnRenegotiationNeeded(), this CL keeps the old set_stream_ids() and adds the new RtpSender::SetStreams() which sets the stream IDs and fires the callback. This allows existing callsites to maintain behavior, and reserve SetStreams() for the cases when we want OnRenegotiationNeeded() to fire. Using the SetStreams() name instead of SetStreamIDs() to match the W3C spec and to make it more different that the existing set_stream_ids(). Original change's description: > Improve spec compliance of SetStreamIDs in RtpSenderInterface > > This CL makes RtpSender::SetStreamIDs fire fire negotiationneeded > event if needed and exposes the method on RtpSenderInterface. > > This is a spec-compliance change. > > Bug: webrtc:10129 > Change-Id: I2b98b92665c847102838b094516a79b24de0e47e > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135121 > Commit-Queue: Guido Urdaneta <guidou@webrtc.org> > Reviewed-by: Steve Anton <steveanton@webrtc.org> > Reviewed-by: Henrik Boström <hbos@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#27974} Bug: webrtc:10129 Change-Id: Ic0b322bfa25c157e3a39465ef8b486f898eaf6bd Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137439 Commit-Queue: Guido Urdaneta <guidou@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27992}
2019-05-20 19:31:53 +02:00
// Returns the list of encoding parameters that will be applied when the SDP
// local description is set. These initial encoding parameters can be set by
// PeerConnection::AddTransceiver, and later updated with Get/SetParameters.
// TODO(orphis): Make it pure virtual once Chrome has updated
Reland "rtpsender interface: make pure virtual again" This reverts commit fbb7ce8a935db1988b3571639cab1eaed88980d1. Reason for revert: Relanding because the upstream project should be compatible with the changes now. Original change's description: > Revert "rtpsender interface: make pure virtual again" > > This reverts commit 021512b76a872b04e803d61f46c740ed363d641b. > > Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly. > > Original change's description: > > rtpsender interface: make pure virtual again > > > > after providing default implementations in Chromium tests > > > > BUG=None > > > > Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100 > > Commit-Queue: Philipp Hancke <phancke@microsoft.com> > > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > > Cr-Commit-Position: refs/heads/main@{#37941} > > Bug: None > Change-Id: I40f27c36819365fadae32032521f7e11184bee62 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484 > Owners-Override: Andrey Logvin <landrey@google.com> > Commit-Queue: Andrey Logvin <landrey@google.com> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> > Auto-Submit: Andrey Logvin <landrey@google.com> > Cr-Commit-Position: refs/heads/main@{#37947} Bug: None Change-Id: I531e17d5252d4bd5450d5ac5c64fc8f51b4a1d1d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273701 Commit-Queue: Andrey Logvin <landrey@google.com> Reviewed-by: Philipp Hancke <phancke@microsoft.com> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Andrey Logvin <landrey@google.com> Cr-Commit-Position: refs/heads/main@{#37969}
2022-08-31 08:55:33 +00:00
virtual std::vector<RtpEncodingParameters> init_send_encodings() const = 0;
virtual RtpParameters GetParameters() const = 0;
// Note that only a subset of the parameters can currently be changed. See
// rtpparameters.h
// The encodings are in increasing quality order for simulcast.
virtual RTCError SetParameters(const RtpParameters& parameters) = 0;
virtual void SetParametersAsync(const RtpParameters& parameters,
SetParametersCallback callback);
// Sets an observer which gets a callback when the first media packet is sent
// for this sender.
// Does not take ownership of observer.
// Must call SetObserver(nullptr) before the observer is destroyed.
virtual void SetObserver(RtpSenderObserverInterface* /* observer */) {}
// Returns null for a video sender.
virtual rtc::scoped_refptr<DtmfSenderInterface> GetDtmfSender() const = 0;
// Sets a user defined frame encryptor that will encrypt the entire frame
// before it is sent across the network. This will encrypt the entire frame
// using the user provided encryption mechanism regardless of whether SRTP is
// enabled or not.
virtual void SetFrameEncryptor(
Reland "rtpsender interface: make pure virtual again" This reverts commit fbb7ce8a935db1988b3571639cab1eaed88980d1. Reason for revert: Relanding because the upstream project should be compatible with the changes now. Original change's description: > Revert "rtpsender interface: make pure virtual again" > > This reverts commit 021512b76a872b04e803d61f46c740ed363d641b. > > Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly. > > Original change's description: > > rtpsender interface: make pure virtual again > > > > after providing default implementations in Chromium tests > > > > BUG=None > > > > Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100 > > Commit-Queue: Philipp Hancke <phancke@microsoft.com> > > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > > Cr-Commit-Position: refs/heads/main@{#37941} > > Bug: None > Change-Id: I40f27c36819365fadae32032521f7e11184bee62 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484 > Owners-Override: Andrey Logvin <landrey@google.com> > Commit-Queue: Andrey Logvin <landrey@google.com> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> > Auto-Submit: Andrey Logvin <landrey@google.com> > Cr-Commit-Position: refs/heads/main@{#37947} Bug: None Change-Id: I531e17d5252d4bd5450d5ac5c64fc8f51b4a1d1d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273701 Commit-Queue: Andrey Logvin <landrey@google.com> Reviewed-by: Philipp Hancke <phancke@microsoft.com> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Andrey Logvin <landrey@google.com> Cr-Commit-Position: refs/heads/main@{#37969}
2022-08-31 08:55:33 +00:00
rtc::scoped_refptr<FrameEncryptorInterface> frame_encryptor) = 0;
// Returns a pointer to the frame encryptor set previously by the
// user. This can be used to update the state of the object.
Reland "rtpsender interface: make pure virtual again" This reverts commit fbb7ce8a935db1988b3571639cab1eaed88980d1. Reason for revert: Relanding because the upstream project should be compatible with the changes now. Original change's description: > Revert "rtpsender interface: make pure virtual again" > > This reverts commit 021512b76a872b04e803d61f46c740ed363d641b. > > Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly. > > Original change's description: > > rtpsender interface: make pure virtual again > > > > after providing default implementations in Chromium tests > > > > BUG=None > > > > Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100 > > Commit-Queue: Philipp Hancke <phancke@microsoft.com> > > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > > Cr-Commit-Position: refs/heads/main@{#37941} > > Bug: None > Change-Id: I40f27c36819365fadae32032521f7e11184bee62 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484 > Owners-Override: Andrey Logvin <landrey@google.com> > Commit-Queue: Andrey Logvin <landrey@google.com> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> > Auto-Submit: Andrey Logvin <landrey@google.com> > Cr-Commit-Position: refs/heads/main@{#37947} Bug: None Change-Id: I531e17d5252d4bd5450d5ac5c64fc8f51b4a1d1d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273701 Commit-Queue: Andrey Logvin <landrey@google.com> Reviewed-by: Philipp Hancke <phancke@microsoft.com> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Andrey Logvin <landrey@google.com> Cr-Commit-Position: refs/heads/main@{#37969}
2022-08-31 08:55:33 +00:00
virtual rtc::scoped_refptr<FrameEncryptorInterface> GetFrameEncryptor()
const = 0;
// TODO: bugs.webrtc.org/15929 - add [[deprecated("Use SetFrameTransformer")]]
// when usage in Chrome is removed
virtual void SetEncoderToPacketizerFrameTransformer(
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer) {
SetFrameTransformer(std::move(frame_transformer));
}
// Sets a user defined encoder selector.
// Overrides selector that is (optionally) provided by VideoEncoderFactory.
virtual void SetEncoderSelector(
std::unique_ptr<VideoEncoderFactory::EncoderSelectorInterface>
Reland "rtpsender interface: make pure virtual again" This reverts commit fbb7ce8a935db1988b3571639cab1eaed88980d1. Reason for revert: Relanding because the upstream project should be compatible with the changes now. Original change's description: > Revert "rtpsender interface: make pure virtual again" > > This reverts commit 021512b76a872b04e803d61f46c740ed363d641b. > > Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly. > > Original change's description: > > rtpsender interface: make pure virtual again > > > > after providing default implementations in Chromium tests > > > > BUG=None > > > > Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100 > > Commit-Queue: Philipp Hancke <phancke@microsoft.com> > > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > > Cr-Commit-Position: refs/heads/main@{#37941} > > Bug: None > Change-Id: I40f27c36819365fadae32032521f7e11184bee62 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484 > Owners-Override: Andrey Logvin <landrey@google.com> > Commit-Queue: Andrey Logvin <landrey@google.com> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> > Auto-Submit: Andrey Logvin <landrey@google.com> > Cr-Commit-Position: refs/heads/main@{#37947} Bug: None Change-Id: I531e17d5252d4bd5450d5ac5c64fc8f51b4a1d1d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273701 Commit-Queue: Andrey Logvin <landrey@google.com> Reviewed-by: Philipp Hancke <phancke@microsoft.com> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Andrey Logvin <landrey@google.com> Cr-Commit-Position: refs/heads/main@{#37969}
2022-08-31 08:55:33 +00:00
encoder_selector) = 0;
// Default implementation of SetFrameTransformer.
// TODO: bugs.webrtc.org/15929 - remove when all implementations are good
void SetFrameTransformer(rtc::scoped_refptr<FrameTransformerInterface>
/* frame_transformer */) override {}
protected:
~RtpSenderInterface() override = default;
};
} // namespace webrtc
#endif // API_RTP_SENDER_INTERFACE_H_