Refactoring PayloadRouter.
- Move PayloadRouter to RtpTransportControllerInterface. - Move RetransmissionLimiter inside RtpTransportControllerSend from VideoSendStreamImpl. - Move video RTP specifics into PayloadRouter, in particular ownership of the RTP modules. - PayloadRouter now contains all video specific RTP code, and will be renamed in a follow-up to VideoRtpSender. - Introduce VideoRtpSenderInterface. Bug: webrtc:9517 Change-Id: I1c7b293fa6f9c320286c80533b3c584498034a38 Reviewed-on: https://webrtc-review.googlesource.com/88240 Commit-Queue: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24009}
This commit is contained in:

committed by
Commit Bot

parent
e1d7b23915
commit
dbdb3a0079
@ -19,7 +19,6 @@
|
||||
#include "call/payload_router.h"
|
||||
#include "common_types.h" // NOLINT(build/include)
|
||||
#include "common_video/include/video_bitrate_allocator.h"
|
||||
#include "modules/rtp_rtcp/include/flexfec_sender.h"
|
||||
#include "modules/utility/include/process_thread.h"
|
||||
#include "modules/video_coding/utility/ivf_file_writer.h"
|
||||
#include "rtc_base/weak_ptr.h"
|
||||
@ -62,8 +61,7 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
|
||||
std::map<uint32_t, RtpState> suspended_ssrcs,
|
||||
std::map<uint32_t, RtpPayloadState> suspended_payload_states,
|
||||
VideoEncoderConfig::ContentType content_type,
|
||||
std::unique_ptr<FecController> fec_controller,
|
||||
RateLimiter* retransmission_limiter);
|
||||
std::unique_ptr<FecController> fec_controller);
|
||||
~VideoSendStreamImpl() override;
|
||||
|
||||
// RegisterProcessThread register |module_process_thread| with those objects
|
||||
@ -74,14 +72,15 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
|
||||
void RegisterProcessThread(ProcessThread* module_process_thread);
|
||||
void DeRegisterProcessThread();
|
||||
|
||||
void SignalNetworkState(NetworkState state);
|
||||
bool DeliverRtcp(const uint8_t* packet, size_t length);
|
||||
void UpdateActiveSimulcastLayers(const std::vector<bool> active_layers);
|
||||
void Start();
|
||||
void Stop();
|
||||
|
||||
VideoSendStream::RtpStateMap GetRtpStates() const;
|
||||
VideoSendStream::RtpPayloadStateMap GetRtpPayloadStates() const;
|
||||
// TODO(holmer): Move these to RtpTransportControllerSend.
|
||||
std::map<uint32_t, RtpState> GetRtpStates() const;
|
||||
|
||||
std::map<uint32_t, RtpPayloadState> GetRtpPayloadStates() const;
|
||||
|
||||
void EnableEncodedFrameRecording(const std::vector<rtc::PlatformFile>& files,
|
||||
size_t byte_limit);
|
||||
@ -144,11 +143,8 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
|
||||
|
||||
SendStatisticsProxy* const stats_proxy_;
|
||||
const VideoSendStream::Config* const config_;
|
||||
std::map<uint32_t, RtpState> suspended_ssrcs_;
|
||||
|
||||
std::unique_ptr<FecController> fec_controller_;
|
||||
ProcessThread* module_process_thread_;
|
||||
rtc::ThreadChecker module_process_thread_checker_;
|
||||
rtc::TaskQueue* const worker_queue_;
|
||||
|
||||
rtc::CriticalSection encoder_activity_crit_sect_;
|
||||
@ -159,9 +155,6 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
|
||||
RtpTransportControllerSendInterface* const transport_;
|
||||
BitrateAllocatorInterface* const bitrate_allocator_;
|
||||
|
||||
// TODO(brandtr): Move ownership to PayloadRouter.
|
||||
std::unique_ptr<FlexfecSender> flexfec_sender_;
|
||||
|
||||
rtc::CriticalSection ivf_writers_crit_;
|
||||
std::unique_ptr<IvfFileWriter>
|
||||
file_writers_[kMaxSimulcastStreams] RTC_GUARDED_BY(ivf_writers_crit_);
|
||||
@ -177,9 +170,7 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
|
||||
EncoderRtcpFeedback encoder_feedback_;
|
||||
|
||||
RtcpBandwidthObserver* const bandwidth_observer_;
|
||||
// RtpRtcp modules, declared here as they use other members on construction.
|
||||
const std::vector<RtpRtcp*> rtp_rtcp_modules_;
|
||||
PayloadRouter payload_router_;
|
||||
VideoRtpSenderInterface* const payload_router_;
|
||||
|
||||
// |weak_ptr_| to our self. This is used since we can not call
|
||||
// |weak_ptr_factory_.GetWeakPtr| from multiple sequences but it is ok to copy
|
||||
|
Reference in New Issue
Block a user