1 /*
2 * Copyright (c) 2018 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 "test/fake_vp8_encoder.h"
12
13 #include <memory>
14 #include <utility>
15
16 #include "api/test/create_simulcast_test_fixture.h"
17 #include "api/test/simulcast_test_fixture.h"
18 #include "api/test/video/function_video_decoder_factory.h"
19 #include "api/test/video/function_video_encoder_factory.h"
20 #include "modules/video_coding/utility/simulcast_test_fixture_impl.h"
21 #include "test/fake_vp8_decoder.h"
22
23 namespace webrtc {
24 namespace test {
25
26 namespace {
27
CreateSpecificSimulcastTestFixture()28 std::unique_ptr<SimulcastTestFixture> CreateSpecificSimulcastTestFixture() {
29 std::unique_ptr<VideoEncoderFactory> encoder_factory =
30 std::make_unique<FunctionVideoEncoderFactory>([]() {
31 return std::make_unique<FakeVp8Encoder>(Clock::GetRealTimeClock());
32 });
33 std::unique_ptr<VideoDecoderFactory> decoder_factory =
34 std::make_unique<FunctionVideoDecoderFactory>(
35 []() { return std::make_unique<FakeVp8Decoder>(); });
36 return CreateSimulcastTestFixture(std::move(encoder_factory),
37 std::move(decoder_factory),
38 SdpVideoFormat("VP8"));
39 }
40 } // namespace
41
TEST(TestFakeVp8Codec,TestKeyFrameRequestsOnAllStreams)42 TEST(TestFakeVp8Codec, TestKeyFrameRequestsOnAllStreams) {
43 auto fixture = CreateSpecificSimulcastTestFixture();
44 fixture->TestKeyFrameRequestsOnAllStreams();
45 }
46
TEST(TestFakeVp8Codec,TestPaddingAllStreams)47 TEST(TestFakeVp8Codec, TestPaddingAllStreams) {
48 auto fixture = CreateSpecificSimulcastTestFixture();
49 fixture->TestPaddingAllStreams();
50 }
51
TEST(TestFakeVp8Codec,TestPaddingTwoStreams)52 TEST(TestFakeVp8Codec, TestPaddingTwoStreams) {
53 auto fixture = CreateSpecificSimulcastTestFixture();
54 fixture->TestPaddingTwoStreams();
55 }
56
TEST(TestFakeVp8Codec,TestPaddingTwoStreamsOneMaxedOut)57 TEST(TestFakeVp8Codec, TestPaddingTwoStreamsOneMaxedOut) {
58 auto fixture = CreateSpecificSimulcastTestFixture();
59 fixture->TestPaddingTwoStreamsOneMaxedOut();
60 }
61
TEST(TestFakeVp8Codec,TestPaddingOneStream)62 TEST(TestFakeVp8Codec, TestPaddingOneStream) {
63 auto fixture = CreateSpecificSimulcastTestFixture();
64 fixture->TestPaddingOneStream();
65 }
66
TEST(TestFakeVp8Codec,TestPaddingOneStreamTwoMaxedOut)67 TEST(TestFakeVp8Codec, TestPaddingOneStreamTwoMaxedOut) {
68 auto fixture = CreateSpecificSimulcastTestFixture();
69 fixture->TestPaddingOneStreamTwoMaxedOut();
70 }
71
TEST(TestFakeVp8Codec,TestSendAllStreams)72 TEST(TestFakeVp8Codec, TestSendAllStreams) {
73 auto fixture = CreateSpecificSimulcastTestFixture();
74 fixture->TestSendAllStreams();
75 }
76
TEST(TestFakeVp8Codec,TestDisablingStreams)77 TEST(TestFakeVp8Codec, TestDisablingStreams) {
78 auto fixture = CreateSpecificSimulcastTestFixture();
79 fixture->TestDisablingStreams();
80 }
81
TEST(TestFakeVp8Codec,TestSwitchingToOneStream)82 TEST(TestFakeVp8Codec, TestSwitchingToOneStream) {
83 auto fixture = CreateSpecificSimulcastTestFixture();
84 fixture->TestSwitchingToOneStream();
85 }
86
TEST(TestFakeVp8Codec,TestSwitchingToOneOddStream)87 TEST(TestFakeVp8Codec, TestSwitchingToOneOddStream) {
88 auto fixture = CreateSpecificSimulcastTestFixture();
89 fixture->TestSwitchingToOneOddStream();
90 }
91
TEST(TestFakeVp8Codec,TestSwitchingToOneSmallStream)92 TEST(TestFakeVp8Codec, TestSwitchingToOneSmallStream) {
93 auto fixture = CreateSpecificSimulcastTestFixture();
94 fixture->TestSwitchingToOneSmallStream();
95 }
96
TEST(TestFakeVp8Codec,TestSpatioTemporalLayers333PatternEncoder)97 TEST(TestFakeVp8Codec, TestSpatioTemporalLayers333PatternEncoder) {
98 auto fixture = CreateSpecificSimulcastTestFixture();
99 fixture->TestSpatioTemporalLayers333PatternEncoder();
100 }
101
TEST(TestFakeVp8Codec,TestDecodeWidthHeightSet)102 TEST(TestFakeVp8Codec, TestDecodeWidthHeightSet) {
103 auto fixture = CreateSpecificSimulcastTestFixture();
104 fixture->TestDecodeWidthHeightSet();
105 }
106
TEST(TestFakeVp8Codec,TestEncoderInfoForDefaultTemporalLayerProfileHasFpsAllocation)107 TEST(TestFakeVp8Codec,
108 TestEncoderInfoForDefaultTemporalLayerProfileHasFpsAllocation) {
109 auto fixture = CreateSpecificSimulcastTestFixture();
110 fixture->TestEncoderInfoForDefaultTemporalLayerProfileHasFpsAllocation();
111 }
112
113 } // namespace test
114 } // namespace webrtc
115