Create MockTransformableFrame.

Bug: webrtc:9620
Change-Id: I013b25800854ec6e808d00b6717114a4c4e4aa17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327321
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41155}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index ff461b8..e9e6887 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -1280,6 +1280,18 @@
     ]
   }
 
+  rtc_source_set("mock_transformable_frame") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [ "test/mock_transformable_frame.h" ]
+    deps = [
+      ":array_view",
+      ":frame_transformer_interface",
+      "../test:test_support",
+      "units:timestamp",
+    ]
+  }
+
   rtc_source_set("mock_async_dns_resolver") {
     visibility = [ "*" ]
     testonly = true
@@ -1511,6 +1523,7 @@
       ":mock_rtp",
       ":mock_session_description_interface",
       ":mock_transformable_audio_frame",
+      ":mock_transformable_frame",
       ":mock_transformable_video_frame",
       ":mock_video_bitrate_allocator",
       ":mock_video_bitrate_allocator_factory",
diff --git a/api/test/compile_all_headers.cc b/api/test/compile_all_headers.cc
index 1fcf63e..9d375a1 100644
--- a/api/test/compile_all_headers.cc
+++ b/api/test/compile_all_headers.cc
@@ -43,6 +43,7 @@
 #include "api/test/mock_rtpreceiver.h"
 #include "api/test/mock_rtpsender.h"
 #include "api/test/mock_session_description_interface.h"
+#include "api/test/mock_transformable_frame.h"
 #include "api/test/mock_transformable_video_frame.h"
 #include "api/test/mock_video_bitrate_allocator.h"
 #include "api/test/mock_video_bitrate_allocator_factory.h"
diff --git a/api/test/mock_transformable_frame.h b/api/test/mock_transformable_frame.h
new file mode 100644
index 0000000..df20b62
--- /dev/null
+++ b/api/test/mock_transformable_frame.h
@@ -0,0 +1,45 @@
+/*
+ *  Copyright 2023 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_TRANSFORMABLE_FRAME_H_
+#define API_TEST_MOCK_TRANSFORMABLE_FRAME_H_
+
+#include <stdint.h>
+
+#include <optional>
+#include <string>
+
+#include "api/array_view.h"
+#include "api/frame_transformer_interface.h"
+#include "api/units/timestamp.h"
+#include "test/gmock.h"
+
+namespace webrtc {
+
+class MockTransformableFrame : public webrtc::TransformableFrameInterface {
+ public:
+  MOCK_METHOD(rtc::ArrayView<const uint8_t>, GetData, (), (const, override));
+  MOCK_METHOD(void, SetData, (rtc::ArrayView<const uint8_t>), (override));
+  MOCK_METHOD(uint8_t, GetPayloadType, (), (const, override));
+  MOCK_METHOD(uint32_t, GetSsrc, (), (const, override));
+  MOCK_METHOD(uint32_t, GetTimestamp, (), (const, override));
+  MOCK_METHOD(void, SetRTPTimestamp, (uint32_t), (override));
+  MOCK_METHOD(std::optional<webrtc::Timestamp>,
+              GetCaptureTimeIdentifier,
+              (),
+              (const, override));
+  MOCK_METHOD(std::string, GetMimeType, (), (const, override));
+};
+
+static_assert(!std::is_abstract_v<MockTransformableFrame>, "");
+
+}  // namespace webrtc
+
+#endif  // API_TEST_MOCK_TRANSFORMABLE_FRAME_H_