blob: b4ae27106af9104eeda90fde6fedb62ad491fa50 [file] [log] [blame]
Erik Språng6af1c922018-10-12 10:01:30 +02001/*
2 * Copyright (c) 2018 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 API_TEST_MOCK_VIDEO_ENCODER_H_
12#define API_TEST_MOCK_VIDEO_ENCODER_H_
13
14#include <vector>
15
16#include "api/video_codecs/video_encoder.h"
17#include "test/gmock.h"
18
19namespace webrtc {
20
21class MockEncodedImageCallback : public EncodedImageCallback {
22 public:
Danil Chapovalovfc115192020-05-08 15:03:03 +020023 MOCK_METHOD(Result,
24 OnEncodedImage,
25 (const EncodedImage& encodedImage,
Danil Chapovalov42748d82020-05-14 20:42:41 +020026 const CodecSpecificInfo*,
27 const RTPFragmentationHeader*),
Danil Chapovalovfc115192020-05-08 15:03:03 +020028 (override));
Danil Chapovalov0490c372020-08-04 13:05:43 +020029 MOCK_METHOD(Result,
30 OnEncodedImage,
31 (const EncodedImage&, const CodecSpecificInfo*),
32 (override));
Danil Chapovalovfc115192020-05-08 15:03:03 +020033 MOCK_METHOD(void, OnDroppedFrame, (DropReason reason), (override));
Erik Språng6af1c922018-10-12 10:01:30 +020034};
35
36class MockVideoEncoder : public VideoEncoder {
37 public:
Danil Chapovalovfc115192020-05-08 15:03:03 +020038 MOCK_METHOD(void,
39 SetFecControllerOverride,
Danil Chapovalov42748d82020-05-14 20:42:41 +020040 (FecControllerOverride*),
Danil Chapovalovfc115192020-05-08 15:03:03 +020041 (override));
42 MOCK_METHOD(int32_t,
43 InitEncode,
Danil Chapovalov42748d82020-05-14 20:42:41 +020044 (const VideoCodec*, int32_t numberOfCores, size_t maxPayloadSize),
Danil Chapovalovfc115192020-05-08 15:03:03 +020045 (override));
Danil Chapovalov42748d82020-05-14 20:42:41 +020046 MOCK_METHOD(int32_t,
47 InitEncode,
48 (const VideoCodec*, const VideoEncoder::Settings& settings),
49 (override));
Elad Alon370f93a2019-06-11 14:57:57 +020050
Danil Chapovalov42748d82020-05-14 20:42:41 +020051 MOCK_METHOD(int32_t,
52 Encode,
53 (const VideoFrame& inputImage,
54 const std::vector<VideoFrameType>*),
55 (override));
56 MOCK_METHOD(int32_t,
57 RegisterEncodeCompleteCallback,
58 (EncodedImageCallback*),
59 (override));
60 MOCK_METHOD(int32_t, Release, (), (override));
61 MOCK_METHOD(void,
62 SetRates,
63 (const RateControlParameters& parameters),
64 (override));
65 MOCK_METHOD(void,
66 OnPacketLossRateUpdate,
67 (float packet_loss_rate),
68 (override));
69 MOCK_METHOD(void, OnRttUpdate, (int64_t rtt_ms), (override));
70 MOCK_METHOD(void,
71 OnLossNotification,
72 (const LossNotification& loss_notification),
73 (override));
74 MOCK_METHOD(EncoderInfo, GetEncoderInfo, (), (const, override));
Erik Språng6af1c922018-10-12 10:01:30 +020075};
76
77} // namespace webrtc
78
79#endif // API_TEST_MOCK_VIDEO_ENCODER_H_