1 /* 2 * Copyright (c) 2012 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 // 12 // vie_autotest.h 13 // 14 15 #ifndef WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_H_ 16 #define WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_H_ 17 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" 34 35 #ifndef WEBRTC_ANDROID 36 #include <string> 37 #endif 38 39 class TbCaptureDevice; 40 class TbInterfaces; 41 class TbVideoChannel; 42 class ViEToFileRenderer; 43 44 DECLARE_bool(include_timing_dependent_tests); 45 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. 49 class ViEAutoTest 50 { 51 public: 52 ViEAutoTest(void* window1, void* window2); 53 ~ViEAutoTest(); 54 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 57 // of errors. 58 int ViELoopbackCall(); 59 int ViESimulcastCall(); 60 int ViECustomCall(); 61 int ViERecordCall(); 62 63 // All functions except the three above are meant to run in a 64 // googletest harness. 65 void ViEStandardTest(); 66 void ViEExtendedTest(); 67 void ViEAPITest(); 68 69 // vie_autotest_base.cc 70 void ViEBaseStandardTest(); 71 void ViEBaseExtendedTest(); 72 void ViEBaseAPITest(); 73 74 // vie_autotest_capture.cc 75 void ViECaptureStandardTest(); 76 void ViECaptureExtendedTest(); 77 void ViECaptureAPITest(); 78 void ViECaptureExternalCaptureTest(); 79 80 // vie_autotest_codec.cc 81 void ViECodecStandardTest(); 82 void ViECodecExtendedTest(); 83 void ViECodecExternalCodecTest(); 84 void ViECodecAPITest(); 85 86 // vie_autotest_image_process.cc 87 void ViEImageProcessStandardTest(); 88 void ViEImageProcessExtendedTest(); 89 void ViEImageProcessAPITest(); 90 91 // vie_autotest_network.cc 92 void ViENetworkStandardTest(); 93 void ViENetworkExtendedTest(); 94 void ViENetworkAPITest(); 95 96 // vie_autotest_render.cc 97 void ViERenderStandardTest(); 98 void ViERenderExtendedTest(); 99 void ViERenderAPITest(); 100 101 // vie_autotest_rtp_rtcp.cc 102 void ViERtpRtcpStandardTest(); 103 void ViERtpRtcpExtendedTest(); 104 void ViERtpRtcpAPITest(); 105 106 private: 107 void PrintAudioCodec(const webrtc::CodecInst audioCodec); 108 void PrintVideoCodec(const webrtc::VideoCodec videoCodec); 109 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); 115 116 void* _window1; 117 void* _window2; 118 119 webrtc::VideoRenderType _renderType; 120 webrtc::VideoRender* _vrm1; 121 webrtc::VideoRender* _vrm2; 122 }; 123 124 #endif // WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_H_ 125