177 lines
5.1 KiB
C++
177 lines
5.1 KiB
C++
/*
|
|
* Copyright (c) 2011 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.
|
|
*/
|
|
|
|
//
|
|
// vie_autotest.cc
|
|
//
|
|
|
|
|
|
#include "vie_autotest_defines.h"
|
|
#include "vie_autotest.h"
|
|
|
|
#include <stdio.h>
|
|
#include "video_render.h"
|
|
|
|
FILE* ViETest::_logFile = NULL;
|
|
char* ViETest::_logStr = NULL;
|
|
|
|
ViEAutoTest::ViEAutoTest(void* window1, void* window2) :
|
|
_window1(window1),
|
|
_window2(window2),
|
|
_renderType(kRenderDefault),
|
|
_vrm1(VideoRender::CreateVideoRender(4561, window1, false, _renderType)),
|
|
_vrm2(VideoRender::CreateVideoRender(4562, window2, false, _renderType))
|
|
{
|
|
assert(_vrm1);
|
|
assert(_vrm2);
|
|
|
|
ViETest::Init();
|
|
}
|
|
|
|
ViEAutoTest::~ViEAutoTest()
|
|
{
|
|
VideoRender::DestroyVideoRender(_vrm1);
|
|
_vrm1 = NULL;
|
|
VideoRender::DestroyVideoRender(_vrm2);
|
|
_vrm2 = NULL;
|
|
|
|
ViETest::Terminate();
|
|
}
|
|
|
|
int ViEAutoTest::ViEStandardTest()
|
|
{
|
|
int numErrors = 0;
|
|
numErrors += ViEBaseStandardTest();
|
|
numErrors += ViECaptureStandardTest();
|
|
numErrors += ViECodecStandardTest();
|
|
numErrors += ViEEncryptionStandardTest();
|
|
numErrors += ViEFileStandardTest();
|
|
numErrors += ViEImageProcessStandardTest();
|
|
numErrors += ViENetworkStandardTest();
|
|
numErrors += ViERenderStandardTest();
|
|
numErrors += ViERtpRtcpStandardTest();
|
|
|
|
if (numErrors > 0)
|
|
{
|
|
ViETest::Log("Standard Test Failed, with %d erros\n", numErrors);
|
|
return numErrors;
|
|
}
|
|
return numErrors;
|
|
}
|
|
|
|
int ViEAutoTest::ViEExtendedTest()
|
|
{
|
|
int numErrors = 0;
|
|
numErrors += ViEBaseExtendedTest();
|
|
numErrors += ViECaptureExtendedTest();
|
|
numErrors += ViECodecExtendedTest();
|
|
numErrors += ViEEncryptionExtendedTest();
|
|
numErrors += ViEFileExtendedTest();
|
|
numErrors += ViEImageProcessExtendedTest();
|
|
numErrors += ViENetworkExtendedTest();
|
|
numErrors += ViERenderExtendedTest();
|
|
numErrors += ViERtpRtcpExtendedTest();
|
|
|
|
if (numErrors > 0)
|
|
{
|
|
ViETest::Log("Extended Test Failed, with %d erros\n", numErrors);
|
|
return numErrors;
|
|
}
|
|
return numErrors;
|
|
}
|
|
|
|
int ViEAutoTest::ViEAPITest()
|
|
{
|
|
int numErrors = 0;
|
|
numErrors += ViEBaseAPITest();
|
|
numErrors += ViECaptureAPITest();
|
|
numErrors += ViECodecAPITest();
|
|
numErrors += ViEEncryptionAPITest();
|
|
numErrors += ViEFileAPITest();
|
|
numErrors += ViEImageProcessAPITest();
|
|
numErrors += ViENetworkAPITest();
|
|
numErrors += ViERenderAPITest();
|
|
numErrors += ViERtpRtcpAPITest();
|
|
|
|
if (numErrors > 0)
|
|
{
|
|
ViETest::Log("API Test Failed, with %d erros\n", numErrors);
|
|
return numErrors;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void ViEAutoTest::PrintVideoCodec(const webrtc::VideoCodec videoCodec)
|
|
{
|
|
using namespace std;
|
|
ViETest::Log("Video Codec Information:");
|
|
|
|
switch (videoCodec.codecType)
|
|
{
|
|
case webrtc::kVideoCodecH263:
|
|
ViETest::Log("\tcodecType: H263");
|
|
break;
|
|
case webrtc::kVideoCodecVP8:
|
|
ViETest::Log("\tcodecType: VP8");
|
|
break;
|
|
// TODO(sh): keep or remove MPEG4?
|
|
// case webrtc::kVideoCodecMPEG4:
|
|
// ViETest::Log("\tcodecType: MPEG4");
|
|
// break;
|
|
case webrtc::kVideoCodecI420:
|
|
ViETest::Log("\tcodecType: I420");
|
|
break;
|
|
case webrtc::kVideoCodecRED:
|
|
ViETest::Log("\tcodecType: RED");
|
|
break;
|
|
case webrtc::kVideoCodecULPFEC:
|
|
ViETest::Log("\tcodecType: ULPFEC");
|
|
break;
|
|
case webrtc::kVideoCodecUnknown:
|
|
ViETest::Log("\tcodecType: ????");
|
|
break;
|
|
default:
|
|
ViETest::Log("\tcodecType: ????");
|
|
break;
|
|
}
|
|
|
|
//cout << "\tcodecSpecific: " << videoCodec.codecSpecific << endl;
|
|
//switch(videoCodec.codecSpecific)
|
|
//{
|
|
// webrtc::VideoCodecH263 H263;
|
|
// webrtc::VideoCodecVP8 VP8;
|
|
// webrtc::VideoCodecMPEG4 MPEG4;
|
|
// webrtc::VideoCodecGeneric Generic;
|
|
//}
|
|
|
|
ViETest::Log("\theight: %u", videoCodec.height);
|
|
ViETest::Log("\tmaxBitrate: %u", videoCodec.maxBitrate);
|
|
ViETest::Log("\tmaxFramerate: %u", videoCodec.maxFramerate);
|
|
ViETest::Log("\tminBitrate: %u", videoCodec.minBitrate);
|
|
ViETest::Log("\tplName: %s", videoCodec.plName);
|
|
ViETest::Log("\tplType: %u", videoCodec.plType);
|
|
ViETest::Log("\tstartBitrate: %u", videoCodec.startBitrate);
|
|
ViETest::Log("\twidth: %u", videoCodec.width);
|
|
ViETest::Log("");
|
|
}
|
|
|
|
void ViEAutoTest::PrintAudioCodec(const webrtc::CodecInst audioCodec)
|
|
{
|
|
using namespace std;
|
|
ViETest::Log("Audio Codec Information:");
|
|
ViETest::Log("\tchannels: %u", audioCodec.channels);
|
|
ViETest::Log("\t: %u", audioCodec.pacsize);
|
|
ViETest::Log("\t: %u", audioCodec.plfreq);
|
|
ViETest::Log("\t: %s", audioCodec.plname);
|
|
ViETest::Log("\t: %u", audioCodec.pltype);
|
|
ViETest::Log("\t: %u", audioCodec.rate);
|
|
ViETest::Log("");
|
|
}
|