mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-20 09:07:52 +01:00

defined in https://w3c.github.io/webrtc-encoded-transform/#rtcrtpsender-extension Note: this does not implement the "rid(s)" parameter which will be done in a future CL. VP8 still synchronizes keyframes on all layers even when asked for ones on individual layers while H264 (when implemented as three different encoders in SimulcastEncoderAdapter) can actually utilize this. This does not change the behavior when receiving a RTCP PLI for a particular layer. BUG=chromium:1354101 Change-Id: Ic8b14d155242e32c9aeafa55fe6652f346ac76b8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/274169 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Commit-Queue: Philipp Hancke <phancke@microsoft.com> Cr-Commit-Position: refs/heads/main@{#38472}
56 lines
2.1 KiB
C++
56 lines
2.1 KiB
C++
/*
|
|
* 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 <memory>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "api/rtp_sender_interface.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(rtc::scoped_refptr<MediaStreamTrackInterface>, track)
|
|
PROXY_CONSTMETHOD0(rtc::scoped_refptr<DtlsTransportInterface>, dtls_transport)
|
|
PROXY_CONSTMETHOD0(uint32_t, ssrc)
|
|
BYPASS_PROXY_CONSTMETHOD0(cricket::MediaType, media_type)
|
|
BYPASS_PROXY_CONSTMETHOD0(std::string, id)
|
|
PROXY_CONSTMETHOD0(std::vector<std::string>, stream_ids)
|
|
PROXY_CONSTMETHOD0(std::vector<RtpEncodingParameters>, init_send_encodings)
|
|
PROXY_CONSTMETHOD0(RtpParameters, GetParameters)
|
|
PROXY_METHOD1(RTCError, SetParameters, const RtpParameters&)
|
|
PROXY_CONSTMETHOD0(rtc::scoped_refptr<DtmfSenderInterface>, GetDtmfSender)
|
|
PROXY_METHOD1(void,
|
|
SetFrameEncryptor,
|
|
rtc::scoped_refptr<FrameEncryptorInterface>)
|
|
PROXY_CONSTMETHOD0(rtc::scoped_refptr<FrameEncryptorInterface>,
|
|
GetFrameEncryptor)
|
|
PROXY_METHOD1(void, SetStreams, const std::vector<std::string>&)
|
|
PROXY_METHOD1(void,
|
|
SetEncoderToPacketizerFrameTransformer,
|
|
rtc::scoped_refptr<FrameTransformerInterface>)
|
|
PROXY_METHOD1(void,
|
|
SetEncoderSelector,
|
|
std::unique_ptr<VideoEncoderFactory::EncoderSelectorInterface>)
|
|
PROXY_METHOD0(RTCError, GenerateKeyFrame)
|
|
END_PROXY_MAP(RtpSender)
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // PC_RTP_SENDER_PROXY_H_
|