/* * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef WEBRTC_MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ #define WEBRTC_MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_ #include #include #include #include "testing/gmock/include/gmock/gmock.h" #include "webrtc/modules/include/module.h" #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h" namespace webrtc { class MockRtpData : public RtpData { public: MOCK_METHOD3(OnReceivedPayloadData, int32_t(const uint8_t* payloadData, const size_t payloadSize, const WebRtcRTPHeader* rtpHeader)); MOCK_METHOD2(OnRecoveredPacket, bool(const uint8_t* packet, size_t packet_length)); }; class MockRtpRtcp : public RtpRtcp { public: MOCK_METHOD1(RegisterDefaultModule, int32_t(RtpRtcp* module)); MOCK_METHOD0(DeRegisterDefaultModule, int32_t()); MOCK_METHOD0(DefaultModuleRegistered, bool()); MOCK_METHOD0(NumberChildModules, uint32_t()); MOCK_METHOD1(RegisterSyncModule, int32_t(RtpRtcp* module)); MOCK_METHOD0(DeRegisterSyncModule, int32_t()); MOCK_METHOD2(IncomingRtcpPacket, int32_t(const uint8_t* incomingPacket, size_t packetLength)); MOCK_METHOD1(SetRemoteSSRC, void(const uint32_t ssrc)); MOCK_METHOD4(IncomingAudioNTP, int32_t(const uint32_t audioReceivedNTPsecs, const uint32_t audioReceivedNTPfrac, const uint32_t audioRTCPArrivalTimeSecs, const uint32_t audioRTCPArrivalTimeFrac)); MOCK_METHOD0(InitSender, int32_t()); MOCK_METHOD1(RegisterSendTransport, int32_t(Transport* outgoingTransport)); MOCK_METHOD1(SetMaxTransferUnit, int32_t(const uint16_t size)); MOCK_METHOD3(SetTransportOverhead, int32_t(const bool TCP, const bool IPV6, const uint8_t authenticationOverhead)); MOCK_CONST_METHOD0(MaxPayloadLength, uint16_t()); MOCK_CONST_METHOD0(MaxDataPayloadLength, uint16_t()); MOCK_METHOD1(RegisterSendPayload, int32_t(const CodecInst& voiceCodec)); MOCK_METHOD1(RegisterSendPayload, int32_t(const VideoCodec& videoCodec)); MOCK_METHOD1(DeRegisterSendPayload, int32_t(const int8_t payloadType)); MOCK_METHOD2(RegisterSendRtpHeaderExtension, int32_t(const RTPExtensionType type, const uint8_t id)); MOCK_METHOD1(DeregisterSendRtpHeaderExtension, int32_t(const RTPExtensionType type)); MOCK_CONST_METHOD0(StartTimestamp, uint32_t()); MOCK_METHOD1(SetStartTimestamp, void(const uint32_t timestamp)); MOCK_CONST_METHOD0(SequenceNumber, uint16_t()); MOCK_METHOD1(SetSequenceNumber, void(const uint16_t seq)); MOCK_METHOD2(SetRtpStateForSsrc, bool(uint32_t ssrc, const RtpState& rtp_state)); MOCK_METHOD2(GetRtpStateForSsrc, bool(uint32_t ssrc, RtpState* rtp_state)); MOCK_CONST_METHOD0(SSRC, uint32_t()); MOCK_METHOD1(SetSSRC, void(const uint32_t ssrc)); MOCK_CONST_METHOD1(CSRCs, int32_t(uint32_t arrOfCSRC[kRtpCsrcSize])); MOCK_METHOD1(SetCsrcs, void(const std::vector& csrcs)); MOCK_METHOD1(SetCSRCStatus, int32_t(const bool include)); MOCK_METHOD1(SetRtxSendStatus, void(int modes)); MOCK_CONST_METHOD0(RtxSendStatus, int()); MOCK_METHOD1(SetRtxSsrc, void(uint32_t)); MOCK_METHOD2(SetRtxSendPayloadType, void(int, int)); MOCK_CONST_METHOD0(RtxSendPayloadType, std::pair()); MOCK_METHOD1(SetSendingStatus, int32_t(const bool sending)); MOCK_CONST_METHOD0(Sending, bool()); MOCK_METHOD1(SetSendingMediaStatus, void(const bool sending)); MOCK_CONST_METHOD0(SendingMedia, bool()); MOCK_CONST_METHOD4(BitrateSent, void(uint32_t* totalRate, uint32_t* videoRate, uint32_t* fecRate, uint32_t* nackRate)); MOCK_METHOD1(RegisterVideoBitrateObserver, void(BitrateStatisticsObserver*)); MOCK_CONST_METHOD0(GetVideoBitrateObserver, BitrateStatisticsObserver*(void)); MOCK_CONST_METHOD1(EstimatedReceiveBandwidth, int(uint32_t* available_bandwidth)); MOCK_METHOD8(SendOutgoingData, int32_t(const FrameType frameType, const int8_t payloadType, const uint32_t timeStamp, int64_t capture_time_ms, const uint8_t* payloadData, const size_t payloadSize, const RTPFragmentationHeader* fragmentation, const RTPVideoHeader* rtpVideoHdr)); MOCK_METHOD4(TimeToSendPacket, bool(uint32_t ssrc, uint16_t sequence_number, int64_t capture_time_ms, bool retransmission)); MOCK_METHOD1(TimeToSendPadding, size_t(size_t bytes)); MOCK_METHOD2(RegisterRtcpObservers, void(RtcpIntraFrameObserver* intraFrameCallback, RtcpBandwidthObserver* bandwidthCallback)); MOCK_CONST_METHOD0(RTCP, RtcpMode()); MOCK_METHOD1(SetRTCPStatus, void(const RtcpMode method)); MOCK_METHOD1(SetCNAME, int32_t(const char cName[RTCP_CNAME_SIZE])); MOCK_CONST_METHOD2(RemoteCNAME, int32_t(const uint32_t remoteSSRC, char cName[RTCP_CNAME_SIZE])); MOCK_CONST_METHOD5(RemoteNTP, int32_t(uint32_t *ReceivedNTPsecs, uint32_t *ReceivedNTPfrac, uint32_t *RTCPArrivalTimeSecs, uint32_t *RTCPArrivalTimeFrac, uint32_t *rtcp_timestamp)); MOCK_METHOD2(AddMixedCNAME, int32_t(const uint32_t SSRC, const char cName[RTCP_CNAME_SIZE])); MOCK_METHOD1(RemoveMixedCNAME, int32_t(const uint32_t SSRC)); MOCK_CONST_METHOD5(RTT, int32_t(const uint32_t remoteSSRC, int64_t* RTT, int64_t* avgRTT, int64_t* minRTT, int64_t* maxRTT)); MOCK_METHOD1(SendRTCP, int32_t(RTCPPacketType packetType)); MOCK_METHOD1(SendCompoundRTCP, int32_t(const std::set& packetTypes)); MOCK_METHOD1(SendRTCPReferencePictureSelection, int32_t(const uint64_t pictureID)); MOCK_METHOD1(SendRTCPSliceLossIndication, int32_t(const uint8_t pictureID)); MOCK_CONST_METHOD2(DataCountersRTP, int32_t(size_t *bytesSent, uint32_t *packetsSent)); MOCK_CONST_METHOD2(GetSendStreamDataCounters, void(StreamDataCounters*, StreamDataCounters*)); MOCK_CONST_METHOD3(GetRtpPacketLossStats, void(bool, uint32_t, struct RtpPacketLossStats*)); MOCK_METHOD1(RemoteRTCPStat, int32_t(RTCPSenderInfo* senderInfo)); MOCK_CONST_METHOD1(RemoteRTCPStat, int32_t(std::vector* receiveBlocks)); MOCK_METHOD4(SetRTCPApplicationSpecificData, int32_t(const uint8_t subType, const uint32_t name, const uint8_t* data, const uint16_t length)); MOCK_METHOD1(SetRTCPVoIPMetrics, int32_t(const RTCPVoIPMetric* VoIPMetric)); MOCK_METHOD1(SetRtcpXrRrtrStatus, void(bool enable)); MOCK_CONST_METHOD0(RtcpXrRrtrStatus, bool()); MOCK_CONST_METHOD0(REMB, bool()); MOCK_METHOD1(SetREMBStatus, void(const bool enable)); MOCK_METHOD2(SetREMBData, void(const uint32_t bitrate, const std::vector& ssrcs)); MOCK_CONST_METHOD0(TMMBR, bool()); MOCK_METHOD1(SetTMMBRStatus, void(const bool enable)); MOCK_METHOD1(OnBandwidthEstimateUpdate, void(uint16_t bandWidthKbit)); MOCK_CONST_METHOD0(NACK, NACKMethod()); MOCK_METHOD2(SetNACKStatus, int32_t(const NACKMethod method, int oldestSequenceNumberToNack)); MOCK_CONST_METHOD0(SelectiveRetransmissions, int()); MOCK_METHOD1(SetSelectiveRetransmissions, int(uint8_t settings)); MOCK_METHOD2(SendNACK, int32_t(const uint16_t* nackList, const uint16_t size)); MOCK_METHOD2(SetStorePacketsStatus, void(const bool enable, const uint16_t numberToStore)); MOCK_CONST_METHOD0(StorePackets, bool()); MOCK_METHOD1(RegisterRtcpStatisticsCallback, void(RtcpStatisticsCallback*)); MOCK_METHOD0(GetRtcpStatisticsCallback, RtcpStatisticsCallback*()); MOCK_METHOD1(SendFeedbackPacket, bool(const rtcp::TransportFeedback& packet)); MOCK_METHOD1(RegisterAudioCallback, int32_t(RtpAudioFeedback* messagesCallback)); MOCK_METHOD1(SetAudioPacketSize, int32_t(const uint16_t packetSizeSamples)); MOCK_METHOD3(SendTelephoneEventOutband, int32_t(const uint8_t key, const uint16_t time_ms, const uint8_t level)); MOCK_METHOD1(SetSendREDPayloadType, int32_t(const int8_t payloadType)); MOCK_CONST_METHOD1(SendREDPayloadType, int32_t(int8_t* payloadType)); MOCK_METHOD2(SetRTPAudioLevelIndicationStatus, int32_t(const bool enable, const uint8_t ID)); MOCK_METHOD1(SetAudioLevel, int32_t(const uint8_t level_dBov)); MOCK_METHOD1(SetTargetSendBitrate, void(uint32_t bitrate_bps)); MOCK_METHOD3(SetGenericFECStatus, void(const bool enable, const uint8_t payload_type_red, const uint8_t payload_type_fec)); MOCK_METHOD3(GenericFECStatus, void(bool* enable, uint8_t* payloadTypeRED, uint8_t* payloadTypeFEC)); MOCK_METHOD2(SetFecParameters, int32_t(const FecProtectionParams* delta_params, const FecProtectionParams* key_params)); MOCK_METHOD1(SetKeyFrameRequestMethod, int32_t(const KeyFrameRequestMethod method)); MOCK_METHOD0(RequestKeyFrame, int32_t()); MOCK_METHOD0(TimeUntilNextProcess, int64_t()); MOCK_METHOD0(Process, int32_t()); MOCK_METHOD1(RegisterSendFrameCountObserver, void(FrameCountObserver*)); MOCK_CONST_METHOD0(GetSendFrameCountObserver, FrameCountObserver*(void)); MOCK_METHOD1(RegisterSendChannelRtpStatisticsCallback, void(StreamDataCountersCallback*)); MOCK_CONST_METHOD0(GetSendChannelRtpStatisticsCallback, StreamDataCountersCallback*(void)); // Members. unsigned int remote_ssrc_; }; } // namespace webrtc #endif // WEBRTC_MODULES_RTP_RTCP_MOCKS_MOCK_RTP_RTCP_H_