blob: b6d53f8d8dcb5959b3b8869474d466ac866bc686 [file] [log] [blame]
Erik Språngc84cd952018-10-15 11:55:13 +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_DECODER_H_
12#define API_TEST_MOCK_VIDEO_DECODER_H_
13
14#include "api/video_codecs/video_decoder.h"
15#include "test/gmock.h"
16
17namespace webrtc {
18
19class MockDecodedImageCallback : public DecodedImageCallback {
20 public:
Danil Chapovalovfc115192020-05-08 15:03:03 +020021 MOCK_METHOD(int32_t,
22 Decoded,
23 (VideoFrame & decoded_image), // NOLINT
24 (override));
25 MOCK_METHOD(int32_t,
26 Decoded,
27 (VideoFrame & decoded_image, // NOLINT
28 int64_t decode_time_ms),
29 (override));
30 MOCK_METHOD(void,
31 Decoded,
32 (VideoFrame & decoded_image, // NOLINT
33 absl::optional<int32_t> decode_time_ms,
34 absl::optional<uint8_t> qp),
35 (override));
Erik Språngc84cd952018-10-15 11:55:13 +020036};
37
38class MockVideoDecoder : public VideoDecoder {
39 public:
Danil Chapovalov355b8d22021-08-13 16:50:37 +020040 MockVideoDecoder() {
41 // Make `Configure` succeed by default, so that individual tests that
42 // verify other methods wouldn't need to stub `Configure`.
43 ON_CALL(*this, Configure).WillByDefault(testing::Return(true));
44 }
45
Danil Chapovalovecc46ef2021-08-09 15:30:47 +020046 MOCK_METHOD(bool, Configure, (const Settings& settings), (override));
Danil Chapovalovfc115192020-05-08 15:03:03 +020047 MOCK_METHOD(int32_t,
Danil Chapovalovfc115192020-05-08 15:03:03 +020048 Decode,
49 (const EncodedImage& input_image,
50 bool missing_frames,
51 int64_t render_time_ms),
52 (override));
53 MOCK_METHOD(int32_t,
54 RegisterDecodeCompleteCallback,
55 (DecodedImageCallback * callback),
56 (override));
57 MOCK_METHOD(int32_t, Release, (), (override));
Erik Språngc84cd952018-10-15 11:55:13 +020058};
59
60} // namespace webrtc
61
62#endif // API_TEST_MOCK_VIDEO_DECODER_H_