Refactor RtpReceiverImpl, extracting CSRC book-keeping to its own class
Bug: webrtc:7135 Change-Id: I7ce9afe575241542e4e3f7e2e8459ee3257eec76 Reviewed-on: https://webrtc-review.googlesource.com/93466 Commit-Queue: Niels Moller <nisse@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24271}
This commit is contained in:
@ -11,7 +11,6 @@
|
||||
#ifndef MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_IMPL_H_
|
||||
#define MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_IMPL_H_
|
||||
|
||||
#include <list>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
@ -19,6 +18,7 @@
|
||||
#include "absl/types/optional.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_receiver.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/contributing_sources.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_receiver_strategy.h"
|
||||
#include "rtc_base/criticalsection.h"
|
||||
|
||||
@ -53,17 +53,8 @@ class RtpReceiverImpl : public RtpReceiver {
|
||||
|
||||
std::vector<RtpSource> GetSources() const override;
|
||||
|
||||
const std::vector<RtpSource>& ssrc_sources_for_testing() const {
|
||||
return ssrc_sources_;
|
||||
}
|
||||
|
||||
const std::list<RtpSource>& csrc_sources_for_testing() const {
|
||||
return csrc_sources_;
|
||||
}
|
||||
|
||||
private:
|
||||
void CheckSSRCChanged(const RTPHeader& rtp_header);
|
||||
void CheckCSRC(const WebRtcRTPHeader& rtp_header);
|
||||
|
||||
void UpdateSources(const absl::optional<uint8_t>& ssrc_audio_level);
|
||||
void RemoveOutdatedSources(int64_t now_ms);
|
||||
@ -77,9 +68,8 @@ class RtpReceiverImpl : public RtpReceiver {
|
||||
|
||||
// SSRCs.
|
||||
uint32_t ssrc_ RTC_GUARDED_BY(critical_section_rtp_receiver_);
|
||||
uint8_t num_csrcs_ RTC_GUARDED_BY(critical_section_rtp_receiver_);
|
||||
uint32_t current_remote_csrc_[kRtpCsrcSize] RTC_GUARDED_BY(
|
||||
critical_section_rtp_receiver_);
|
||||
|
||||
ContributingSources csrcs_ RTC_GUARDED_BY(critical_section_rtp_receiver_);
|
||||
|
||||
// Sequence number and timestamps for the latest in-order packet.
|
||||
absl::optional<uint16_t> last_received_sequence_number_
|
||||
@ -89,10 +79,7 @@ class RtpReceiverImpl : public RtpReceiver {
|
||||
int64_t last_received_frame_time_ms_
|
||||
RTC_GUARDED_BY(critical_section_rtp_receiver_);
|
||||
|
||||
std::unordered_map<uint32_t, std::list<RtpSource>::iterator>
|
||||
iterator_by_csrc_;
|
||||
// The RtpSource objects are sorted chronologically.
|
||||
std::list<RtpSource> csrc_sources_;
|
||||
std::vector<RtpSource> ssrc_sources_;
|
||||
};
|
||||
} // namespace webrtc
|
||||
|
||||
Reference in New Issue
Block a user