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/strings/string_view.h" 21 #include "absl/types/optional.h" 22 #include "api/video/video_bitrate_allocation.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, SetLocalSsrc, (uint32_t ssrc), (override)); 38 MOCK_METHOD(void, SetMaxRtpPacketSize, (size_t size), (override)); 39 MOCK_METHOD(size_t, MaxRtpPacketSize, (), (const, override)); 40 MOCK_METHOD(void, 41 RegisterSendPayloadFrequency, 42 (int payload_type, int frequency), 43 (override)); 44 MOCK_METHOD(int32_t, 45 DeRegisterSendPayload, 46 (int8_t payload_type), 47 (override)); 48 MOCK_METHOD(void, SetExtmapAllowMixed, (bool extmap_allow_mixed), (override)); 49 MOCK_METHOD(void, 50 RegisterRtpHeaderExtension, 51 (absl::string_view uri, int id), 52 (override)); 53 MOCK_METHOD(void, 54 DeregisterSendRtpHeaderExtension, 55 (absl::string_view uri), 56 (override)); 57 MOCK_METHOD(bool, SupportsPadding, (), (const, override)); 58 MOCK_METHOD(bool, SupportsRtxPayloadPadding, (), (const, override)); 59 MOCK_METHOD(uint32_t, StartTimestamp, (), (const, override)); 60 MOCK_METHOD(void, SetStartTimestamp, (uint32_t timestamp), (override)); 61 MOCK_METHOD(uint16_t, SequenceNumber, (), (const, override)); 62 MOCK_METHOD(void, SetSequenceNumber, (uint16_t seq), (override)); 63 MOCK_METHOD(void, SetRtpState, (const RtpState& rtp_state), (override)); 64 MOCK_METHOD(void, SetRtxState, (const RtpState& rtp_state), (override)); 65 MOCK_METHOD(void, SetNonSenderRttMeasurement, (bool enabled), (override)); 66 MOCK_METHOD(RtpState, GetRtpState, (), (const, override)); 67 MOCK_METHOD(RtpState, GetRtxState, (), (const, override)); 68 MOCK_METHOD(uint32_t, SSRC, (), (const, override)); 69 MOCK_METHOD(void, SetMid, (absl::string_view mid), (override)); 70 MOCK_METHOD(void, SetCsrcs, (const std::vector<uint32_t>& csrcs), (override)); 71 MOCK_METHOD(void, SetRtxSendStatus, (int modes), (override)); 72 MOCK_METHOD(int, RtxSendStatus, (), (const, override)); 73 MOCK_METHOD(absl::optional<uint32_t>, RtxSsrc, (), (const, override)); 74 MOCK_METHOD(void, SetRtxSendPayloadType, (int, int), (override)); 75 MOCK_METHOD(absl::optional<uint32_t>, FlexfecSsrc, (), (const, override)); 76 MOCK_METHOD(int32_t, SetSendingStatus, (bool sending), (override)); 77 MOCK_METHOD(bool, Sending, (), (const, override)); 78 MOCK_METHOD(void, SetSendingMediaStatus, (bool sending), (override)); 79 MOCK_METHOD(bool, SendingMedia, (), (const, override)); 80 MOCK_METHOD(bool, IsAudioConfigured, (), (const, override)); 81 MOCK_METHOD(void, SetAsPartOfAllocation, (bool), (override)); 82 MOCK_METHOD(RtpSendRates, GetSendRates, (), (const, override)); 83 MOCK_METHOD(bool, 84 OnSendingRtpFrame, 85 (uint32_t, int64_t, int, bool), 86 (override)); 87 MOCK_METHOD(bool, 88 TrySendPacket, 89 (RtpPacketToSend * packet, const PacedPacketInfo& pacing_info), 90 (override)); 91 MOCK_METHOD(void, 92 SetFecProtectionParams, 93 (const FecProtectionParams& delta_params, 94 const FecProtectionParams& key_params), 95 (override)); 96 MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>, 97 FetchFecPackets, 98 (), 99 (override)); 100 MOCK_METHOD(void, 101 OnAbortedRetransmissions, 102 (rtc::ArrayView<const uint16_t>), 103 (override)); 104 MOCK_METHOD(void, 105 OnPacketsAcknowledged, 106 (rtc::ArrayView<const uint16_t>), 107 (override)); 108 MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>, 109 GeneratePadding, 110 (size_t target_size_bytes), 111 (override)); 112 MOCK_METHOD(std::vector<RtpSequenceNumberMap::Info>, 113 GetSentRtpPacketInfos, 114 (rtc::ArrayView<const uint16_t> sequence_numbers), 115 (const, override)); 116 MOCK_METHOD(size_t, ExpectedPerPacketOverhead, (), (const, override)); 117 MOCK_METHOD(void, OnPacketSendingThreadSwitched, (), (override)); 118 MOCK_METHOD(RtcpMode, RTCP, (), (const, override)); 119 MOCK_METHOD(void, SetRTCPStatus, (RtcpMode method), (override)); 120 MOCK_METHOD(int32_t, SetCNAME, (absl::string_view cname), (override)); 121 MOCK_METHOD(int32_t, 122 RemoteNTP, 123 (uint32_t * received_ntp_secs, 124 uint32_t* received_ntp_frac, 125 uint32_t* rtcp_arrival_time_secs, 126 uint32_t* rtcp_arrival_time_frac, 127 uint32_t* rtcp_timestamp), 128 (const, override)); 129 MOCK_METHOD(int32_t, 130 RTT, 131 (uint32_t remote_ssrc, 132 int64_t* rtt, 133 int64_t* avg_rtt, 134 int64_t* min_rtt, 135 int64_t* max_rtt), 136 (const, override)); 137 MOCK_METHOD(int64_t, ExpectedRetransmissionTimeMs, (), (const, override)); 138 MOCK_METHOD(int32_t, SendRTCP, (RTCPPacketType packet_type), (override)); 139 MOCK_METHOD(void, 140 GetSendStreamDataCounters, 141 (StreamDataCounters*, StreamDataCounters*), 142 (const, override)); 143 MOCK_METHOD(std::vector<ReportBlockData>, 144 GetLatestReportBlockData, 145 (), 146 (const, override)); 147 MOCK_METHOD(absl::optional<SenderReportStats>, 148 GetSenderReportStats, 149 (), 150 (const, override)); 151 MOCK_METHOD(absl::optional<NonSenderRttStats>, 152 GetNonSenderRttStats, 153 (), 154 (const, override)); 155 MOCK_METHOD(void, 156 SetRemb, 157 (int64_t bitrate, std::vector<uint32_t> ssrcs), 158 (override)); 159 MOCK_METHOD(void, UnsetRemb, (), (override)); 160 MOCK_METHOD(int32_t, 161 SendNACK, 162 (const uint16_t* nack_list, uint16_t size), 163 (override)); 164 MOCK_METHOD(void, 165 SendNack, 166 (const std::vector<uint16_t>& sequence_numbers), 167 (override)); 168 MOCK_METHOD(void, 169 SetStorePacketsStatus, 170 (bool enable, uint16_t number_to_store), 171 (override)); 172 MOCK_METHOD(void, 173 SendCombinedRtcpPacket, 174 (std::vector<std::unique_ptr<rtcp::RtcpPacket>> rtcp_packets), 175 (override)); 176 MOCK_METHOD(int32_t, 177 SendLossNotification, 178 (uint16_t last_decoded_seq_num, 179 uint16_t last_received_seq_num, 180 bool decodability_flag, 181 bool buffering_allowed), 182 (override)); 183 MOCK_METHOD(void, 184 SetVideoBitrateAllocation, 185 (const VideoBitrateAllocation&), 186 (override)); 187 MOCK_METHOD(RTPSender*, RtpSender, (), (override)); 188 MOCK_METHOD(const RTPSender*, RtpSender, (), (const, override)); 189 }; 190 191 } // namespace webrtc 192 193 #endif // MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 194