xref: /aosp_15_r20/external/webrtc/modules/video_coding/codecs/h264/h264_simulcast_unittest.cc (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1 /*
2  *  Copyright (c) 2014 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 #include <memory>
12 
13 #include "api/test/create_simulcast_test_fixture.h"
14 #include "api/test/simulcast_test_fixture.h"
15 #include "api/test/video/function_video_decoder_factory.h"
16 #include "api/test/video/function_video_encoder_factory.h"
17 #include "modules/video_coding/codecs/h264/include/h264.h"
18 #include "test/gtest.h"
19 
20 namespace webrtc {
21 namespace test {
22 
23 namespace {
CreateSpecificSimulcastTestFixture()24 std::unique_ptr<SimulcastTestFixture> CreateSpecificSimulcastTestFixture() {
25   std::unique_ptr<VideoEncoderFactory> encoder_factory =
26       std::make_unique<FunctionVideoEncoderFactory>(
27           []() { return H264Encoder::Create(cricket::VideoCodec("H264")); });
28   std::unique_ptr<VideoDecoderFactory> decoder_factory =
29       std::make_unique<FunctionVideoDecoderFactory>(
30           []() { return H264Decoder::Create(); });
31   return CreateSimulcastTestFixture(std::move(encoder_factory),
32                                     std::move(decoder_factory),
33                                     SdpVideoFormat("H264"));
34 }
35 }  // namespace
36 
TEST(TestH264Simulcast,TestKeyFrameRequestsOnAllStreams)37 TEST(TestH264Simulcast, TestKeyFrameRequestsOnAllStreams) {
38   auto fixture = CreateSpecificSimulcastTestFixture();
39   fixture->TestKeyFrameRequestsOnAllStreams();
40 }
41 
TEST(TestH264Simulcast,TestPaddingAllStreams)42 TEST(TestH264Simulcast, TestPaddingAllStreams) {
43   auto fixture = CreateSpecificSimulcastTestFixture();
44   fixture->TestPaddingAllStreams();
45 }
46 
TEST(TestH264Simulcast,TestPaddingTwoStreams)47 TEST(TestH264Simulcast, TestPaddingTwoStreams) {
48   auto fixture = CreateSpecificSimulcastTestFixture();
49   fixture->TestPaddingTwoStreams();
50 }
51 
TEST(TestH264Simulcast,TestPaddingTwoStreamsOneMaxedOut)52 TEST(TestH264Simulcast, TestPaddingTwoStreamsOneMaxedOut) {
53   auto fixture = CreateSpecificSimulcastTestFixture();
54   fixture->TestPaddingTwoStreamsOneMaxedOut();
55 }
56 
TEST(TestH264Simulcast,TestPaddingOneStream)57 TEST(TestH264Simulcast, TestPaddingOneStream) {
58   auto fixture = CreateSpecificSimulcastTestFixture();
59   fixture->TestPaddingOneStream();
60 }
61 
TEST(TestH264Simulcast,TestPaddingOneStreamTwoMaxedOut)62 TEST(TestH264Simulcast, TestPaddingOneStreamTwoMaxedOut) {
63   auto fixture = CreateSpecificSimulcastTestFixture();
64   fixture->TestPaddingOneStreamTwoMaxedOut();
65 }
66 
TEST(TestH264Simulcast,TestSendAllStreams)67 TEST(TestH264Simulcast, TestSendAllStreams) {
68   auto fixture = CreateSpecificSimulcastTestFixture();
69   fixture->TestSendAllStreams();
70 }
71 
TEST(TestH264Simulcast,TestDisablingStreams)72 TEST(TestH264Simulcast, TestDisablingStreams) {
73   auto fixture = CreateSpecificSimulcastTestFixture();
74   fixture->TestDisablingStreams();
75 }
76 
TEST(TestH264Simulcast,TestActiveStreams)77 TEST(TestH264Simulcast, TestActiveStreams) {
78   auto fixture = CreateSpecificSimulcastTestFixture();
79   fixture->TestActiveStreams();
80 }
81 
TEST(TestH264Simulcast,TestSwitchingToOneStream)82 TEST(TestH264Simulcast, TestSwitchingToOneStream) {
83   auto fixture = CreateSpecificSimulcastTestFixture();
84   fixture->TestSwitchingToOneStream();
85 }
86 
TEST(TestH264Simulcast,TestSwitchingToOneOddStream)87 TEST(TestH264Simulcast, TestSwitchingToOneOddStream) {
88   auto fixture = CreateSpecificSimulcastTestFixture();
89   fixture->TestSwitchingToOneOddStream();
90 }
91 
TEST(TestH264Simulcast,TestStrideEncodeDecode)92 TEST(TestH264Simulcast, TestStrideEncodeDecode) {
93   auto fixture = CreateSpecificSimulcastTestFixture();
94   fixture->TestStrideEncodeDecode();
95 }
96 
TEST(TestH264Simulcast,TestSpatioTemporalLayers333PatternEncoder)97 TEST(TestH264Simulcast, TestSpatioTemporalLayers333PatternEncoder) {
98   auto fixture = CreateSpecificSimulcastTestFixture();
99   fixture->TestSpatioTemporalLayers333PatternEncoder();
100 }
101 
102 }  // namespace test
103 }  // namespace webrtc
104