Add rtcp observers for media receiver to RtcpTransceiverImpl
Bug: webrtc:8239 Change-Id: I7b6735f2efb87e303d1b8076c965a751db4af250 Reviewed-on: https://webrtc-review.googlesource.com/31980 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21240}
This commit is contained in:

committed by
Commit Bot

parent
e97de91d39
commit
7ca9ae2e26
@ -19,8 +19,10 @@
|
||||
#include "api/array_view.h"
|
||||
#include "api/optional.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/dlrr.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/remb.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/report_block.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/target_bitrate.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_transceiver_config.h"
|
||||
#include "rtc_base/constructormagic.h"
|
||||
#include "rtc_base/weak_ptr.h"
|
||||
@ -36,6 +38,11 @@ class RtcpTransceiverImpl {
|
||||
explicit RtcpTransceiverImpl(const RtcpTransceiverConfig& config);
|
||||
~RtcpTransceiverImpl();
|
||||
|
||||
void AddMediaReceiverObserver(uint32_t remote_ssrc,
|
||||
MediaReceiverRtcpObserver* observer);
|
||||
void RemoveMediaReceiverObserver(uint32_t remote_ssrc,
|
||||
MediaReceiverRtcpObserver* observer);
|
||||
|
||||
void ReceivePacket(rtc::ArrayView<const uint8_t> packet, int64_t now_us);
|
||||
|
||||
void SendCompoundPacket();
|
||||
@ -54,10 +61,16 @@ class RtcpTransceiverImpl {
|
||||
|
||||
void HandleReceivedPacket(const rtcp::CommonHeader& rtcp_packet_header,
|
||||
int64_t now_us);
|
||||
// Individual rtcp packet handlers.
|
||||
void HandleBye(const rtcp::CommonHeader& rtcp_packet_header);
|
||||
void HandleSenderReport(const rtcp::CommonHeader& rtcp_packet_header,
|
||||
int64_t now_us);
|
||||
void HandleExtendedReports(const rtcp::CommonHeader& rtcp_packet_header,
|
||||
int64_t now_us);
|
||||
// Extended Reports blocks handlers.
|
||||
void HandleDlrr(const rtcp::Dlrr& dlrr, int64_t now_us);
|
||||
void HandleTargetBitrate(const rtcp::TargetBitrate& target_bitrate,
|
||||
uint32_t remote_ssrc);
|
||||
|
||||
void ReschedulePeriodicCompoundPackets();
|
||||
void SchedulePeriodicCompoundPackets(int64_t delay_ms);
|
||||
@ -73,6 +86,8 @@ class RtcpTransceiverImpl {
|
||||
const RtcpTransceiverConfig config_;
|
||||
|
||||
rtc::Optional<rtcp::Remb> remb_;
|
||||
// TODO(danilchap): Remove entries from remote_senders_ that are no longer
|
||||
// needed.
|
||||
std::map<uint32_t, RemoteSenderState> remote_senders_;
|
||||
rtc::WeakPtrFactory<RtcpTransceiverImpl> ptr_factory_;
|
||||
|
||||
|
Reference in New Issue
Block a user