diff --git a/api/BUILD.gn b/api/BUILD.gn index e9db5034f9..eca66e51aa 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -208,6 +208,7 @@ rtc_library("libjingle_peerconnection_api") { "peer_connection_interface.h", "rtp_receiver_interface.cc", "rtp_receiver_interface.h", + "rtp_sender_interface.cc", "rtp_sender_interface.h", "rtp_transceiver_interface.cc", "rtp_transceiver_interface.h", diff --git a/api/rtp_sender_interface.cc b/api/rtp_sender_interface.cc new file mode 100644 index 0000000000..57a5a10fb5 --- /dev/null +++ b/api/rtp_sender_interface.cc @@ -0,0 +1,36 @@ +/* + * Copyright 2018 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. + */ + +#include "api/rtp_sender_interface.h" + +namespace webrtc { + +void RtpSenderInterface::SetFrameEncryptor( + rtc::scoped_refptr frame_encryptor) {} + +rtc::scoped_refptr +RtpSenderInterface::GetFrameEncryptor() const { + return nullptr; +} + +std::vector RtpSenderInterface::init_send_encodings() + const { + return {}; +} + +rtc::scoped_refptr RtpSenderInterface::dtls_transport() + const { + return nullptr; +} + +void RtpSenderInterface::SetEncoderToPacketizerFrameTransformer( + rtc::scoped_refptr frame_transformer) {} + +} // namespace webrtc diff --git a/api/rtp_sender_interface.h b/api/rtp_sender_interface.h index 500bd252b8..48ea864e68 100644 --- a/api/rtp_sender_interface.h +++ b/api/rtp_sender_interface.h @@ -43,7 +43,8 @@ class RTC_EXPORT RtpSenderInterface : public rtc::RefCountInterface { // 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 - virtual rtc::scoped_refptr dtls_transport() const = 0; + // TODO(https://bugs.webrtc.org/907849) remove default implementation + virtual rtc::scoped_refptr dtls_transport() const; // Returns primary SSRC used by this sender for sending media. // Returns 0 if not yet determined. @@ -66,13 +67,13 @@ class RTC_EXPORT RtpSenderInterface : public rtc::RefCountInterface { // 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. - virtual void SetStreams(const std::vector& stream_ids) = 0; + virtual void SetStreams(const std::vector& stream_ids) {} // 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 - virtual std::vector init_send_encodings() const = 0; + virtual std::vector init_send_encodings() const; virtual RtpParameters GetParameters() const = 0; // Note that only a subset of the parameters can currently be changed. See @@ -88,21 +89,20 @@ class RTC_EXPORT RtpSenderInterface : public rtc::RefCountInterface { // using the user provided encryption mechanism regardless of whether SRTP is // enabled or not. virtual void SetFrameEncryptor( - rtc::scoped_refptr frame_encryptor) = 0; + rtc::scoped_refptr frame_encryptor); // Returns a pointer to the frame encryptor set previously by the // user. This can be used to update the state of the object. - virtual rtc::scoped_refptr GetFrameEncryptor() - const = 0; + virtual rtc::scoped_refptr GetFrameEncryptor() const; virtual void SetEncoderToPacketizerFrameTransformer( - rtc::scoped_refptr frame_transformer) = 0; + rtc::scoped_refptr frame_transformer); // Sets a user defined encoder selector. // Overrides selector that is (optionally) provided by VideoEncoderFactory. virtual void SetEncoderSelector( std::unique_ptr - encoder_selector) = 0; + encoder_selector) {} protected: ~RtpSenderInterface() override = default; diff --git a/api/test/mock_rtpsender.h b/api/test/mock_rtpsender.h index e2351f87fe..e36eec4618 100644 --- a/api/test/mock_rtpsender.h +++ b/api/test/mock_rtpsender.h @@ -11,7 +11,6 @@ #ifndef API_TEST_MOCK_RTPSENDER_H_ #define API_TEST_MOCK_RTPSENDER_H_ -#include #include #include @@ -31,15 +30,10 @@ class MockRtpSender : public RtpSenderInterface { track, (), (const, override)); - MOCK_METHOD(rtc::scoped_refptr, - dtls_transport, - (), - (const override)); MOCK_METHOD(uint32_t, ssrc, (), (const, override)); MOCK_METHOD(cricket::MediaType, media_type, (), (const, override)); MOCK_METHOD(std::string, id, (), (const, override)); MOCK_METHOD(std::vector, stream_ids, (), (const, override)); - MOCK_METHOD(void, SetStreams, (const std::vector&), (override)); MOCK_METHOD(std::vector, init_send_encodings, (), @@ -50,22 +44,6 @@ class MockRtpSender : public RtpSenderInterface { GetDtmfSender, (), (const, override)); - MOCK_METHOD(void, - SetFrameEncryptor, - (rtc::scoped_refptr), - (override)); - MOCK_METHOD(rtc::scoped_refptr, - GetFrameEncryptor, - (), - (const, override)); - MOCK_METHOD(void, - SetEncoderToPacketizerFrameTransformer, - (rtc::scoped_refptr), - (override)); - MOCK_METHOD(void, - SetEncoderSelector, - (std::unique_ptr), - (override)); }; static_assert(!std::is_abstract_v>, ""); diff --git a/pc/test/mock_rtp_sender_internal.h b/pc/test/mock_rtp_sender_internal.h index 5261d47b82..5abdc16496 100644 --- a/pc/test/mock_rtp_sender_internal.h +++ b/pc/test/mock_rtp_sender_internal.h @@ -11,7 +11,6 @@ #ifndef PC_TEST_MOCK_RTP_SENDER_INTERNAL_H_ #define PC_TEST_MOCK_RTP_SENDER_INTERNAL_H_ -#include #include #include @@ -72,14 +71,6 @@ class MockRtpSenderInternal : public RtpSenderInternal { GetFrameEncryptor, (), (const, override)); - MOCK_METHOD(void, - SetEncoderToPacketizerFrameTransformer, - (rtc::scoped_refptr), - (override)); - MOCK_METHOD(void, - SetEncoderSelector, - (std::unique_ptr), - (override)); // RtpSenderInternal methods. MOCK_METHOD1(SetMediaChannel, void(cricket::MediaChannel*));