DECODER_OPTION_GET_STATISTICS
| 513 | |
| 514 | //DECODER_OPTION_GET_STATISTICS |
| 515 | void DecoderInterfaceTest::TestGetDecStatistics() { |
| 516 | CM_RETURN eRet; |
| 517 | int32_t iRet; |
| 518 | SDecoderStatistics sDecStatic; |
| 519 | int32_t iError = 0; |
| 520 | |
| 521 | iRet = ValidInit(); |
| 522 | ASSERT_EQ (iRet, ERR_NONE); |
| 523 | //GetOption before decoding |
| 524 | m_pDec->GetOption (DECODER_OPTION_GET_STATISTICS, &sDecStatic); |
| 525 | EXPECT_EQ (0u, sDecStatic.uiDecodedFrameCount); |
| 526 | EXPECT_TRUE (-1 == sDecStatic.iAvgLumaQp); |
| 527 | // setoption not support, |
| 528 | eRet = (CM_RETURN)m_pDec->SetOption (DECODER_OPTION_GET_STATISTICS, NULL); |
| 529 | EXPECT_EQ (eRet, cmInitParaError); |
| 530 | //EC on UT |
| 531 | iError = 2; |
| 532 | m_pDec->SetOption (DECODER_OPTION_ERROR_CON_IDC, &iError); |
| 533 | //Decoder error bs |
| 534 | DecoderBs ("res/Error_I_P.264"); |
| 535 | m_pDec->GetOption (DECODER_OPTION_GET_STATISTICS, &sDecStatic); |
| 536 | EXPECT_EQ (65u, sDecStatic.uiAvgEcRatio); |
| 537 | EXPECT_EQ (7u, sDecStatic.uiAvgEcPropRatio); |
| 538 | EXPECT_EQ (5u, sDecStatic.uiDecodedFrameCount); |
| 539 | EXPECT_EQ (288u, sDecStatic.uiHeight); |
| 540 | EXPECT_EQ (1u, sDecStatic.uiIDRCorrectNum); |
| 541 | EXPECT_EQ (3u, sDecStatic.uiResolutionChangeTimes); |
| 542 | EXPECT_EQ (352u, sDecStatic.uiWidth); |
| 543 | EXPECT_EQ (4u, sDecStatic.uiEcFrameNum); |
| 544 | EXPECT_EQ (2u, sDecStatic.uiEcIDRNum); |
| 545 | EXPECT_EQ (0u, sDecStatic.uiIDRLostNum); |
| 546 | Uninit(); |
| 547 | |
| 548 | //Decoder error bs when the first IDR lost |
| 549 | iRet = ValidInit(); |
| 550 | ASSERT_EQ (iRet, ERR_NONE); |
| 551 | iError = 2; |
| 552 | m_pDec->SetOption (DECODER_OPTION_ERROR_CON_IDC, &iError); |
| 553 | DecoderBs ("res/BA_MW_D_IDR_LOST.264"); |
| 554 | m_pDec->GetOption (DECODER_OPTION_GET_STATISTICS, &sDecStatic); |
| 555 | EXPECT_EQ (88u, sDecStatic.uiAvgEcRatio); |
| 556 | EXPECT_EQ (88u, sDecStatic.uiAvgEcPropRatio); |
| 557 | EXPECT_EQ (97u, sDecStatic.uiDecodedFrameCount); |
| 558 | EXPECT_EQ (144u, sDecStatic.uiHeight); |
| 559 | EXPECT_EQ (3u, sDecStatic.uiIDRCorrectNum); |
| 560 | EXPECT_EQ (0u, sDecStatic.uiEcIDRNum); |
| 561 | EXPECT_EQ (1u, sDecStatic.uiResolutionChangeTimes); |
| 562 | EXPECT_EQ (176u, sDecStatic.uiWidth); |
| 563 | EXPECT_EQ (27u, sDecStatic.uiEcFrameNum); |
| 564 | EXPECT_EQ (1u, sDecStatic.uiIDRLostNum); |
| 565 | Uninit(); |
| 566 | |
| 567 | //ecoder error bs when the first P lost |
| 568 | iRet = ValidInit(); |
| 569 | ASSERT_EQ (iRet, ERR_NONE); |
| 570 | |
| 571 | iError = 2; |
| 572 | m_pDec->SetOption (DECODER_OPTION_ERROR_CON_IDC, &iError); |