Showing the changes to test/api/encode_decode_api_test.cpp (1 of 26 files). Show all
Unified · Split
| @@ -101,8 +101,8 @@ class EncodeDecodeTestBase : public BaseEncoderTest, public BaseDecoderTest { · 100 unmodified lines | |||
| 101 | pParam->sSpatialLayers[i].iVideoWidth = width >> (iLayers - i - 1); | 101 | pParam->sSpatialLayers[i].iVideoWidth = width >> (iLayers - i - 1); |
| 102 | pParam->sSpatialLayers[i].iVideoHeight = height >> (iLayers - i - 1); | 102 | pParam->sSpatialLayers[i].iVideoHeight = height >> (iLayers - i - 1); |
| 103 | pParam->sSpatialLayers[i].fFrameRate = framerate; | 103 | pParam->sSpatialLayers[i].fFrameRate = framerate; |
| 104 | pParam->sSpatialLayers[i].sSliceCfg.uiSliceMode = SM_FIXEDSLCNUM_SLICE; | 104 | pParam->sSpatialLayers[i].sSliceArgument.uiSliceMode = SM_FIXEDSLCNUM_SLICE; |
| 105 | pParam->sSpatialLayers[i].sSliceCfg.sSliceArgument.uiSliceNum = iSlices; | 105 | pParam->sSpatialLayers[i].sSliceArgument.uiSliceNum = iSlices; |
| 106 | } | 106 | } |
| 107 | } | 107 | } |
| 108 | 108 | ||
| @@ -415,12 +415,12 @@ void EncodeDecodeTestAPIBase::RandomParamExtCombination() { · 306 unmodified lines | |||
| 415 | pSpatialLayer->iSpatialBitrate = rand() % BIT_RATE_RANGE; | 415 | pSpatialLayer->iSpatialBitrate = rand() % BIT_RATE_RANGE; |
| 416 | 416 | ||
| 417 | 417 | ||
| 418 | pSpatialLayer->sSliceCfg.uiSliceMode = static_cast<SliceModeEnum> (rand() % SLICE_MODE_NUM); | 418 | pSpatialLayer->sSliceArgument.uiSliceMode = static_cast<SliceModeEnum> (rand() % SLICE_MODE_NUM); |
| 419 | if (pSpatialLayer->sSliceCfg.uiSliceMode != SM_DYN_SLICE) { | 419 | if (pSpatialLayer->sSliceArgument.uiSliceMode != SM_SIZELIMITED_SLICE) { |
| 420 | param_.uiMaxNalSize = 0; | 420 | param_.uiMaxNalSize = 0; |
| 421 | } | 421 | } |
| 422 | pSpatialLayer->sSliceCfg.sSliceArgument.uiSliceNum = rand(); | 422 | pSpatialLayer->sSliceArgument.uiSliceNum = rand(); |
| 423 | pSpatialLayer->sSliceCfg.sSliceArgument.uiSliceSizeConstraint = rand(); | 423 | pSpatialLayer->sSliceArgument.uiSliceSizeConstraint = rand(); |
| 424 | } | 424 | } |
| 425 | } | 425 | } |
| 426 | } | 426 | } |
| @@ -482,31 +482,30 @@ void EncodeDecodeTestAPIBase::ValidateParamExtCombination() { · 55 unmodified lines | |||
| 482 | pSpatialLayer->iSpatialBitrate = WELS_CLIP3 (pSpatialLayer->iSpatialBitrate, 1, pSpatialLayer->iMaxSpatialBitrate); | 482 | pSpatialLayer->iSpatialBitrate = WELS_CLIP3 (pSpatialLayer->iSpatialBitrate, 1, pSpatialLayer->iMaxSpatialBitrate); |
| 483 | iTotalBitRate += pSpatialLayer->iSpatialBitrate; | 483 | iTotalBitRate += pSpatialLayer->iSpatialBitrate; |
| 484 | 484 | ||
| 485 | uiSliceNum = pSpatialLayer->sSliceCfg.sSliceArgument.uiSliceNum; | 485 | uiSliceNum = pSpatialLayer->sSliceArgument.uiSliceNum; |
| 486 | pSpatialLayer->sSliceCfg.sSliceArgument.uiSliceNum = WELS_CLIP3 (uiSliceNum, 1, MAX_SLICES_NUM); | 486 | pSpatialLayer->sSliceArgument.uiSliceNum = WELS_CLIP3 (uiSliceNum, 1, MAX_SLICES_NUM); |
| 487 | pSpatialLayer->sSliceCfg.sSliceArgument.uiSliceSizeConstraint = 0; | 487 | pSpatialLayer->sSliceArgument.uiSliceSizeConstraint = 0; |
| 488 | 488 | ||
| 489 | 489 | ||
| 490 | //for SM_FIXEDSLCNUM_SLICE | 490 | //for SM_FIXEDSLCNUM_SLICE |
| 491 | // to do will add this when GOM bug fixed | 491 | // to do will add this when GOM bug fixed |
| 492 | if (SM_FIXEDSLCNUM_SLICE == pSpatialLayer->sSliceCfg.uiSliceMode) { | 492 | if (SM_FIXEDSLCNUM_SLICE == pSpatialLayer->sSliceArgument.uiSliceMode) { |
| 493 | pSpatialLayer->sSliceCfg.uiSliceMode = SM_SINGLE_SLICE; | 493 | pSpatialLayer->sSliceArgument.uiSliceMode = SM_SINGLE_SLICE; |
| 494 | } | 494 | } |
| 495 | 495 | ||
| 496 | //for slice mode = SM_DYN_SLICE | 496 | //for slice mode = SM_SIZELIMITED_SLICE |
| 497 | if (SM_DYN_SLICE == pSpatialLayer->sSliceCfg.uiSliceMode) { | 497 | if (SM_SIZELIMITED_SLICE == pSpatialLayer->sSliceArgument.uiSliceMode) { |
| 498 | bDynSliceModeFlag = true; | 498 | bDynSliceModeFlag = true; |
| 499 | } | 499 | } |
| 500 | 500 | ||
| 501 | //for slice mode = SM_RASTER_SLICE | 501 | //for slice mode = SM_RASTER_SLICE |
| 502 | if (SM_RASTER_SLICE == pSpatialLayer->sSliceCfg.uiSliceMode) { | 502 | if (SM_RASTER_SLICE == pSpatialLayer->sSliceArgument.uiSliceMode) { |
| 503 | SliceParamValidationForMode2 (iSpatialIdx); | 503 | if (0!=pSpatialLayer->sSliceArgument.uiSliceMbNum[0]) { |
| 504 | } | 504 | SliceParamValidationForMode2 (iSpatialIdx); |
| 505 | //for slice mode = SM_ROWMB_SLICE | 505 | } else { |
| 506 | if (SM_ROWMB_SLICE == pSpatialLayer->sSliceCfg.uiSliceMode) { | 506 | SliceParamValidationForMode3 (iSpatialIdx); |
| 507 | SliceParamValidationForMode3 (iSpatialIdx); | 507 | } |
| 508 | } | 508 | } |
| 509 | |||
| 510 | } | 509 | } |
| 511 | 510 | ||
| 512 | //for RC | 511 | //for RC |
| @@ -526,7 +525,7 @@ void EncodeDecodeTestAPIBase::ValidateParamExtCombination() { · 13 unmodified lines | |||
| 526 | param_.iMinQp = iMinQP; | 525 | param_.iMinQp = iMinQP; |
| 527 | param_.uiMaxNalSize = 0; | 526 | param_.uiMaxNalSize = 0; |
| 528 | 527 | ||
| 529 | //for slice mode = SM_DYN_SLICE | 528 | //for slice mode = SM_SIZELIMITED_SLICE |
| 530 | if (true == bDynSliceModeFlag) { | 529 | if (true == bDynSliceModeFlag) { |
| 531 | SliceParamValidationForMode4(); | 530 | SliceParamValidationForMode4(); |
| 532 | } | 531 | } |
| @@ -549,8 +548,8 @@ void EncodeDecodeTestAPIBase::SliceParamValidationForMode2 (int iSpatialIdx) { · 16 unmodified lines | |||
| 549 | 548 | ||
| 550 | uiSliceIdx = 0; | 549 | uiSliceIdx = 0; |
| 551 | while (uiSliceIdx < MAX_SLICES_NUM) { | 550 | while (uiSliceIdx < MAX_SLICES_NUM) { |
| 552 | param_.sSpatialLayers[iSpatialIdx].sSliceCfg.sSliceArgument.uiSliceMbNum[uiSliceIdx] = rand() % uiMbNumInFrame; | 551 | param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceMbNum[uiSliceIdx] = rand() % uiMbNumInFrame; |
| 553 | uiCountMb += param_.sSpatialLayers[iSpatialIdx].sSliceCfg.sSliceArgument.uiSliceMbNum[uiSliceIdx]; | 552 | uiCountMb += param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceMbNum[uiSliceIdx]; |
| 554 | uiActualSliceCount = uiSliceIdx + 1; | 553 | uiActualSliceCount = uiSliceIdx + 1; |
| 555 | 554 | ||
| 556 | if (uiCountMb >= uiMbNumInFrame) { | 555 | if (uiCountMb >= uiMbNumInFrame) { |
| @@ -561,14 +560,14 @@ void EncodeDecodeTestAPIBase::SliceParamValidationForMode2 (int iSpatialIdx) { · 4 unmodified lines | |||
| 561 | } | 560 | } |
| 562 | 561 | ||
| 563 | if (uiCountMb >= uiMbNumInFrame) { | 562 | if (uiCountMb >= uiMbNumInFrame) { |
| 564 | param_.sSpatialLayers[iSpatialIdx].sSliceCfg.sSliceArgument.uiSliceMbNum[uiActualSliceCount - 1] -= | 563 | param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceMbNum[uiActualSliceCount - 1] -= |
| 565 | (uiCountMb - uiMbNumInFrame); | 564 | (uiCountMb - uiMbNumInFrame); |
| 566 | 565 | ||
| 567 | } else { | 566 | } else { |
| 568 | param_.sSpatialLayers[iSpatialIdx].sSliceCfg.sSliceArgument.uiSliceMbNum[uiActualSliceCount - 1 ] += | 567 | param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceMbNum[uiActualSliceCount - 1 ] += |
| 569 | (uiMbNumInFrame - uiCountMb); | 568 | (uiMbNumInFrame - uiCountMb); |
| 570 | } | 569 | } |
| 571 | param_.sSpatialLayers[iSpatialIdx].sSliceCfg.sSliceArgument.uiSliceNum = uiActualSliceCount; | 570 | param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceNum = uiActualSliceCount; |
| 572 | 571 | ||
| 573 | } | 572 | } |
| 574 | void EncodeDecodeTestAPIBase::SliceParamValidationForMode3 (int iSpatialIdx) { | 573 | void EncodeDecodeTestAPIBase::SliceParamValidationForMode3 (int iSpatialIdx) { |
| @@ -579,16 +578,16 @@ void EncodeDecodeTestAPIBase::SliceParamValidationForMode3 (int iSpatialIdx) { · 4 unmodified lines | |||
| 579 | 578 | ||
| 580 | //change slice mode to SM_SINGLE_SLICE | 579 | //change slice mode to SM_SINGLE_SLICE |
| 581 | if (uiMbHeight > MAX_SLICES_NUM) { | 580 | if (uiMbHeight > MAX_SLICES_NUM) { |
| 582 | param_.sSpatialLayers[iSpatialIdx].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE; | 581 | param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceMode = SM_SINGLE_SLICE; |
| 583 | } | 582 | } |
| 584 | 583 | ||
| 585 | } | 584 | } |
| 586 | 585 | ||
| 587 | void EncodeDecodeTestAPIBase::SliceParamValidationForMode4() { | 586 | void EncodeDecodeTestAPIBase::SliceParamValidationForMode4() { |
| 588 | //slice mode of all spatial layer should be set as SM_DYN_SLICE | 587 | //slice mode of all spatial layer should be set as SM_SIZELIMITED_SLICE |
| 589 | for (int iSpatialIdx = 0; iSpatialIdx < param_.iSpatialLayerNum; iSpatialIdx++) { | 588 | for (int iSpatialIdx = 0; iSpatialIdx < param_.iSpatialLayerNum; iSpatialIdx++) { |
| 590 | param_.sSpatialLayers[iSpatialIdx].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = 600; | 589 | param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceSizeConstraint = 600; |
| 591 | param_.sSpatialLayers[iSpatialIdx].sSliceCfg.uiSliceMode = SM_DYN_SLICE; | 590 | param_.sSpatialLayers[iSpatialIdx].sSliceArgument.uiSliceMode = SM_SIZELIMITED_SLICE; |
| 592 | } | 591 | } |
| 593 | param_.uiMaxNalSize = 1500; | 592 | param_.uiMaxNalSize = 1500; |
| 594 | } | 593 | } |
| @@ -2385,12 +2384,12 @@ TEST_F (DecodeCrashTestAPI, DecoderCrashTest) { · 1790 unmodified lines | |||
| 2385 | param_.iMultipleThreadIdc = 0; | 2384 | param_.iMultipleThreadIdc = 0; |
| 2386 | param_.sSpatialLayers[0].iSpatialBitrate = p.iTarBitrate; | 2385 | param_.sSpatialLayers[0].iSpatialBitrate = p.iTarBitrate; |
| 2387 | param_.sSpatialLayers[0].iMaxSpatialBitrate = p.iTarBitrate << 1; | 2386 | param_.sSpatialLayers[0].iMaxSpatialBitrate = p.iTarBitrate << 1; |
| 2388 | param_.sSpatialLayers[0].sSliceCfg.uiSliceMode = (rand() % 2) ? SM_DYN_SLICE : SM_SINGLE_SLICE; | 2387 | param_.sSpatialLayers[0].sSliceArgument.uiSliceMode = (rand() % 2) ? SM_SIZELIMITED_SLICE : SM_SINGLE_SLICE; |
| 2389 | if (param_.sSpatialLayers[0].sSliceCfg.uiSliceMode == SM_DYN_SLICE) { | 2388 | if (param_.sSpatialLayers[0].sSliceArgument.uiSliceMode == SM_SIZELIMITED_SLICE) { |
| 2390 | param_.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = 1400; | 2389 | param_.sSpatialLayers[0].sSliceArgument.uiSliceSizeConstraint = 1400; |
| 2391 | param_.uiMaxNalSize = 1400; | 2390 | param_.uiMaxNalSize = 1400; |
| 2392 | } else { | 2391 | } else { |
| 2393 | param_.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = 0; | 2392 | param_.sSpatialLayers[0].sSliceArgument.uiSliceSizeConstraint = 0; |
| 2394 | param_.uiMaxNalSize = 0; | 2393 | param_.uiMaxNalSize = 0; |
| 2395 | } | 2394 | } |
| 2396 | 2395 | ||
| @@ -3454,35 +3453,35 @@ struct EncodeOptionParam { · 1057 unmodified lines | |||
| 3454 | }; | 3453 | }; |
| 3455 | 3454 | ||
| 3456 | static const EncodeOptionParam kOptionParamArray[] = { | 3455 | static const EncodeOptionParam kOptionParamArray[] = { |
| 3457 | {true, true, false, 30, 600, 460, 1, SM_DYN_SLICE, 450, 15.0, 1, ""}, | 3456 | {true, true, false, 30, 600, 460, 1, SM_SIZELIMITED_SLICE, 450, 15.0, 1, ""}, |
| 3458 | {true, true, false, 30, 340, 96, 24, SM_DYN_SLICE, 1000, 30.0, 1, ""}, | 3457 | {true, true, false, 30, 340, 96, 24, SM_SIZELIMITED_SLICE, 1000, 30.0, 1, ""}, |
| 3459 | {true, true, false, 30, 140, 196, 51, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3458 | {true, true, false, 30, 140, 196, 51, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3460 | {true, true, false, 30, 110, 296, 50, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3459 | {true, true, false, 30, 110, 296, 50, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3461 | {true, true, false, 30, 104, 416, 44, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3460 | {true, true, false, 30, 104, 416, 44, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3462 | {true, true, false, 30, 16, 16, 2, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3461 | {true, true, false, 30, 16, 16, 2, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3463 | {true, false, true, 30, 600, 460, 1, SM_DYN_SLICE, 450, 15.0, 1, ""}, | 3462 | {true, false, true, 30, 600, 460, 1, SM_SIZELIMITED_SLICE, 450, 15.0, 1, ""}, |
| 3464 | {true, false, true, 30, 340, 96, 24, SM_DYN_SLICE, 1000, 30.0, 1, ""}, | 3463 | {true, false, true, 30, 340, 96, 24, SM_SIZELIMITED_SLICE, 1000, 30.0, 1, ""}, |
| 3465 | {true, false, true, 30, 140, 196, 51, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3464 | {true, false, true, 30, 140, 196, 51, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3466 | {true, false, true, 30, 110, 296, 50, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3465 | {true, false, true, 30, 110, 296, 50, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3467 | {true, false, true, 30, 104, 416, 44, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3466 | {true, false, true, 30, 104, 416, 44, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3468 | {true, false, true, 30, 16, 16, 2, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3467 | {true, false, true, 30, 16, 16, 2, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3469 | {true, true, true, 30, 600, 460, 1, SM_DYN_SLICE, 450, 15.0, 1, ""}, | 3468 | {true, true, true, 30, 600, 460, 1, SM_SIZELIMITED_SLICE, 450, 15.0, 1, ""}, |
| 3470 | {true, true, true, 30, 340, 96, 24, SM_DYN_SLICE, 1000, 30.0, 1, ""}, | 3469 | {true, true, true, 30, 340, 96, 24, SM_SIZELIMITED_SLICE, 1000, 30.0, 1, ""}, |
| 3471 | {true, true, true, 30, 140, 196, 51, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3470 | {true, true, true, 30, 140, 196, 51, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3472 | {true, true, true, 30, 110, 296, 50, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3471 | {true, true, true, 30, 110, 296, 50, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3473 | {true, true, true, 30, 104, 416, 44, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3472 | {true, true, true, 30, 104, 416, 44, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3474 | {true, true, true, 30, 16, 16, 2, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3473 | {true, true, true, 30, 16, 16, 2, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3475 | {false, false, true, 3, 4096, 2304, 2, SM_SINGLE_SLICE, 0, 7.5, 1, ""}, // large picture size | 3474 | {false, false, true, 3, 4096, 2304, 2, SM_SINGLE_SLICE, 0, 7.5, 1, ""}, // large picture size |
| 3476 | {false, true, false, 30, 32, 16, 2, SM_DYN_SLICE, 500, 7.5, 1, ""}, | 3475 | {false, true, false, 30, 32, 16, 2, SM_SIZELIMITED_SLICE, 500, 7.5, 1, ""}, |
| 3477 | {false, true, false, 30, 600, 460, 1, SM_DYN_SLICE, 450, 15.0, 4, ""}, | 3476 | {false, true, false, 30, 600, 460, 1, SM_SIZELIMITED_SLICE, 450, 15.0, 4, ""}, |
| 3478 | {false, true, false, 30, 340, 96, 24, SM_DYN_SLICE, 1000, 30.0, 2, ""}, | 3477 | {false, true, false, 30, 340, 96, 24, SM_SIZELIMITED_SLICE, 1000, 30.0, 2, ""}, |
| 3479 | {false, true, false, 30, 140, 196, 51, SM_DYN_SLICE, 500, 7.5, 3, ""}, | 3478 | {false, true, false, 30, 140, 196, 51, SM_SIZELIMITED_SLICE, 500, 7.5, 3, ""}, |
| 3480 | {false, true, false, 30, 110, 296, 50, SM_DYN_SLICE, 500, 7.5, 2, ""}, | 3479 | {false, true, false, 30, 110, 296, 50, SM_SIZELIMITED_SLICE, 500, 7.5, 2, ""}, |
| 3481 | {false, true, false, 30, 104, 416, 44, SM_DYN_SLICE, 500, 7.5, 2, ""}, | 3480 | {false, true, false, 30, 104, 416, 44, SM_SIZELIMITED_SLICE, 500, 7.5, 2, ""}, |
| 3482 | {false, true, false, 30, 16, 16, 2, SM_DYN_SLICE, 500, 7.5, 3, ""}, | 3481 | {false, true, false, 30, 16, 16, 2, SM_SIZELIMITED_SLICE, 500, 7.5, 3, ""}, |
| 3483 | {false, true, false, 30, 32, 16, 2, SM_DYN_SLICE, 500, 7.5, 3, ""}, | 3482 | {false, true, false, 30, 32, 16, 2, SM_SIZELIMITED_SLICE, 500, 7.5, 3, ""}, |
| 3484 | {false, false, true, 30, 600, 460, 1, SM_FIXEDSLCNUM_SLICE, 0, 15.0, 4, ""}, | 3483 | {false, false, true, 30, 600, 460, 1, SM_FIXEDSLCNUM_SLICE, 0, 15.0, 4, ""}, |
| 3485 | {false, false, true, 30, 600, 460, 1, SM_AUTO_SLICE, 0, 15.0, 4, ""}, | 3484 | {false, false, true, 30, 600, 460, 1, SM_FIXEDSLCNUM_SLICE, 0, 15.0, 8, ""}, |
| 3486 | }; | 3485 | }; |
| 3487 | 3486 | ||
| 3488 | class EncodeTestAPI : public ::testing::TestWithParam<EncodeOptionParam>, public ::EncodeDecodeTestAPIBase { | 3487 | class EncodeTestAPI : public ::testing::TestWithParam<EncodeOptionParam>, public ::EncodeDecodeTestAPIBase { |
| @@ -3533,9 +3532,9 @@ TEST_P (EncodeTestAPI, SetEncOptionSize) { · 44 unmodified lines | |||
| 3533 | param_.sSpatialLayers[0].iVideoWidth = p.iWidth ; | 3532 | param_.sSpatialLayers[0].iVideoWidth = p.iWidth ; |
| 3534 | param_.sSpatialLayers[0].iVideoHeight = p.iHeight; | 3533 | param_.sSpatialLayers[0].iVideoHeight = p.iHeight; |
| 3535 | param_.sSpatialLayers[0].fFrameRate = p.fFramerate; | 3534 | param_.sSpatialLayers[0].fFrameRate = p.fFramerate; |
| 3536 | param_.sSpatialLayers[0].sSliceCfg.uiSliceMode = p.eSliceMode; | 3535 | param_.sSpatialLayers[0].sSliceArgument.uiSliceMode = p.eSliceMode; |
| 3537 | if (SM_AUTO_SLICE == p.eSliceMode || SM_FIXEDSLCNUM_SLICE == p.eSliceMode ) { | 3536 | if ( SM_FIXEDSLCNUM_SLICE == p.eSliceMode ) { |
| 3538 | param_.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = 8; | 3537 | param_.sSpatialLayers[0].sSliceArgument.uiSliceNum = 8; |
| 3539 | } | 3538 | } |
| 3540 | 3539 | ||
| 3541 | encoder_->Uninitialize(); | 3540 | encoder_->Uninitialize(); |
| @@ -3555,7 +3554,7 @@ TEST_P (EncodeTestAPI, SetEncOptionSize) { · 13 unmodified lines | |||
| 3555 | unsigned char* pData[3] = { NULL }; | 3554 | unsigned char* pData[3] = { NULL }; |
| 3556 | 3555 | ||
| 3557 | //FIXME: remove this after the multi-thread case is correctly handled in encoder | 3556 | //FIXME: remove this after the multi-thread case is correctly handled in encoder |
| 3558 | if (p.iThreads>1 && SM_DYN_SLICE == p.eSliceMode) { | 3557 | if (p.iThreads>1 && SM_SIZELIMITED_SLICE == p.eSliceMode) { |
| 3559 | p.bAllRandom = false; | 3558 | p.bAllRandom = false; |
| 3560 | } | 3559 | } |
| 3561 | 3560 | ||
| @@ -3742,18 +3741,19 @@ TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayer) { · 180 unmodified lines | |||
| 3742 | sParam.bSimulcastAVC = 1; | 3741 | sParam.bSimulcastAVC = 1; |
| 3743 | sParam.sSpatialLayers[0].iVideoWidth = (iWidth >> 2); | 3742 | sParam.sSpatialLayers[0].iVideoWidth = (iWidth >> 2); |
| 3744 | sParam.sSpatialLayers[0].iVideoHeight = (iHeight >> 2); | 3743 | sParam.sSpatialLayers[0].iVideoHeight = (iHeight >> 2); |
| 3745 | sParam.sSpatialLayers[0].sSliceCfg.uiSliceMode = SM_ROWMB_SLICE; | 3744 | sParam.sSpatialLayers[0].sSliceArgument.uiSliceMode = SM_RASTER_SLICE; |
| 3745 | sParam.sSpatialLayers[1].sSliceArgument.uiSliceMbNum[0] = 0; | ||
| 3746 | 3746 | ||
| 3747 | sParam.sSpatialLayers[1].iVideoWidth = (iWidth >> 1); | 3747 | sParam.sSpatialLayers[1].iVideoWidth = (iWidth >> 1); |
| 3748 | sParam.sSpatialLayers[1].iVideoHeight = (iHeight >> 1); | 3748 | sParam.sSpatialLayers[1].iVideoHeight = (iHeight >> 1); |
| 3749 | sParam.sSpatialLayers[1].sSliceCfg.uiSliceMode = SM_RASTER_SLICE; | 3749 | sParam.sSpatialLayers[1].sSliceArgument.uiSliceMode = SM_RASTER_SLICE; |
| 3750 | sParam.sSpatialLayers[1].sSliceCfg.sSliceArgument.uiSliceMbNum[0] = 30; | 3750 | sParam.sSpatialLayers[1].sSliceArgument.uiSliceMbNum[0] = 30; |
| 3751 | sParam.sSpatialLayers[1].sSliceCfg.sSliceArgument.uiSliceMbNum[1] = 32; | 3751 | sParam.sSpatialLayers[1].sSliceArgument.uiSliceMbNum[1] = 32; |
| 3752 | 3752 | ||
| 3753 | sParam.sSpatialLayers[2].iVideoWidth = iWidth; | 3753 | sParam.sSpatialLayers[2].iVideoWidth = iWidth; |
| 3754 | sParam.sSpatialLayers[2].iVideoHeight = iHeight; | 3754 | sParam.sSpatialLayers[2].iVideoHeight = iHeight; |
| 3755 | sParam.sSpatialLayers[2].sSliceCfg.uiSliceMode = SM_FIXEDSLCNUM_SLICE; | 3755 | sParam.sSpatialLayers[2].sSliceArgument.uiSliceMode = SM_FIXEDSLCNUM_SLICE; |
| 3756 | sParam.sSpatialLayers[2].sSliceCfg.sSliceArgument.uiSliceNum = (rand() % 30) + 1; | 3756 | sParam.sSpatialLayers[2].sSliceArgument.uiSliceNum = (rand() % 30) + 1; |
| 3757 | 3757 | ||
| 3758 | int rv = encoder_->InitializeExt (&sParam); | 3758 | int rv = encoder_->InitializeExt (&sParam); |
| 3759 | ASSERT_TRUE (rv == cmResultSuccess) << "Init Failed sParam: rv = " << rv;; | 3759 | ASSERT_TRUE (rv == cmResultSuccess) << "Init Failed sParam: rv = " << rv;; |
| @@ -3812,12 +3812,12 @@ TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayerMixed) { · 52 unmodified lines | |||
| 3812 | sParam.bSimulcastAVC = 1; | 3812 | sParam.bSimulcastAVC = 1; |
| 3813 | sParam.sSpatialLayers[0].iVideoWidth = (iWidth >> 2); | 3813 | sParam.sSpatialLayers[0].iVideoWidth = (iWidth >> 2); |
| 3814 | sParam.sSpatialLayers[0].iVideoHeight = (iHeight >> 2); | 3814 | sParam.sSpatialLayers[0].iVideoHeight = (iHeight >> 2); |
| 3815 | sParam.sSpatialLayers[0].sSliceCfg.uiSliceMode = SM_ROWMB_SLICE; | 3815 | sParam.sSpatialLayers[0].sSliceArgument.uiSliceMode = SM_RASTER_SLICE; |
| 3816 | 3816 | ||
| 3817 | sParam.sSpatialLayers[1].iVideoWidth = iWidth; | 3817 | sParam.sSpatialLayers[1].iVideoWidth = iWidth; |
| 3818 | sParam.sSpatialLayers[1].iVideoHeight = iHeight; | 3818 | sParam.sSpatialLayers[1].iVideoHeight = iHeight; |
| 3819 | sParam.sSpatialLayers[1].sSliceCfg.uiSliceMode = SM_FIXEDSLCNUM_SLICE; | 3819 | sParam.sSpatialLayers[1].sSliceArgument.uiSliceMode = SM_FIXEDSLCNUM_SLICE; |
| 3820 | sParam.sSpatialLayers[1].sSliceCfg.sSliceArgument.uiSliceNum = 1; | 3820 | sParam.sSpatialLayers[1].sSliceArgument.uiSliceNum = 1; |
| 3821 | 3821 | ||
| 3822 | int rv = encoder_->InitializeExt (&sParam); | 3822 | int rv = encoder_->InitializeExt (&sParam); |
| 3823 | ASSERT_TRUE (rv == cmResultSuccess) << "Init Failed sParam: rv = " << rv;; | 3823 | ASSERT_TRUE (rv == cmResultSuccess) << "Init Failed sParam: rv = " << rv;; |
| @@ -3876,8 +3876,8 @@ TEST_F (EncodeDecodeTestAPI, ThreadNumAndSliceNum) { · 52 unmodified lines | |||
| 3876 | sParam.bSimulcastAVC = 1; | 3876 | sParam.bSimulcastAVC = 1; |
| 3877 | sParam.sSpatialLayers[0].iVideoWidth = iWidth; | 3877 | sParam.sSpatialLayers[0].iVideoWidth = iWidth; |
| 3878 | sParam.sSpatialLayers[0].iVideoHeight = iHeight; | 3878 | sParam.sSpatialLayers[0].iVideoHeight = iHeight; |
| 3879 | sParam.sSpatialLayers[0].sSliceCfg.uiSliceMode = SM_FIXEDSLCNUM_SLICE; | 3879 | sParam.sSpatialLayers[0].sSliceArgument.uiSliceMode = SM_FIXEDSLCNUM_SLICE; |
| 3880 | sParam.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = (rand() % 2) ? (sParam.iMultipleThreadIdc + 1) : | 3880 | sParam.sSpatialLayers[0].sSliceArgument.uiSliceNum = (rand() % 2) ? (sParam.iMultipleThreadIdc + 1) : |
| 3881 | (sParam.iMultipleThreadIdc - 1); | 3881 | (sParam.iMultipleThreadIdc - 1); |
| 3882 | 3882 | ||
| 3883 | int rv = encoder_->InitializeExt (&sParam); | 3883 | int rv = encoder_->InitializeExt (&sParam); |