xref: /aosp_15_r20/external/webrtc/test/fake_vp8_encoder_unittest.cc (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker /*
2*d9f75844SAndroid Build Coastguard Worker  *  Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
3*d9f75844SAndroid Build Coastguard Worker  *
4*d9f75844SAndroid Build Coastguard Worker  *  Use of this source code is governed by a BSD-style license
5*d9f75844SAndroid Build Coastguard Worker  *  that can be found in the LICENSE file in the root of the source
6*d9f75844SAndroid Build Coastguard Worker  *  tree. An additional intellectual property rights grant can be found
7*d9f75844SAndroid Build Coastguard Worker  *  in the file PATENTS.  All contributing project authors may
8*d9f75844SAndroid Build Coastguard Worker  *  be found in the AUTHORS file in the root of the source tree.
9*d9f75844SAndroid Build Coastguard Worker  */
10*d9f75844SAndroid Build Coastguard Worker 
11*d9f75844SAndroid Build Coastguard Worker #include "test/fake_vp8_encoder.h"
12*d9f75844SAndroid Build Coastguard Worker 
13*d9f75844SAndroid Build Coastguard Worker #include <memory>
14*d9f75844SAndroid Build Coastguard Worker #include <utility>
15*d9f75844SAndroid Build Coastguard Worker 
16*d9f75844SAndroid Build Coastguard Worker #include "api/test/create_simulcast_test_fixture.h"
17*d9f75844SAndroid Build Coastguard Worker #include "api/test/simulcast_test_fixture.h"
18*d9f75844SAndroid Build Coastguard Worker #include "api/test/video/function_video_decoder_factory.h"
19*d9f75844SAndroid Build Coastguard Worker #include "api/test/video/function_video_encoder_factory.h"
20*d9f75844SAndroid Build Coastguard Worker #include "modules/video_coding/utility/simulcast_test_fixture_impl.h"
21*d9f75844SAndroid Build Coastguard Worker #include "test/fake_vp8_decoder.h"
22*d9f75844SAndroid Build Coastguard Worker 
23*d9f75844SAndroid Build Coastguard Worker namespace webrtc {
24*d9f75844SAndroid Build Coastguard Worker namespace test {
25*d9f75844SAndroid Build Coastguard Worker 
26*d9f75844SAndroid Build Coastguard Worker namespace {
27*d9f75844SAndroid Build Coastguard Worker 
CreateSpecificSimulcastTestFixture()28*d9f75844SAndroid Build Coastguard Worker std::unique_ptr<SimulcastTestFixture> CreateSpecificSimulcastTestFixture() {
29*d9f75844SAndroid Build Coastguard Worker   std::unique_ptr<VideoEncoderFactory> encoder_factory =
30*d9f75844SAndroid Build Coastguard Worker       std::make_unique<FunctionVideoEncoderFactory>([]() {
31*d9f75844SAndroid Build Coastguard Worker         return std::make_unique<FakeVp8Encoder>(Clock::GetRealTimeClock());
32*d9f75844SAndroid Build Coastguard Worker       });
33*d9f75844SAndroid Build Coastguard Worker   std::unique_ptr<VideoDecoderFactory> decoder_factory =
34*d9f75844SAndroid Build Coastguard Worker       std::make_unique<FunctionVideoDecoderFactory>(
35*d9f75844SAndroid Build Coastguard Worker           []() { return std::make_unique<FakeVp8Decoder>(); });
36*d9f75844SAndroid Build Coastguard Worker   return CreateSimulcastTestFixture(std::move(encoder_factory),
37*d9f75844SAndroid Build Coastguard Worker                                     std::move(decoder_factory),
38*d9f75844SAndroid Build Coastguard Worker                                     SdpVideoFormat("VP8"));
39*d9f75844SAndroid Build Coastguard Worker }
40*d9f75844SAndroid Build Coastguard Worker }  // namespace
41*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestKeyFrameRequestsOnAllStreams)42*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestKeyFrameRequestsOnAllStreams) {
43*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
44*d9f75844SAndroid Build Coastguard Worker   fixture->TestKeyFrameRequestsOnAllStreams();
45*d9f75844SAndroid Build Coastguard Worker }
46*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestPaddingAllStreams)47*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestPaddingAllStreams) {
48*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
49*d9f75844SAndroid Build Coastguard Worker   fixture->TestPaddingAllStreams();
50*d9f75844SAndroid Build Coastguard Worker }
51*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestPaddingTwoStreams)52*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestPaddingTwoStreams) {
53*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
54*d9f75844SAndroid Build Coastguard Worker   fixture->TestPaddingTwoStreams();
55*d9f75844SAndroid Build Coastguard Worker }
56*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestPaddingTwoStreamsOneMaxedOut)57*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestPaddingTwoStreamsOneMaxedOut) {
58*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
59*d9f75844SAndroid Build Coastguard Worker   fixture->TestPaddingTwoStreamsOneMaxedOut();
60*d9f75844SAndroid Build Coastguard Worker }
61*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestPaddingOneStream)62*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestPaddingOneStream) {
63*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
64*d9f75844SAndroid Build Coastguard Worker   fixture->TestPaddingOneStream();
65*d9f75844SAndroid Build Coastguard Worker }
66*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestPaddingOneStreamTwoMaxedOut)67*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestPaddingOneStreamTwoMaxedOut) {
68*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
69*d9f75844SAndroid Build Coastguard Worker   fixture->TestPaddingOneStreamTwoMaxedOut();
70*d9f75844SAndroid Build Coastguard Worker }
71*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestSendAllStreams)72*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestSendAllStreams) {
73*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
74*d9f75844SAndroid Build Coastguard Worker   fixture->TestSendAllStreams();
75*d9f75844SAndroid Build Coastguard Worker }
76*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestDisablingStreams)77*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestDisablingStreams) {
78*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
79*d9f75844SAndroid Build Coastguard Worker   fixture->TestDisablingStreams();
80*d9f75844SAndroid Build Coastguard Worker }
81*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestSwitchingToOneStream)82*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestSwitchingToOneStream) {
83*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
84*d9f75844SAndroid Build Coastguard Worker   fixture->TestSwitchingToOneStream();
85*d9f75844SAndroid Build Coastguard Worker }
86*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestSwitchingToOneOddStream)87*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestSwitchingToOneOddStream) {
88*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
89*d9f75844SAndroid Build Coastguard Worker   fixture->TestSwitchingToOneOddStream();
90*d9f75844SAndroid Build Coastguard Worker }
91*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestSwitchingToOneSmallStream)92*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestSwitchingToOneSmallStream) {
93*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
94*d9f75844SAndroid Build Coastguard Worker   fixture->TestSwitchingToOneSmallStream();
95*d9f75844SAndroid Build Coastguard Worker }
96*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestSpatioTemporalLayers333PatternEncoder)97*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestSpatioTemporalLayers333PatternEncoder) {
98*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
99*d9f75844SAndroid Build Coastguard Worker   fixture->TestSpatioTemporalLayers333PatternEncoder();
100*d9f75844SAndroid Build Coastguard Worker }
101*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestDecodeWidthHeightSet)102*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec, TestDecodeWidthHeightSet) {
103*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
104*d9f75844SAndroid Build Coastguard Worker   fixture->TestDecodeWidthHeightSet();
105*d9f75844SAndroid Build Coastguard Worker }
106*d9f75844SAndroid Build Coastguard Worker 
TEST(TestFakeVp8Codec,TestEncoderInfoForDefaultTemporalLayerProfileHasFpsAllocation)107*d9f75844SAndroid Build Coastguard Worker TEST(TestFakeVp8Codec,
108*d9f75844SAndroid Build Coastguard Worker      TestEncoderInfoForDefaultTemporalLayerProfileHasFpsAllocation) {
109*d9f75844SAndroid Build Coastguard Worker   auto fixture = CreateSpecificSimulcastTestFixture();
110*d9f75844SAndroid Build Coastguard Worker   fixture->TestEncoderInfoForDefaultTemporalLayerProfileHasFpsAllocation();
111*d9f75844SAndroid Build Coastguard Worker }
112*d9f75844SAndroid Build Coastguard Worker 
113*d9f75844SAndroid Build Coastguard Worker }  // namespace test
114*d9f75844SAndroid Build Coastguard Worker }  // namespace webrtc
115