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