diff --git a/api/BUILD.gn b/api/BUILD.gn index c420b10a41..0727d82dce 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -517,6 +517,19 @@ if (rtc_include_tests) { ] } + rtc_source_set("mock_video_encoder") { + testonly = true + sources = [ + "test/mock_video_encoder.cc", + "test/mock_video_encoder.h", + ] + + deps = [ + "../api/video_codecs:video_codecs_api", + "../test:test_support", + ] + } + rtc_source_set("rtc_api_unittests") { testonly = true diff --git a/api/test/mock_video_encoder.cc b/api/test/mock_video_encoder.cc new file mode 100644 index 0000000000..a0d82b1c33 --- /dev/null +++ b/api/test/mock_video_encoder.cc @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2018 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. + */ + +#include "api/test/mock_video_encoder.h" + +namespace webrtc { + +MockEncodedImageCallback::MockEncodedImageCallback() = default; +MockEncodedImageCallback::~MockEncodedImageCallback() = default; +MockVideoEncoder::MockVideoEncoder() = default; +MockVideoEncoder::~MockVideoEncoder() = default; + +} // namespace webrtc diff --git a/api/test/mock_video_encoder.h b/api/test/mock_video_encoder.h new file mode 100644 index 0000000000..e2f0942c25 --- /dev/null +++ b/api/test/mock_video_encoder.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2018 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 API_TEST_MOCK_VIDEO_ENCODER_H_ +#define API_TEST_MOCK_VIDEO_ENCODER_H_ + +#include + +#include "api/video_codecs/video_encoder.h" +#include "test/gmock.h" + +namespace webrtc { + +class MockEncodedImageCallback : public EncodedImageCallback { + public: + MockEncodedImageCallback(); + ~MockEncodedImageCallback(); + MOCK_METHOD3(OnEncodedImage, + Result(const EncodedImage& encodedImage, + const CodecSpecificInfo* codecSpecificInfo, + const RTPFragmentationHeader* fragmentation)); +}; + +class MockVideoEncoder : public VideoEncoder { + public: + MockVideoEncoder(); + ~MockVideoEncoder(); + MOCK_CONST_METHOD2(Version, int32_t(int8_t* version, int32_t length)); + MOCK_METHOD3(InitEncode, + int32_t(const VideoCodec* codecSettings, + int32_t numberOfCores, + size_t maxPayloadSize)); + MOCK_METHOD3(Encode, + int32_t(const VideoFrame& inputImage, + const CodecSpecificInfo* codecSpecificInfo, + const std::vector* frame_types)); + MOCK_METHOD1(RegisterEncodeCompleteCallback, + int32_t(EncodedImageCallback* callback)); + MOCK_METHOD0(Release, int32_t()); + MOCK_METHOD0(Reset, int32_t()); + MOCK_METHOD2(SetChannelParameters, int32_t(uint32_t packetLoss, int64_t rtt)); + MOCK_METHOD2(SetRates, int32_t(uint32_t newBitRate, uint32_t frameRate)); + MOCK_METHOD2(SetRateAllocation, + int32_t(const VideoBitrateAllocation& newBitRate, + uint32_t frameRate)); + MOCK_CONST_METHOD0(HasTrustedRateController, bool(void)); +}; + +} // namespace webrtc + +#endif // API_TEST_MOCK_VIDEO_ENCODER_H_