/* * Copyright 2021 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 PC_RTP_SENDER_PROXY_H_ #define PC_RTP_SENDER_PROXY_H_ #include #include #include #include #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/rtc_error.h" #include "api/rtp_parameters.h" #include "api/rtp_sender_interface.h" #include "api/scoped_refptr.h" #include "api/video_codecs/video_encoder_factory.h" #include "pc/proxy.h" namespace webrtc { // Define proxy for RtpSenderInterface. // TODO(deadbeef): Move this to .cc file. What threads methods are called on is // an implementation detail. BEGIN_PRIMARY_PROXY_MAP(RtpSender) PROXY_PRIMARY_THREAD_DESTRUCTOR() PROXY_METHOD1(bool, SetTrack, MediaStreamTrackInterface*) PROXY_CONSTMETHOD0(scoped_refptr, track) PROXY_CONSTMETHOD0(scoped_refptr, dtls_transport) PROXY_CONSTMETHOD0(uint32_t, ssrc) BYPASS_PROXY_CONSTMETHOD0(webrtc::MediaType, media_type) BYPASS_PROXY_CONSTMETHOD0(std::string, id) PROXY_CONSTMETHOD0(std::vector, stream_ids) PROXY_CONSTMETHOD0(std::vector, init_send_encodings) PROXY_CONSTMETHOD0(RtpParameters, GetParameters) PROXY_METHOD1(RTCError, SetParameters, const RtpParameters&) PROXY_METHOD2(void, SetParametersAsync, const RtpParameters&, SetParametersCallback) PROXY_CONSTMETHOD0(scoped_refptr, GetDtmfSender) PROXY_METHOD1(void, SetFrameEncryptor, scoped_refptr) PROXY_METHOD1(void, SetObserver, RtpSenderObserverInterface*) PROXY_CONSTMETHOD0(scoped_refptr, GetFrameEncryptor) PROXY_METHOD1(void, SetStreams, const std::vector&) PROXY_METHOD1(void, SetFrameTransformer, scoped_refptr) PROXY_METHOD1(void, SetEncoderSelector, std::unique_ptr) END_PROXY_MAP(RtpSender) } // namespace webrtc #endif // PC_RTP_SENDER_PROXY_H_