• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 <set>
15 #include <utility>
16 #include <vector>
17 
18 #include "testing/gmock/include/gmock/gmock.h"
19 
20 #include "webrtc/modules/include/module.h"
21 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
22 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
23 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
24 
25 namespace webrtc {
26 
27 class MockRtpData : public RtpData {
28  public:
29   MOCK_METHOD3(OnReceivedPayloadData,
30                int32_t(const uint8_t* payloadData,
31                        const size_t payloadSize,
32                        const WebRtcRTPHeader* rtpHeader));
33 
34   MOCK_METHOD2(OnRecoveredPacket,
35                bool(const uint8_t* packet, size_t packet_length));
36 };
37 
38 class MockRtpRtcp : public RtpRtcp {
39  public:
40   MOCK_METHOD1(RegisterDefaultModule,
41       int32_t(RtpRtcp* module));
42   MOCK_METHOD0(DeRegisterDefaultModule,
43       int32_t());
44   MOCK_METHOD0(DefaultModuleRegistered,
45       bool());
46   MOCK_METHOD0(NumberChildModules,
47       uint32_t());
48   MOCK_METHOD1(RegisterSyncModule,
49       int32_t(RtpRtcp* module));
50   MOCK_METHOD0(DeRegisterSyncModule,
51       int32_t());
52   MOCK_METHOD2(IncomingRtcpPacket,
53       int32_t(const uint8_t* incomingPacket, size_t packetLength));
54   MOCK_METHOD1(SetRemoteSSRC, void(const uint32_t ssrc));
55   MOCK_METHOD4(IncomingAudioNTP,
56       int32_t(const uint32_t audioReceivedNTPsecs,
57               const uint32_t audioReceivedNTPfrac,
58               const uint32_t audioRTCPArrivalTimeSecs,
59               const uint32_t audioRTCPArrivalTimeFrac));
60   MOCK_METHOD0(InitSender,
61       int32_t());
62   MOCK_METHOD1(RegisterSendTransport,
63       int32_t(Transport* outgoingTransport));
64   MOCK_METHOD1(SetMaxTransferUnit,
65       int32_t(const uint16_t size));
66   MOCK_METHOD3(SetTransportOverhead,
67       int32_t(const bool TCP, const bool IPV6,
68               const uint8_t authenticationOverhead));
69   MOCK_CONST_METHOD0(MaxPayloadLength,
70       uint16_t());
71   MOCK_CONST_METHOD0(MaxDataPayloadLength,
72       uint16_t());
73   MOCK_METHOD1(RegisterSendPayload,
74       int32_t(const CodecInst& voiceCodec));
75   MOCK_METHOD1(RegisterSendPayload,
76       int32_t(const VideoCodec& videoCodec));
77   MOCK_METHOD1(DeRegisterSendPayload,
78       int32_t(const int8_t payloadType));
79   MOCK_METHOD2(RegisterSendRtpHeaderExtension,
80       int32_t(const RTPExtensionType type, const uint8_t id));
81   MOCK_METHOD1(DeregisterSendRtpHeaderExtension,
82       int32_t(const RTPExtensionType type));
83   MOCK_CONST_METHOD0(StartTimestamp,
84       uint32_t());
85   MOCK_METHOD1(SetStartTimestamp, void(const uint32_t timestamp));
86   MOCK_CONST_METHOD0(SequenceNumber,
87       uint16_t());
88   MOCK_METHOD1(SetSequenceNumber, void(const uint16_t seq));
89   MOCK_METHOD2(SetRtpStateForSsrc,
90                bool(uint32_t ssrc, const RtpState& rtp_state));
91   MOCK_METHOD2(GetRtpStateForSsrc, bool(uint32_t ssrc, RtpState* rtp_state));
92   MOCK_CONST_METHOD0(SSRC,
93       uint32_t());
94   MOCK_METHOD1(SetSSRC,
95       void(const uint32_t ssrc));
96   MOCK_CONST_METHOD1(CSRCs,
97       int32_t(uint32_t arrOfCSRC[kRtpCsrcSize]));
98   MOCK_METHOD1(SetCsrcs, void(const std::vector<uint32_t>& csrcs));
99   MOCK_METHOD1(SetCSRCStatus,
100       int32_t(const bool include));
101   MOCK_METHOD1(SetRtxSendStatus, void(int modes));
102   MOCK_CONST_METHOD0(RtxSendStatus, int());
103   MOCK_METHOD1(SetRtxSsrc,
104       void(uint32_t));
105   MOCK_METHOD2(SetRtxSendPayloadType, void(int, int));
106   MOCK_CONST_METHOD0(RtxSendPayloadType, std::pair<int, int>());
107   MOCK_METHOD1(SetSendingStatus,
108       int32_t(const bool sending));
109   MOCK_CONST_METHOD0(Sending,
110       bool());
111   MOCK_METHOD1(SetSendingMediaStatus, void(const bool sending));
112   MOCK_CONST_METHOD0(SendingMedia,
113       bool());
114   MOCK_CONST_METHOD4(BitrateSent,
115                      void(uint32_t* totalRate,
116                           uint32_t* videoRate,
117                           uint32_t* fecRate,
118                           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 size_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       size_t(size_t bytes));
137   MOCK_METHOD2(RegisterRtcpObservers,
138       void(RtcpIntraFrameObserver* intraFrameCallback,
139            RtcpBandwidthObserver* bandwidthCallback));
140   MOCK_CONST_METHOD0(RTCP, RtcpMode());
141   MOCK_METHOD1(SetRTCPStatus, void(const RtcpMode method));
142   MOCK_METHOD1(SetCNAME,
143       int32_t(const char cName[RTCP_CNAME_SIZE]));
144   MOCK_CONST_METHOD2(RemoteCNAME,
145       int32_t(const uint32_t remoteSSRC,
146               char cName[RTCP_CNAME_SIZE]));
147   MOCK_CONST_METHOD5(RemoteNTP,
148       int32_t(uint32_t *ReceivedNTPsecs,
149               uint32_t *ReceivedNTPfrac,
150               uint32_t *RTCPArrivalTimeSecs,
151               uint32_t *RTCPArrivalTimeFrac,
152               uint32_t *rtcp_timestamp));
153   MOCK_METHOD2(AddMixedCNAME,
154       int32_t(const uint32_t SSRC,
155               const char cName[RTCP_CNAME_SIZE]));
156   MOCK_METHOD1(RemoveMixedCNAME,
157       int32_t(const uint32_t SSRC));
158   MOCK_CONST_METHOD5(RTT,
159       int32_t(const uint32_t remoteSSRC,
160               int64_t* RTT,
161               int64_t* avgRTT,
162               int64_t* minRTT,
163               int64_t* maxRTT));
164   MOCK_METHOD1(SendRTCP, int32_t(RTCPPacketType packetType));
165   MOCK_METHOD1(SendCompoundRTCP,
166                int32_t(const std::set<RTCPPacketType>& packetTypes));
167   MOCK_METHOD1(SendRTCPReferencePictureSelection,
168       int32_t(const uint64_t pictureID));
169   MOCK_METHOD1(SendRTCPSliceLossIndication,
170       int32_t(const uint8_t pictureID));
171   MOCK_CONST_METHOD2(DataCountersRTP,
172       int32_t(size_t *bytesSent, uint32_t *packetsSent));
173   MOCK_CONST_METHOD2(GetSendStreamDataCounters,
174       void(StreamDataCounters*, StreamDataCounters*));
175   MOCK_CONST_METHOD3(GetRtpPacketLossStats,
176       void(bool, uint32_t, struct RtpPacketLossStats*));
177   MOCK_METHOD1(RemoteRTCPStat,
178       int32_t(RTCPSenderInfo* senderInfo));
179   MOCK_CONST_METHOD1(RemoteRTCPStat,
180       int32_t(std::vector<RTCPReportBlock>* receiveBlocks));
181   MOCK_METHOD4(SetRTCPApplicationSpecificData,
182                int32_t(const uint8_t subType,
183                        const uint32_t name,
184                        const uint8_t* data,
185                        const uint16_t length));
186   MOCK_METHOD1(SetRTCPVoIPMetrics,
187       int32_t(const RTCPVoIPMetric* VoIPMetric));
188   MOCK_METHOD1(SetRtcpXrRrtrStatus,
189       void(bool enable));
190   MOCK_CONST_METHOD0(RtcpXrRrtrStatus,
191       bool());
192   MOCK_CONST_METHOD0(REMB,
193       bool());
194   MOCK_METHOD1(SetREMBStatus, void(const bool enable));
195   MOCK_METHOD2(SetREMBData,
196                void(const uint32_t bitrate,
197                     const std::vector<uint32_t>& ssrcs));
198   MOCK_CONST_METHOD0(TMMBR,
199       bool());
200   MOCK_METHOD1(SetTMMBRStatus, void(const bool enable));
201   MOCK_METHOD1(OnBandwidthEstimateUpdate,
202       void(uint16_t bandWidthKbit));
203   MOCK_CONST_METHOD0(NACK,
204       NACKMethod());
205   MOCK_METHOD2(SetNACKStatus,
206       int32_t(const NACKMethod method, int oldestSequenceNumberToNack));
207   MOCK_CONST_METHOD0(SelectiveRetransmissions,
208       int());
209   MOCK_METHOD1(SetSelectiveRetransmissions,
210       int(uint8_t settings));
211   MOCK_METHOD2(SendNACK,
212       int32_t(const uint16_t* nackList, const uint16_t size));
213   MOCK_METHOD2(SetStorePacketsStatus,
214                void(const bool enable, const uint16_t numberToStore));
215   MOCK_CONST_METHOD0(StorePackets, bool());
216   MOCK_METHOD1(RegisterRtcpStatisticsCallback, void(RtcpStatisticsCallback*));
217   MOCK_METHOD0(GetRtcpStatisticsCallback, RtcpStatisticsCallback*());
218   MOCK_METHOD1(SendFeedbackPacket, bool(const rtcp::TransportFeedback& packet));
219   MOCK_METHOD1(RegisterAudioCallback,
220       int32_t(RtpAudioFeedback* messagesCallback));
221   MOCK_METHOD1(SetAudioPacketSize,
222       int32_t(const uint16_t packetSizeSamples));
223   MOCK_METHOD3(SendTelephoneEventOutband,
224       int32_t(const uint8_t key, const uint16_t time_ms, const uint8_t level));
225   MOCK_METHOD1(SetSendREDPayloadType,
226       int32_t(const int8_t payloadType));
227   MOCK_CONST_METHOD1(SendREDPayloadType, int32_t(int8_t* payloadType));
228   MOCK_METHOD2(SetRTPAudioLevelIndicationStatus,
229       int32_t(const bool enable, const uint8_t ID));
230   MOCK_METHOD1(SetAudioLevel,
231       int32_t(const uint8_t level_dBov));
232   MOCK_METHOD1(SetTargetSendBitrate,
233       void(uint32_t bitrate_bps));
234   MOCK_METHOD3(SetGenericFECStatus,
235                void(const bool enable,
236                     const uint8_t payload_type_red,
237                     const uint8_t payload_type_fec));
238   MOCK_METHOD3(GenericFECStatus,
239                void(bool* enable,
240                     uint8_t* payloadTypeRED,
241                     uint8_t* payloadTypeFEC));
242   MOCK_METHOD2(SetFecParameters,
243       int32_t(const FecProtectionParams* delta_params,
244               const FecProtectionParams* key_params));
245   MOCK_METHOD1(SetKeyFrameRequestMethod,
246       int32_t(const KeyFrameRequestMethod method));
247   MOCK_METHOD0(RequestKeyFrame,
248       int32_t());
249   MOCK_METHOD0(TimeUntilNextProcess,
250         int64_t());
251   MOCK_METHOD0(Process,
252         int32_t());
253   MOCK_METHOD1(RegisterSendFrameCountObserver,
254       void(FrameCountObserver*));
255   MOCK_CONST_METHOD0(GetSendFrameCountObserver,
256       FrameCountObserver*(void));
257   MOCK_METHOD1(RegisterSendChannelRtpStatisticsCallback,
258       void(StreamDataCountersCallback*));
259   MOCK_CONST_METHOD0(GetSendChannelRtpStatisticsCallback,
260       StreamDataCountersCallback*(void));
261   // Members.
262   unsigned int remote_ssrc_;
263 };
264 
265 }  // namespace webrtc
266 
267 #endif  // WEBRTC_MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_
268