2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
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.
15 #ifndef WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_H_
16 #define WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_H_
18 #include "gflags/gflags.h"
19 #include "webrtc/common_types.h"
20 #include "webrtc/modules/video_render/include/video_render_defines.h"
21 #include "webrtc/video_engine/include/vie_base.h"
22 #include "webrtc/video_engine/include/vie_capture.h"
23 #include "webrtc/video_engine/include/vie_codec.h"
24 #include "webrtc/video_engine/include/vie_errors.h"
25 #include "webrtc/video_engine/include/vie_network.h"
26 #include "webrtc/video_engine/include/vie_render.h"
27 #include "webrtc/video_engine/include/vie_rtp_rtcp.h"
28 #include "webrtc/video_engine/test/auto_test/interface/vie_autotest_defines.h"
29 #include "webrtc/video_engine/vie_defines.h"
30 #include "webrtc/voice_engine/include/voe_audio_processing.h"
31 #include "webrtc/voice_engine/include/voe_base.h"
32 #include "webrtc/voice_engine/include/voe_codec.h"
33 #include "webrtc/voice_engine/include/voe_hardware.h"
35 #ifndef WEBRTC_ANDROID
39 class TbCaptureDevice;
42 class ViEToFileRenderer;
44 DECLARE_bool(include_timing_dependent_tests);
46 // This class provides a bunch of methods, implemented across several .cc
47 // files, which runs tests on the video engine. All methods will report
48 // errors using standard googletest macros, except when marked otherwise.
52 ViEAutoTest(void* window1, void* window2);
55 // These three are special and should not be run in a googletest harness.
56 // They keep track of their errors by themselves and return the number
58 int ViELoopbackCall();
59 int ViESimulcastCall();
63 // All functions except the three above are meant to run in a
64 // googletest harness.
65 void ViEStandardTest();
66 void ViEExtendedTest();
69 // vie_autotest_base.cc
70 void ViEBaseStandardTest();
71 void ViEBaseExtendedTest();
72 void ViEBaseAPITest();
74 // vie_autotest_capture.cc
75 void ViECaptureStandardTest();
76 void ViECaptureExtendedTest();
77 void ViECaptureAPITest();
78 void ViECaptureExternalCaptureTest();
80 // vie_autotest_codec.cc
81 void ViECodecStandardTest();
82 void ViECodecExtendedTest();
83 void ViECodecExternalCodecTest();
84 void ViECodecAPITest();
86 // vie_autotest_image_process.cc
87 void ViEImageProcessStandardTest();
88 void ViEImageProcessExtendedTest();
89 void ViEImageProcessAPITest();
91 // vie_autotest_network.cc
92 void ViENetworkStandardTest();
93 void ViENetworkExtendedTest();
94 void ViENetworkAPITest();
96 // vie_autotest_render.cc
97 void ViERenderStandardTest();
98 void ViERenderExtendedTest();
99 void ViERenderAPITest();
101 // vie_autotest_rtp_rtcp.cc
102 void ViERtpRtcpStandardTest();
103 void ViERtpRtcpExtendedTest();
104 void ViERtpRtcpAPITest();
107 void PrintAudioCodec(const webrtc::CodecInst audioCodec);
108 void PrintVideoCodec(const webrtc::VideoCodec videoCodec);
110 // Sets up rendering so the capture device output goes to window 1 and
111 // the video engine output goes to window 2.
112 void RenderCaptureDeviceAndOutputStream(TbInterfaces* video_engine,
113 TbVideoChannel* video_channel,
114 TbCaptureDevice* capture_device);
119 webrtc::VideoRenderType _renderType;
120 webrtc::VideoRender* _vrm1;
121 webrtc::VideoRender* _vrm2;
124 #endif // WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_H_