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(RtpSendRates, GetSendRates, (), (const, override)); 86 MOCK_METHOD(bool, 87 OnSendingRtpFrame, 88 (uint32_t, int64_t, int, bool), 89 (override)); 90 MOCK_METHOD(bool, 91 TrySendPacket, 92 (RtpPacketToSend * packet, const PacedPacketInfo& pacing_info), 93 (override)); 94 MOCK_METHOD(void, 95 SetFecProtectionParams, 96 (const FecProtectionParams& delta_params, 97 const FecProtectionParams& key_params), 98 (override)); 99 MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>, 100 FetchFecPackets, 101 (), 102 (override)); 103 MOCK_METHOD(void, 104 OnPacketsAcknowledged, 105 (rtc::ArrayView<const uint16_t>), 106 (override)); 107 MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>, 108 GeneratePadding, 109 (size_t target_size_bytes), 110 (override)); 111 MOCK_METHOD(std::vector<RtpSequenceNumberMap::Info>, 112 GetSentRtpPacketInfos, 113 (rtc::ArrayView<const uint16_t> sequence_numbers), 114 (const, override)); 115 MOCK_METHOD(size_t, ExpectedPerPacketOverhead, (), (const, override)); 116 MOCK_METHOD(RtcpMode, RTCP, (), (const, override)); 117 MOCK_METHOD(void, SetRTCPStatus, (RtcpMode method), (override)); 118 MOCK_METHOD(int32_t, 119 SetCNAME, 120 (const char cname[RTCP_CNAME_SIZE]), 121 (override)); 122 MOCK_METHOD(int32_t, 123 RemoteNTP, 124 (uint32_t * received_ntp_secs, 125 uint32_t* received_ntp_frac, 126 uint32_t* rtcp_arrival_time_secs, 127 uint32_t* rtcp_arrival_time_frac, 128 uint32_t* rtcp_timestamp), 129 (const, override)); 130 MOCK_METHOD(int32_t, 131 RTT, 132 (uint32_t remote_ssrc, 133 int64_t* rtt, 134 int64_t* avg_rtt, 135 int64_t* min_rtt, 136 int64_t* max_rtt), 137 (const, override)); 138 MOCK_METHOD(int64_t, ExpectedRetransmissionTimeMs, (), (const, override)); 139 MOCK_METHOD(int32_t, SendRTCP, (RTCPPacketType packet_type), (override)); 140 MOCK_METHOD(void, 141 GetSendStreamDataCounters, 142 (StreamDataCounters*, StreamDataCounters*), 143 (const, override)); 144 MOCK_METHOD(std::vector<ReportBlockData>, 145 GetLatestReportBlockData, 146 (), 147 (const, override)); 148 MOCK_METHOD(absl::optional<SenderReportStats>, 149 GetSenderReportStats, 150 (), 151 (const, override)); 152 MOCK_METHOD(void, 153 SetRemb, 154 (int64_t bitrate, std::vector<uint32_t> ssrcs), 155 (override)); 156 MOCK_METHOD(void, UnsetRemb, (), (override)); 157 MOCK_METHOD(int32_t, 158 SendNACK, 159 (const uint16_t* nack_list, uint16_t size), 160 (override)); 161 MOCK_METHOD(void, 162 SendNack, 163 (const std::vector<uint16_t>& sequence_numbers), 164 (override)); 165 MOCK_METHOD(void, 166 SetStorePacketsStatus, 167 (bool enable, uint16_t number_to_store), 168 (override)); 169 MOCK_METHOD(void, 170 SendCombinedRtcpPacket, 171 (std::vector<std::unique_ptr<rtcp::RtcpPacket>> rtcp_packets), 172 (override)); 173 MOCK_METHOD(int32_t, 174 SendLossNotification, 175 (uint16_t last_decoded_seq_num, 176 uint16_t last_received_seq_num, 177 bool decodability_flag, 178 bool buffering_allowed), 179 (override)); 180 MOCK_METHOD(void, 181 SetVideoBitrateAllocation, 182 (const VideoBitrateAllocation&), 183 (override)); 184 MOCK_METHOD(RTPSender*, RtpSender, (), (override)); 185 MOCK_METHOD(const RTPSender*, RtpSender, (), (const, override)); 186 }; 187 188 } // namespace webrtc 189 190 #endif // MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 191