1 /* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 12 #define MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 13 14 #include <memory> 15 #include <set> 16 #include <string> 17 #include <utility> 18 #include <vector> 19 20 #include "absl/types/optional.h" 21 #include "api/video/video_bitrate_allocation.h" 22 #include "modules/include/module.h" 23 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" 24 #include "modules/rtp_rtcp/source/rtp_packet_to_send.h" 25 #include "modules/rtp_rtcp/source/rtp_rtcp_interface.h" 26 #include "test/gmock.h" 27 28 namespace webrtc { 29 30 class MockRtpRtcpInterface : public RtpRtcpInterface { 31 public: 32 MOCK_METHOD(void, 33 IncomingRtcpPacket, 34 (const uint8_t* incoming_packet, size_t packet_length), 35 (override)); 36 MOCK_METHOD(void, SetRemoteSSRC, (uint32_t ssrc), (override)); 37 MOCK_METHOD(void, SetMaxRtpPacketSize, (size_t size), (override)); 38 MOCK_METHOD(size_t, MaxRtpPacketSize, (), (const, override)); 39 MOCK_METHOD(void, 40 RegisterSendPayloadFrequency, 41 (int payload_type, int frequency), 42 (override)); 43 MOCK_METHOD(int32_t, 44 DeRegisterSendPayload, 45 (int8_t payload_type), 46 (override)); 47 MOCK_METHOD(void, SetExtmapAllowMixed, (bool extmap_allow_mixed), (override)); 48 MOCK_METHOD(void, 49 RegisterRtpHeaderExtension, 50 (absl::string_view uri, int id), 51 (override)); 52 MOCK_METHOD(int32_t, 53 DeregisterSendRtpHeaderExtension, 54 (RTPExtensionType type), 55 (override)); 56 MOCK_METHOD(void, 57 DeregisterSendRtpHeaderExtension, 58 (absl::string_view uri), 59 (override)); 60 MOCK_METHOD(bool, SupportsPadding, (), (const, override)); 61 MOCK_METHOD(bool, SupportsRtxPayloadPadding, (), (const, override)); 62 MOCK_METHOD(uint32_t, StartTimestamp, (), (const, override)); 63 MOCK_METHOD(void, SetStartTimestamp, (uint32_t timestamp), (override)); 64 MOCK_METHOD(uint16_t, SequenceNumber, (), (const, override)); 65 MOCK_METHOD(void, SetSequenceNumber, (uint16_t seq), (override)); 66 MOCK_METHOD(void, SetRtpState, (const RtpState& rtp_state), (override)); 67 MOCK_METHOD(void, SetRtxState, (const RtpState& rtp_state), (override)); 68 MOCK_METHOD(RtpState, GetRtpState, (), (const, override)); 69 MOCK_METHOD(RtpState, GetRtxState, (), (const, override)); 70 MOCK_METHOD(uint32_t, SSRC, (), (const, override)); 71 MOCK_METHOD(void, SetRid, (const std::string& rid), (override)); 72 MOCK_METHOD(void, SetMid, (const std::string& mid), (override)); 73 MOCK_METHOD(void, SetCsrcs, (const std::vector<uint32_t>& csrcs), (override)); 74 MOCK_METHOD(void, SetRtxSendStatus, (int modes), (override)); 75 MOCK_METHOD(int, RtxSendStatus, (), (const, override)); 76 MOCK_METHOD(absl::optional<uint32_t>, RtxSsrc, (), (const, override)); 77 MOCK_METHOD(void, SetRtxSendPayloadType, (int, int), (override)); 78 MOCK_METHOD(absl::optional<uint32_t>, FlexfecSsrc, (), (const, override)); 79 MOCK_METHOD(int32_t, SetSendingStatus, (bool sending), (override)); 80 MOCK_METHOD(bool, Sending, (), (const, override)); 81 MOCK_METHOD(void, SetSendingMediaStatus, (bool sending), (override)); 82 MOCK_METHOD(bool, SendingMedia, (), (const, override)); 83 MOCK_METHOD(bool, IsAudioConfigured, (), (const, override)); 84 MOCK_METHOD(void, SetAsPartOfAllocation, (bool), (override)); 85 MOCK_METHOD(void, 86 BitrateSent, 87 (uint32_t * total_rate, 88 uint32_t* video_rate, 89 uint32_t* fec_rate, 90 uint32_t* nack_rate), 91 (const, override)); 92 MOCK_METHOD(RtpSendRates, GetSendRates, (), (const, override)); 93 MOCK_METHOD(bool, 94 OnSendingRtpFrame, 95 (uint32_t, int64_t, int, bool), 96 (override)); 97 MOCK_METHOD(bool, 98 TrySendPacket, 99 (RtpPacketToSend * packet, const PacedPacketInfo& pacing_info), 100 (override)); 101 MOCK_METHOD(void, 102 SetFecProtectionParams, 103 (const FecProtectionParams& delta_params, 104 const FecProtectionParams& key_params), 105 (override)); 106 MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>, 107 FetchFecPackets, 108 (), 109 (override)); 110 MOCK_METHOD(void, 111 OnPacketsAcknowledged, 112 (rtc::ArrayView<const uint16_t>), 113 (override)); 114 MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>, 115 GeneratePadding, 116 (size_t target_size_bytes), 117 (override)); 118 MOCK_METHOD(std::vector<RtpSequenceNumberMap::Info>, 119 GetSentRtpPacketInfos, 120 (rtc::ArrayView<const uint16_t> sequence_numbers), 121 (const, override)); 122 MOCK_METHOD(size_t, ExpectedPerPacketOverhead, (), (const, override)); 123 MOCK_METHOD(RtcpMode, RTCP, (), (const, override)); 124 MOCK_METHOD(void, SetRTCPStatus, (RtcpMode method), (override)); 125 MOCK_METHOD(int32_t, 126 SetCNAME, 127 (const char cname[RTCP_CNAME_SIZE]), 128 (override)); 129 MOCK_METHOD(int32_t, 130 RemoteNTP, 131 (uint32_t * received_ntp_secs, 132 uint32_t* received_ntp_frac, 133 uint32_t* rtcp_arrival_time_secs, 134 uint32_t* rtcp_arrival_time_frac, 135 uint32_t* rtcp_timestamp), 136 (const, override)); 137 MOCK_METHOD(int32_t, 138 RTT, 139 (uint32_t remote_ssrc, 140 int64_t* rtt, 141 int64_t* avg_rtt, 142 int64_t* min_rtt, 143 int64_t* max_rtt), 144 (const, override)); 145 MOCK_METHOD(int64_t, ExpectedRetransmissionTimeMs, (), (const, override)); 146 MOCK_METHOD(int32_t, SendRTCP, (RTCPPacketType packet_type), (override)); 147 MOCK_METHOD(void, 148 GetSendStreamDataCounters, 149 (StreamDataCounters*, StreamDataCounters*), 150 (const, override)); 151 MOCK_METHOD(int32_t, 152 RemoteRTCPStat, 153 (std::vector<RTCPReportBlock> * receive_blocks), 154 (const, override)); 155 MOCK_METHOD(std::vector<ReportBlockData>, 156 GetLatestReportBlockData, 157 (), 158 (const, override)); 159 MOCK_METHOD(void, SetRtcpXrRrtrStatus, (bool enable), (override)); 160 MOCK_METHOD(bool, RtcpXrRrtrStatus, (), (const, override)); 161 MOCK_METHOD(void, 162 SetRemb, 163 (int64_t bitrate, std::vector<uint32_t> ssrcs), 164 (override)); 165 MOCK_METHOD(void, UnsetRemb, (), (override)); 166 MOCK_METHOD(int32_t, 167 SendNACK, 168 (const uint16_t* nack_list, uint16_t size), 169 (override)); 170 MOCK_METHOD(void, 171 SendNack, 172 (const std::vector<uint16_t>& sequence_numbers), 173 (override)); 174 MOCK_METHOD(void, 175 SetStorePacketsStatus, 176 (bool enable, uint16_t number_to_store), 177 (override)); 178 MOCK_METHOD(bool, StorePackets, (), (const, override)); 179 MOCK_METHOD(void, 180 SendCombinedRtcpPacket, 181 (std::vector<std::unique_ptr<rtcp::RtcpPacket>> rtcp_packets), 182 (override)); 183 MOCK_METHOD(int32_t, 184 SendLossNotification, 185 (uint16_t last_decoded_seq_num, 186 uint16_t last_received_seq_num, 187 bool decodability_flag, 188 bool buffering_allowed), 189 (override)); 190 MOCK_METHOD(void, 191 SetVideoBitrateAllocation, 192 (const VideoBitrateAllocation&), 193 (override)); 194 MOCK_METHOD(RTPSender*, RtpSender, (), (override)); 195 MOCK_METHOD(const RTPSender*, RtpSender, (), (const, override)); 196 }; 197 198 } // namespace webrtc 199 200 #endif // MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 201