Showing the changes to test/encoder/EncUT_EncoderExt.cpp (1 of 1 file). Show all
Unified · Split
| @@ -9,6 +9,9 @@ class EncoderInterfaceTest : public ::testing::Test { · 8 unmodified lines | ||
| 9 | 9 | #define MAX_WIDTH (3840) |
| 10 | 10 | #define MAX_HEIGHT (2160) |
| 11 | 11 | #define VALID_SIZE(iSize) (((iSize)>1)?(iSize):1) |
| 12 | +#define MEM_VARY_SIZE (512) | |
| 13 | +#define IMAGE_VARY_SIZE (512) | |
| 14 | +#define TEST_FRAMES (200) | |
| 12 | 15 | |
| 13 | 16 | #define NAL_HEADER_BYTES (4) |
| 14 | 17 | #define NAL_TYPE (0x0F) |
| @@ -52,6 +55,7 @@ class EncoderInterfaceTest : public ::testing::Test { · 37 unmodified lines | ||
| 52 | 55 | } |
| 53 | 56 | } |
| 54 | 57 | |
| 58 | + void InitializeParamExt(); | |
| 55 | 59 | void TemporalLayerSettingTest(); |
| 56 | 60 | void MemoryCheckTest(); |
| 57 | 61 | void EncodeOneFrame (SEncParamBase* pEncParamBase); |
| @@ -120,7 +124,18 @@ void EncoderInterfaceTest::EncodeOneIDRandP (ISVCEncoder* pPtrEnc) { · 62 unmodified lines | ||
| 120 | 124 | EXPECT_NE (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR)); |
| 121 | 125 | } |
| 122 | 126 | |
| 123 | −void EncoderInterfaceTest::TemporalLayerSettingTest() { | |
| 127 | +void EncoderInterfaceTest::InitializeParamExt() { | |
| 128 | + pParamExt->iPicWidth = 1280; | |
| 129 | + pParamExt->iPicHeight = 720; | |
| 130 | + pParamExt->iTargetBitrate = 50000; | |
| 131 | + pParamExt->iTemporalLayerNum = 3; | |
| 132 | + pParamExt->iSpatialLayerNum = 1; | |
| 133 | + pParamExt->sSpatialLayers[0].iVideoHeight = pParamExt->iPicHeight; | |
| 134 | + pParamExt->sSpatialLayers[0].iVideoWidth = pParamExt->iPicWidth; | |
| 135 | + pParamExt->sSpatialLayers[0].iSpatialBitrate = 50000; | |
| 136 | +} | |
| 137 | + | |
| 138 | +TEST_F (EncoderInterfaceTest, TemporalLayerSettingTest) { | |
| 124 | 139 | |
| 125 | 140 | pParamExt->iPicWidth = m_iWidth; |
| 126 | 141 | pParamExt->iPicHeight = m_iHeight; |
| @@ -175,27 +190,60 @@ void EncoderInterfaceTest::TemporalLayerSettingTest() { · 48 unmodified lines | ||
| 175 | 190 | EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess)); |
| 176 | 191 | EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeP)); |
| 177 | 192 | |
| 178 | − pPtrEnc->Uninitialize(); | |
| 193 | + iResult = pPtrEnc->Uninitialize(); | |
| 194 | + EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess)); | |
| 195 | + } | |
| 196 | + | |
| 197 | + InitializeParamExt(); | |
| 198 | + pParamExt->iUsageType = (rand() % 2) ? SCREEN_CONTENT_REAL_TIME : CAMERA_VIDEO_REAL_TIME; | |
| 199 | + pParamExt->iRCMode = (rand() % 2) ? RC_BITRATE_MODE : RC_QUALITY_MODE; | |
| 200 | + | |
| 201 | + int iResult = pPtrEnc->InitializeExt (pParamExt); | |
| 202 | + const int kiFrameNumber = TEST_FRAMES; | |
| 203 | + | |
| 204 | + m_iWidth = pParamExt->iPicWidth; | |
| 205 | + m_iHeight = pParamExt->iPicHeight; | |
| 206 | + m_iPicResSize = m_iWidth * m_iHeight * 3 >> 1; | |
| 207 | + delete []pYUV; | |
| 208 | + pYUV = new unsigned char [m_iPicResSize]; | |
| 209 | + ASSERT_TRUE (pYUV != NULL); | |
| 210 | + PrepareOneSrcFrame(); | |
| 211 | + | |
| 212 | + ENCODER_OPTION eOptionId = ENCODER_OPTION_SVC_ENCODE_PARAM_EXT; | |
| 213 | + memcpy (pOption, pParamExt, sizeof (SEncParamExt)); | |
| 214 | + | |
| 215 | + for(int i = 0; i < kiFrameNumber; i ++){ | |
| 216 | + if ((i%7) == 0){ | |
| 217 | + if (pOption->iTemporalLayerNum<4){ | |
| 218 | + pOption->iTemporalLayerNum++; | |
| 219 | + } else { | |
| 220 | + pOption->iTemporalLayerNum--; | |
| 221 | + } | |
| 222 | + iResult = pPtrEnc->SetOption (eOptionId, pOption); | |
| 223 | + EXPECT_EQ (iResult, static_cast<int32_t> (cmResultSuccess)); | |
| 224 | + pSrcPic->uiTimeStamp += 30; | |
| 225 | + } | |
| 226 | + | |
| 227 | + int iStartX = rand() % (m_iPicResSize >> 1); | |
| 228 | + int iEndX = (iStartX + (rand() % MEM_VARY_SIZE)) % m_iPicResSize; | |
| 229 | + for (int j = iStartX; j < iEndX; j++) | |
| 230 | + pYUV[j] = rand() % 256; | |
| 231 | + | |
| 232 | + iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi); | |
| 233 | + EXPECT_EQ (iResult, static_cast<int32_t> (cmResultSuccess)); | |
| 234 | + pSrcPic->uiTimeStamp += 30; | |
| 179 | 235 | } |
| 180 | −} | |
| 181 | 236 | |
| 182 | −TEST_F (EncoderInterfaceTest, TestTemporalLayerSetting) { | |
| 183 | − TemporalLayerSettingTest(); | |
| 237 | + iResult = pPtrEnc->Uninitialize(); | |
| 238 | + EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess)); | |
| 239 | + | |
| 184 | 240 | } |
| 185 | 241 | |
| 186 | −void EncoderInterfaceTest::MemoryCheckTest() { | |
| 187 | − #define MEM_VARY_SIZE 1024 | |
| 188 | − #define IMAGE_VARY_SIZE 512 | |
| 189 | − #define TEST_FRAMES 500 | |
| 242 | +TEST_F (EncoderInterfaceTest, MemoryCheckTest) { | |
| 190 | 243 | |
| 244 | + InitializeParamExt(); | |
| 191 | 245 | pParamExt->iPicWidth = 1280; |
| 192 | 246 | pParamExt->iPicHeight = 720; |
| 193 | − pParamExt->iTargetBitrate = 60000; | |
| 194 | − pParamExt->sSpatialLayers[0].iVideoHeight = pParamExt->iPicHeight; | |
| 195 | − pParamExt->sSpatialLayers[0].iVideoWidth = pParamExt->iPicWidth; | |
| 196 | − pParamExt->sSpatialLayers[0].iSpatialBitrate = 50000; | |
| 197 | − pParamExt->iTemporalLayerNum = 3; | |
| 198 | − pParamExt->iSpatialLayerNum = 1; | |
| 199 | 247 | |
| 200 | 248 | int iResult = pPtrEnc->InitializeExt (pParamExt); |
| 201 | 249 | const int kiFrameNumber = TEST_FRAMES; |
| @@ -261,11 +309,9 @@ void EncoderInterfaceTest::MemoryCheckTest() { · 59 unmodified lines | ||
| 261 | 309 | EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess)); |
| 262 | 310 | pSrcPic->uiTimeStamp += 30; |
| 263 | 311 | } |
| 264 | − pPtrEnc->Uninitialize(); | |
| 265 | −} | |
| 266 | 312 | |
| 267 | −TEST_F (EncoderInterfaceTest, MemoryCheck) { | |
| 268 | − MemoryCheckTest(); | |
| 313 | + iResult = pPtrEnc->Uninitialize(); | |
| 314 | + EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess)); | |
| 269 | 315 | } |
| 270 | 316 | |
| 271 | 317 | void GetValidEncParamBase (SEncParamBase* pEncParamBase) { |
| @@ -498,11 +544,10 @@ TEST_F (EncoderInterfaceTest, EncodeParameterSets) { · 226 unmodified lines | ||
| 498 | 544 | EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess)); |
| 499 | 545 | EXPECT_NE (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR)); |
| 500 | 546 | |
| 501 | − pPtrEnc->Uninitialize(); | |
| 547 | + iResult = pPtrEnc->Uninitialize(); | |
| 502 | 548 | EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess)); |
| 503 | 549 | } |
| 504 | 550 | |
| 505 | 551 | TEST_F (EncoderInterfaceTest, BasicReturnTypeTest) { |
| 506 | 552 | //TODO |
| 507 | −} | |
| 508 | − | |
| 553 | +} | |