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#ifndef WEBRTC_VIDEO_ENGINE_TEST_AUTO_TEST_PRIMITIVES_GENERAL_PRIMITIVES_H_ 12#define WEBRTC_VIDEO_ENGINE_TEST_AUTO_TEST_PRIMITIVES_GENERAL_PRIMITIVES_H_ 13 14class ViEToFileRenderer; 15 16#include "webrtc/common_types.h" 17 18namespace webrtc { 19class VideoCaptureModule; 20class ViEBase; 21class ViECapture; 22class ViECodec; 23class ViERender; 24class ViERTP_RTCP; 25struct VideoCodec; 26} 27 28enum ProtectionMethod { 29 kNack, 30 kHybridNackFec, 31}; 32 33// This constant can be used as input to various functions to not force the 34// codec resolution. 35const int kDoNotForceResolution = 0; 36 37// Finds a suitable capture device (e.g. camera) on the current system 38// and allocates it. Details about the found device are filled into the out 39// parameters. If this operation fails, device_id is assigned a negative value 40// and number_of_errors is incremented. 41void FindCaptureDeviceOnSystem(webrtc::ViECapture* capture, 42 char* device_name, 43 const unsigned int kDeviceNameLength, 44 int* device_id, 45 webrtc::VideoCaptureModule** device_video); 46 47// Sets up rendering in a window previously created using a Window Manager 48// (See vie_window_manager_factory.h for more details on how to make one of 49// those). The frame provider id is a source of video frames, for instance 50// a capture device or a video channel. 51void RenderInWindow(webrtc::ViERender* video_render_interface, 52 int frame_provider_id, 53 void* os_window, 54 float z_index); 55 56// Similar in function to RenderInWindow, this function instead renders to 57// a file using a to-file-renderer. The frame provider id is a source of 58// video frames, for instance a capture device or a video channel. 59void RenderToFile(webrtc::ViERender* renderer_interface, 60 int frame_provider_id, 61 ViEToFileRenderer* to_file_renderer); 62 63// Configures RTP-RTCP. 64void ConfigureRtpRtcp(webrtc::ViERTP_RTCP* rtcp_interface, 65 ProtectionMethod protection_method, 66 int video_channel); 67 68// Finds a codec in the codec list. Returns true on success, false otherwise. 69// The resulting codec is filled into result on success but is zeroed out 70// on failure. 71bool FindSpecificCodec(webrtc::VideoCodecType of_type, 72 webrtc::ViECodec* codec_interface, 73 webrtc::VideoCodec* result); 74 75// Sets up the provided codec with a resolution that takes individual codec 76// quirks into account (except if the forced* variables are 77// != kDoNotForceResolution) 78void SetSuitableResolution(webrtc::VideoCodec* video_codec, 79 int forced_codec_width, 80 int forced_codec_height); 81 82#endif // WEBRTC_VIDEO_ENGINE_TEST_AUTO_TEST_PRIMITIVES_GENERAL_PRIMITIVES_H_ 83