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 WEBRTC_MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 12 #define WEBRTC_MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 13 14 #include "testing/gmock/include/gmock/gmock.h" 15 16 #include "webrtc/modules/interface/module.h" 17 #include "webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h" 18 #include "webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h" 19 20 namespace webrtc { 21 22 class MockRtpData : public RtpData { 23 public: 24 MOCK_METHOD3(OnReceivedPayloadData, 25 int32_t(const uint8_t* payloadData, 26 const uint16_t payloadSize, 27 const WebRtcRTPHeader* rtpHeader)); 28 29 MOCK_METHOD2(OnRecoveredPacket, 30 bool(const uint8_t* packet, int packet_length)); 31 }; 32 33 class MockRtpRtcp : public RtpRtcp { 34 public: 35 MOCK_METHOD1(ChangeUniqueId, 36 int32_t(const int32_t id)); 37 MOCK_METHOD1(RegisterDefaultModule, 38 int32_t(RtpRtcp* module)); 39 MOCK_METHOD0(DeRegisterDefaultModule, 40 int32_t()); 41 MOCK_METHOD0(DefaultModuleRegistered, 42 bool()); 43 MOCK_METHOD0(NumberChildModules, 44 uint32_t()); 45 MOCK_METHOD1(RegisterSyncModule, 46 int32_t(RtpRtcp* module)); 47 MOCK_METHOD0(DeRegisterSyncModule, 48 int32_t()); 49 MOCK_METHOD2(IncomingRtcpPacket, 50 int32_t(const uint8_t* incomingPacket, uint16_t packetLength)); 51 MOCK_METHOD1(SetRemoteSSRC, void(const uint32_t ssrc)); 52 MOCK_METHOD4(IncomingAudioNTP, 53 int32_t(const uint32_t audioReceivedNTPsecs, 54 const uint32_t audioReceivedNTPfrac, 55 const uint32_t audioRTCPArrivalTimeSecs, 56 const uint32_t audioRTCPArrivalTimeFrac)); 57 MOCK_METHOD0(InitSender, 58 int32_t()); 59 MOCK_METHOD1(RegisterSendTransport, 60 int32_t(Transport* outgoingTransport)); 61 MOCK_METHOD1(SetMaxTransferUnit, 62 int32_t(const uint16_t size)); 63 MOCK_METHOD3(SetTransportOverhead, 64 int32_t(const bool TCP, const bool IPV6, 65 const uint8_t authenticationOverhead)); 66 MOCK_CONST_METHOD0(MaxPayloadLength, 67 uint16_t()); 68 MOCK_CONST_METHOD0(MaxDataPayloadLength, 69 uint16_t()); 70 MOCK_METHOD1(RegisterSendPayload, 71 int32_t(const CodecInst& voiceCodec)); 72 MOCK_METHOD1(RegisterSendPayload, 73 int32_t(const VideoCodec& videoCodec)); 74 MOCK_METHOD1(DeRegisterSendPayload, 75 int32_t(const int8_t payloadType)); 76 MOCK_METHOD2(RegisterSendRtpHeaderExtension, 77 int32_t(const RTPExtensionType type, const uint8_t id)); 78 MOCK_METHOD1(DeregisterSendRtpHeaderExtension, 79 int32_t(const RTPExtensionType type)); 80 MOCK_CONST_METHOD0(StartTimestamp, 81 uint32_t()); 82 MOCK_METHOD1(SetStartTimestamp, 83 int32_t(const uint32_t timestamp)); 84 MOCK_CONST_METHOD0(SequenceNumber, 85 uint16_t()); 86 MOCK_METHOD1(SetSequenceNumber, 87 int32_t(const uint16_t seq)); 88 MOCK_METHOD2(SetRtpStateForSsrc, 89 void(uint32_t ssrc, const RtpState& rtp_state)); 90 MOCK_METHOD2(GetRtpStateForSsrc, bool(uint32_t ssrc, RtpState* rtp_state)); 91 MOCK_CONST_METHOD0(SSRC, 92 uint32_t()); 93 MOCK_METHOD1(SetSSRC, 94 void(const uint32_t ssrc)); 95 MOCK_CONST_METHOD1(CSRCs, 96 int32_t(uint32_t arrOfCSRC[kRtpCsrcSize])); 97 MOCK_METHOD2(SetCSRCs, 98 int32_t(const uint32_t arrOfCSRC[kRtpCsrcSize], const uint8_t arrLength)); 99 MOCK_METHOD1(SetCSRCStatus, 100 int32_t(const bool include)); 101 MOCK_METHOD1(SetRTXSendStatus, 102 void(int modes)); 103 MOCK_CONST_METHOD3(RTXSendStatus, 104 void(int* modes, uint32_t* ssrc, int* payload_type)); 105 MOCK_METHOD1(SetRtxSsrc, 106 void(uint32_t)); 107 MOCK_METHOD1(SetRtxSendPayloadType, 108 void(int)); 109 MOCK_METHOD1(SetSendingStatus, 110 int32_t(const bool sending)); 111 MOCK_CONST_METHOD0(Sending, 112 bool()); 113 MOCK_METHOD1(SetSendingMediaStatus, 114 int32_t(const bool sending)); 115 MOCK_CONST_METHOD0(SendingMedia, 116 bool()); 117 MOCK_CONST_METHOD4(BitrateSent, 118 void(uint32_t* totalRate, uint32_t* videoRate, uint32_t* fecRate, uint32_t* nackRate)); 119 MOCK_METHOD1(RegisterVideoBitrateObserver, void(BitrateStatisticsObserver*)); 120 MOCK_CONST_METHOD0(GetVideoBitrateObserver, BitrateStatisticsObserver*(void)); 121 MOCK_CONST_METHOD1(EstimatedReceiveBandwidth, 122 int(uint32_t* available_bandwidth)); 123 MOCK_METHOD8(SendOutgoingData, 124 int32_t(const FrameType frameType, 125 const int8_t payloadType, 126 const uint32_t timeStamp, 127 int64_t capture_time_ms, 128 const uint8_t* payloadData, 129 const uint32_t payloadSize, 130 const RTPFragmentationHeader* fragmentation, 131 const RTPVideoHeader* rtpVideoHdr)); 132 MOCK_METHOD4(TimeToSendPacket, 133 bool(uint32_t ssrc, uint16_t sequence_number, int64_t capture_time_ms, 134 bool retransmission)); 135 MOCK_METHOD1(TimeToSendPadding, 136 int(int bytes)); 137 MOCK_CONST_METHOD2(GetSendSideDelay, 138 bool(int* avg_send_delay_ms, int* max_send_delay_ms)); 139 MOCK_METHOD3(RegisterRtcpObservers, 140 void(RtcpIntraFrameObserver* intraFrameCallback, 141 RtcpBandwidthObserver* bandwidthCallback, 142 RtcpFeedback* callback)); 143 MOCK_CONST_METHOD0(RTCP, 144 RTCPMethod()); 145 MOCK_METHOD1(SetRTCPStatus, 146 int32_t(const RTCPMethod method)); 147 MOCK_METHOD1(SetCNAME, 148 int32_t(const char cName[RTCP_CNAME_SIZE])); 149 MOCK_CONST_METHOD2(RemoteCNAME, 150 int32_t(const uint32_t remoteSSRC, 151 char cName[RTCP_CNAME_SIZE])); 152 MOCK_CONST_METHOD5(RemoteNTP, 153 int32_t(uint32_t *ReceivedNTPsecs, 154 uint32_t *ReceivedNTPfrac, 155 uint32_t *RTCPArrivalTimeSecs, 156 uint32_t *RTCPArrivalTimeFrac, 157 uint32_t *rtcp_timestamp)); 158 MOCK_METHOD2(AddMixedCNAME, 159 int32_t(const uint32_t SSRC, 160 const char cName[RTCP_CNAME_SIZE])); 161 MOCK_METHOD1(RemoveMixedCNAME, 162 int32_t(const uint32_t SSRC)); 163 MOCK_CONST_METHOD5(RTT, 164 int32_t(const uint32_t remoteSSRC, uint16_t* RTT, uint16_t* avgRTT, uint16_t* minRTT, uint16_t* maxRTT)); 165 MOCK_METHOD1(ResetRTT, 166 int32_t(const uint32_t remoteSSRC)); 167 MOCK_METHOD1(SendRTCP, 168 int32_t(uint32_t rtcpPacketType)); 169 MOCK_METHOD1(SendRTCPReferencePictureSelection, 170 int32_t(const uint64_t pictureID)); 171 MOCK_METHOD1(SendRTCPSliceLossIndication, 172 int32_t(const uint8_t pictureID)); 173 MOCK_METHOD0(ResetSendDataCountersRTP, 174 int32_t()); 175 MOCK_CONST_METHOD2(DataCountersRTP, 176 int32_t(uint32_t *bytesSent, uint32_t *packetsSent)); 177 MOCK_METHOD1(RemoteRTCPStat, 178 int32_t(RTCPSenderInfo* senderInfo)); 179 MOCK_CONST_METHOD1(RemoteRTCPStat, 180 int32_t(std::vector<RTCPReportBlock>* receiveBlocks)); 181 MOCK_METHOD2(AddRTCPReportBlock, 182 int32_t(const uint32_t SSRC, const RTCPReportBlock* receiveBlock)); 183 MOCK_METHOD1(RemoveRTCPReportBlock, 184 int32_t(const uint32_t SSRC)); 185 MOCK_CONST_METHOD2(GetRtcpPacketTypeCounters, 186 void(RtcpPacketTypeCounter*, RtcpPacketTypeCounter*)); 187 MOCK_METHOD4(SetRTCPApplicationSpecificData, 188 int32_t(const uint8_t subType, const uint32_t name, const uint8_t* data, const uint16_t length)); 189 MOCK_METHOD1(SetRTCPVoIPMetrics, 190 int32_t(const RTCPVoIPMetric* VoIPMetric)); 191 MOCK_METHOD1(SetRtcpXrRrtrStatus, 192 void(bool enable)); 193 MOCK_CONST_METHOD0(RtcpXrRrtrStatus, 194 bool()); 195 MOCK_CONST_METHOD0(REMB, 196 bool()); 197 MOCK_METHOD1(SetREMBStatus, 198 int32_t(const bool enable)); 199 MOCK_METHOD3(SetREMBData, 200 int32_t(const uint32_t bitrate, const uint8_t numberOfSSRC, const uint32_t* SSRC)); 201 MOCK_CONST_METHOD0(IJ, 202 bool()); 203 MOCK_METHOD1(SetIJStatus, 204 int32_t(const bool)); 205 MOCK_CONST_METHOD0(TMMBR, 206 bool()); 207 MOCK_METHOD1(SetTMMBRStatus, 208 int32_t(const bool enable)); 209 MOCK_METHOD1(OnBandwidthEstimateUpdate, 210 void(uint16_t bandWidthKbit)); 211 MOCK_CONST_METHOD0(NACK, 212 NACKMethod()); 213 MOCK_METHOD2(SetNACKStatus, 214 int32_t(const NACKMethod method, int oldestSequenceNumberToNack)); 215 MOCK_CONST_METHOD0(SelectiveRetransmissions, 216 int()); 217 MOCK_METHOD1(SetSelectiveRetransmissions, 218 int(uint8_t settings)); 219 MOCK_METHOD2(SendNACK, 220 int32_t(const uint16_t* nackList, const uint16_t size)); 221 MOCK_METHOD2(SetStorePacketsStatus, 222 int32_t(const bool enable, const uint16_t numberToStore)); 223 MOCK_CONST_METHOD0(StorePackets, bool()); 224 MOCK_METHOD1(RegisterSendChannelRtcpStatisticsCallback, 225 void(RtcpStatisticsCallback*)); 226 MOCK_METHOD0(GetSendChannelRtcpStatisticsCallback, 227 RtcpStatisticsCallback*()); 228 MOCK_METHOD1(RegisterAudioCallback, 229 int32_t(RtpAudioFeedback* messagesCallback)); 230 MOCK_METHOD1(SetAudioPacketSize, 231 int32_t(const uint16_t packetSizeSamples)); 232 MOCK_CONST_METHOD1(SendTelephoneEventActive, 233 bool(int8_t& telephoneEvent)); 234 MOCK_METHOD3(SendTelephoneEventOutband, 235 int32_t(const uint8_t key, const uint16_t time_ms, const uint8_t level)); 236 MOCK_METHOD1(SetSendREDPayloadType, 237 int32_t(const int8_t payloadType)); 238 MOCK_CONST_METHOD1(SendREDPayloadType, 239 int32_t(int8_t& payloadType)); 240 MOCK_METHOD2(SetRTPAudioLevelIndicationStatus, 241 int32_t(const bool enable, const uint8_t ID)); 242 MOCK_CONST_METHOD2(GetRTPAudioLevelIndicationStatus, 243 int32_t(bool& enable, uint8_t& ID)); 244 MOCK_METHOD1(SetAudioLevel, 245 int32_t(const uint8_t level_dBov)); 246 MOCK_METHOD1(SetCameraDelay, 247 int32_t(const int32_t delayMS)); 248 MOCK_METHOD1(SetTargetSendBitrate, 249 void(const std::vector<uint32_t>& stream_bitrates)); 250 MOCK_METHOD3(SetGenericFECStatus, 251 int32_t(const bool enable, const uint8_t payloadTypeRED, const uint8_t payloadTypeFEC)); 252 MOCK_METHOD3(GenericFECStatus, 253 int32_t(bool& enable, uint8_t& payloadTypeRED, uint8_t& payloadTypeFEC)); 254 MOCK_METHOD2(SetFecParameters, 255 int32_t(const FecProtectionParams* delta_params, 256 const FecProtectionParams* key_params)); 257 MOCK_METHOD1(SetKeyFrameRequestMethod, 258 int32_t(const KeyFrameRequestMethod method)); 259 MOCK_METHOD0(RequestKeyFrame, 260 int32_t()); 261 MOCK_CONST_METHOD3(Version, 262 int32_t(char* version, uint32_t& remaining_buffer_in_bytes, uint32_t& position)); 263 MOCK_METHOD0(TimeUntilNextProcess, 264 int32_t()); 265 MOCK_METHOD0(Process, 266 int32_t()); 267 MOCK_METHOD1(RegisterSendFrameCountObserver, 268 void(FrameCountObserver*)); 269 MOCK_CONST_METHOD0(GetSendFrameCountObserver, 270 FrameCountObserver*(void)); 271 MOCK_METHOD1(RegisterSendChannelRtpStatisticsCallback, 272 void(StreamDataCountersCallback*)); 273 MOCK_CONST_METHOD0(GetSendChannelRtpStatisticsCallback, 274 StreamDataCountersCallback*(void)); 275 // Members. 276 unsigned int remote_ssrc_; 277 }; 278 279 } // namespace webrtc 280 281 #endif // WEBRTC_MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ 282