libstdc++: fix incomplete type in rtcp_receiver
libstdc++ does not allow incomplete type for T2 with std::pair<T1,T2>, which is used by std::unordered_map. Include full definition of TmmbrInformation, RrtrInformation and LastFirStatus. Bug: chromium:957519 Change-Id: I00cad6d5e5a782791f5f64b4e38d7738b2c5ae87 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/217180 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33897}
This commit is contained in:

committed by
WebRTC LUCI CQ

parent
6072275e4a
commit
269467210d
@ -116,44 +116,6 @@ struct RTCPReceiver::PacketInformation {
|
||||
std::unique_ptr<rtcp::LossNotification> loss_notification;
|
||||
};
|
||||
|
||||
// Structure for handing TMMBR and TMMBN rtcp messages (RFC5104, section 3.5.4).
|
||||
struct RTCPReceiver::TmmbrInformation {
|
||||
struct TimedTmmbrItem {
|
||||
rtcp::TmmbItem tmmbr_item;
|
||||
int64_t last_updated_ms;
|
||||
};
|
||||
|
||||
int64_t last_time_received_ms = 0;
|
||||
|
||||
bool ready_for_delete = false;
|
||||
|
||||
std::vector<rtcp::TmmbItem> tmmbn;
|
||||
std::map<uint32_t, TimedTmmbrItem> tmmbr;
|
||||
};
|
||||
|
||||
// Structure for storing received RRTR RTCP messages (RFC3611, section 4.4).
|
||||
struct RTCPReceiver::RrtrInformation {
|
||||
RrtrInformation(uint32_t ssrc,
|
||||
uint32_t received_remote_mid_ntp_time,
|
||||
uint32_t local_receive_mid_ntp_time)
|
||||
: ssrc(ssrc),
|
||||
received_remote_mid_ntp_time(received_remote_mid_ntp_time),
|
||||
local_receive_mid_ntp_time(local_receive_mid_ntp_time) {}
|
||||
|
||||
uint32_t ssrc;
|
||||
// Received NTP timestamp in compact representation.
|
||||
uint32_t received_remote_mid_ntp_time;
|
||||
// NTP time when the report was received in compact representation.
|
||||
uint32_t local_receive_mid_ntp_time;
|
||||
};
|
||||
|
||||
struct RTCPReceiver::LastFirStatus {
|
||||
LastFirStatus(int64_t now_ms, uint8_t sequence_number)
|
||||
: request_ms(now_ms), sequence_number(sequence_number) {}
|
||||
int64_t request_ms;
|
||||
uint8_t sequence_number;
|
||||
};
|
||||
|
||||
RTCPReceiver::RTCPReceiver(const RtpRtcpInterface::Configuration& config,
|
||||
ModuleRtpRtcp* owner)
|
||||
: clock_(config.clock),
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_nack_stats.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/dlrr.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/tmmb_item.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_rtcp_interface.h"
|
||||
#include "rtc_base/synchronization/mutex.h"
|
||||
#include "rtc_base/thread_annotations.h"
|
||||
@ -143,9 +144,45 @@ class RTCPReceiver final {
|
||||
};
|
||||
|
||||
struct PacketInformation;
|
||||
struct TmmbrInformation;
|
||||
struct RrtrInformation;
|
||||
struct LastFirStatus;
|
||||
|
||||
// Structure for handing TMMBR and TMMBN rtcp messages (RFC5104,
|
||||
// section 3.5.4).
|
||||
struct TmmbrInformation {
|
||||
struct TimedTmmbrItem {
|
||||
rtcp::TmmbItem tmmbr_item;
|
||||
int64_t last_updated_ms;
|
||||
};
|
||||
|
||||
int64_t last_time_received_ms = 0;
|
||||
|
||||
bool ready_for_delete = false;
|
||||
|
||||
std::vector<rtcp::TmmbItem> tmmbn;
|
||||
std::map<uint32_t, TimedTmmbrItem> tmmbr;
|
||||
};
|
||||
|
||||
// Structure for storing received RRTR RTCP messages (RFC3611, section 4.4).
|
||||
struct RrtrInformation {
|
||||
RrtrInformation(uint32_t ssrc,
|
||||
uint32_t received_remote_mid_ntp_time,
|
||||
uint32_t local_receive_mid_ntp_time)
|
||||
: ssrc(ssrc),
|
||||
received_remote_mid_ntp_time(received_remote_mid_ntp_time),
|
||||
local_receive_mid_ntp_time(local_receive_mid_ntp_time) {}
|
||||
|
||||
uint32_t ssrc;
|
||||
// Received NTP timestamp in compact representation.
|
||||
uint32_t received_remote_mid_ntp_time;
|
||||
// NTP time when the report was received in compact representation.
|
||||
uint32_t local_receive_mid_ntp_time;
|
||||
};
|
||||
|
||||
struct LastFirStatus {
|
||||
LastFirStatus(int64_t now_ms, uint8_t sequence_number)
|
||||
: request_ms(now_ms), sequence_number(sequence_number) {}
|
||||
int64_t request_ms;
|
||||
uint8_t sequence_number;
|
||||
};
|
||||
|
||||
// TODO(boivie): `ReportBlockDataMap` and `ReportBlockMap` should be converted
|
||||
// to std::unordered_map, but as there are too many tests that assume a
|
||||
|
Reference in New Issue
Block a user