ref: e061bb3fc94ac50ae32bd3a9d1ca05a83ab93995
dir: /test/encoder/EncUT_InterfaceTest.cpp/
#include <gtest/gtest.h> #include "codec_def.h" #include "codec_api.h" #include "utils/BufferedData.h" #include "utils/FileInputStream.h" #include "BaseEncoderTest.h" class EncInterfaceCallTest : public ::testing::Test, public BaseEncoderTest { public: virtual void SetUp() { BaseEncoderTest::SetUp(); }; virtual void TearDown() { BaseEncoderTest::TearDown(); }; virtual void onEncodeFrame (const SFrameBSInfo& frameInfo) { //nothing } //testing case }; TEST_F (EncInterfaceCallTest, BaseParameterVerify) { int uiTraceLevel = WELS_LOG_QUIET; encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &uiTraceLevel); int ret = cmResultSuccess; SEncParamBase baseparam; memset (&baseparam, 0, sizeof (SEncParamBase)); baseparam.iPicWidth = 0; baseparam.iPicHeight = 7896; ret = encoder_->Initialize (&baseparam); EXPECT_EQ (ret, static_cast<int> (cmInitParaError)); uiTraceLevel = WELS_LOG_ERROR; encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &uiTraceLevel); } void outputData() { } TEST_F (EncInterfaceCallTest, SetOptionLTR) { int iTotalFrameNum = 100; int iFrameNum = 0; int frameSize = 0; int ret = cmResultSuccess; int width = 320; int height = 192; SEncParamBase baseparam; memset (&baseparam, 0, sizeof (SEncParamBase)); baseparam.iUsageType = CAMERA_VIDEO_REAL_TIME; baseparam.fMaxFrameRate = 12; baseparam.iPicWidth = width; baseparam.iPicHeight = height; baseparam.iTargetBitrate = 5000000; encoder_->Initialize (&baseparam); frameSize = width * height * 3 / 2; BufferedData buf; buf.SetLength (frameSize); ASSERT_TRUE (buf.Length() == (size_t)frameSize); SFrameBSInfo info; memset (&info, 0, sizeof (SFrameBSInfo)); SSourcePicture pic; memset (&pic, 0, sizeof (SSourcePicture)); pic.iPicWidth = width; pic.iPicHeight = height; pic.iColorFormat = videoFormatI420; pic.iStride[0] = pic.iPicWidth; pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1; pic.pData[0] = buf.data(); pic.pData[1] = pic.pData[0] + width * height; pic.pData[2] = pic.pData[1] + (width * height >> 2); SLTRConfig config; config.bEnableLongTermReference = true; config.iLTRRefNum = rand() % 4; encoder_->SetOption (ENCODER_OPTION_LTR, &config); do { FileInputStream fileStream; ASSERT_TRUE (fileStream.Open ("res/CiscoVT2people_320x192_12fps.yuv")); while (fileStream.read (buf.data(), frameSize) == frameSize) { ret = encoder_->EncodeFrame (&pic, &info); ASSERT_TRUE (ret == cmResultSuccess); if (info.eFrameType != videoFrameTypeSkip && this != NULL) { this->onEncodeFrame (info); iFrameNum++; } } } while (iFrameNum < iTotalFrameNum); }