| /* | |
| * Copyright (c) 2014 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. | |
| */ | |
| #include <memory> | |
| #include <utility> | |
| #include "api/environment/environment.h" | |
| #include "api/test/create_simulcast_test_fixture.h" | |
| #include "api/test/simulcast_test_fixture.h" | |
| #include "api/test/video/function_video_decoder_factory.h" | |
| #include "api/test/video/function_video_encoder_factory.h" | |
| #include "api/video_codecs/sdp_video_format.h" | |
| #include "api/video_codecs/video_decoder_factory.h" | |
| #include "api/video_codecs/video_encoder_factory.h" | |
| #include "modules/video_coding/codecs/vp8/include/vp8.h" | |
| #include "test/gtest.h" | |
| namespace webrtc { | |
| namespace test { | |
| namespace { | |
| std::unique_ptr<SimulcastTestFixture> CreateSpecificSimulcastTestFixture() { | |
| std::unique_ptr<VideoEncoderFactory> encoder_factory = | |
| std::make_unique<FunctionVideoEncoderFactory>( | |
| [](const Environment& env, const SdpVideoFormat& /* format */) { | |
| return CreateVp8Encoder(env); | |
| }); | |
| std::unique_ptr<VideoDecoderFactory> decoder_factory = | |
| std::make_unique<FunctionVideoDecoderFactory>( | |
| [](const Environment& env, const SdpVideoFormat& /* format */) { | |
| return CreateVp8Decoder(env); | |
| }); | |
| return CreateSimulcastTestFixture(std::move(encoder_factory), | |
| std::move(decoder_factory), | |
| SdpVideoFormat::VP8()); | |
| } | |
| } // namespace | |
| TEST(LibvpxVp8SimulcastTest, TestKeyFrameRequestsOnAllStreams) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestKeyFrameRequestsOnAllStreams(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestKeyFrameRequestsOnSpecificStreams) { | |
| GTEST_SKIP() << "Not applicable to VP8."; | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestPaddingAllStreams) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestPaddingAllStreams(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestPaddingTwoStreams) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestPaddingTwoStreams(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestPaddingTwoStreamsOneMaxedOut) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestPaddingTwoStreamsOneMaxedOut(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestPaddingOneStream) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestPaddingOneStream(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestPaddingOneStreamTwoMaxedOut) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestPaddingOneStreamTwoMaxedOut(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestSendAllStreams) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestSendAllStreams(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestDisablingStreams) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestDisablingStreams(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestActiveStreams) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestActiveStreams(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestSwitchingToOneStream) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestSwitchingToOneStream(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestSwitchingToOneOddStream) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestSwitchingToOneOddStream(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestSwitchingToOneSmallStream) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestSwitchingToOneSmallStream(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestSpatioTemporalLayers333PatternEncoder) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestSpatioTemporalLayers333PatternEncoder(); | |
| } | |
| TEST(LibvpxVp8SimulcastTest, TestStrideEncodeDecode) { | |
| auto fixture = CreateSpecificSimulcastTestFixture(); | |
| fixture->TestStrideEncodeDecode(); | |
| } | |
| } // namespace test | |
| } // namespace webrtc |