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 39class TbCaptureDevice; 40class TbInterfaces; 41class TbVideoChannel; 42class ViEToFileRenderer; 43 44DECLARE_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. 49class ViEAutoTest 50{ 51public: 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 106private: 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