summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/api/test/mock_video_decoder.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /third_party/libwebrtc/api/test/mock_video_decoder.h
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/api/test/mock_video_decoder.h')
-rw-r--r--third_party/libwebrtc/api/test/mock_video_decoder.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/third_party/libwebrtc/api/test/mock_video_decoder.h b/third_party/libwebrtc/api/test/mock_video_decoder.h
new file mode 100644
index 0000000000..34f732ca4d
--- /dev/null
+++ b/third_party/libwebrtc/api/test/mock_video_decoder.h
@@ -0,0 +1,70 @@
+/*
+ * 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_DECODER_H_
+#define API_TEST_MOCK_VIDEO_DECODER_H_
+
+#include <utility>
+
+#include "api/video_codecs/video_decoder.h"
+#include "test/gmock.h"
+
+namespace webrtc {
+
+class MockDecodedImageCallback : public DecodedImageCallback {
+ public:
+ MOCK_METHOD(int32_t,
+ Decoded,
+ (VideoFrame & decoded_image), // NOLINT
+ (override));
+ MOCK_METHOD(int32_t,
+ Decoded,
+ (VideoFrame & decoded_image, // NOLINT
+ int64_t decode_time_ms),
+ (override));
+ MOCK_METHOD(void,
+ Decoded,
+ (VideoFrame & decoded_image, // NOLINT
+ absl::optional<int32_t> decode_time_ms,
+ absl::optional<uint8_t> qp),
+ (override));
+};
+
+class MockVideoDecoder : public VideoDecoder {
+ public:
+ MockVideoDecoder() {
+ // Make `Configure` succeed by default, so that individual tests that
+ // verify other methods wouldn't need to stub `Configure`.
+ ON_CALL(*this, Configure).WillByDefault(testing::Return(true));
+ }
+
+ ~MockVideoDecoder() override { Destruct(); }
+
+ MOCK_METHOD(bool, Configure, (const Settings& settings), (override));
+ MOCK_METHOD(int32_t,
+ Decode,
+ (const EncodedImage& input_image,
+ bool missing_frames,
+ int64_t render_time_ms),
+ (override));
+ MOCK_METHOD(int32_t,
+ RegisterDecodeCompleteCallback,
+ (DecodedImageCallback * callback),
+ (override));
+ MOCK_METHOD(int32_t, Release, (), (override));
+
+ // Special utility method that allows a test to monitor/verify when
+ // destruction of the decoder instance occurs.
+ MOCK_METHOD(void, Destruct, (), ());
+};
+
+} // namespace webrtc
+
+#endif // API_TEST_MOCK_VIDEO_DECODER_H_