| 17 | } |
| 18 | |
| 19 | TEST_P (EncodeDecodeTestAPI, DecoderVclNal) { |
| 20 | EncodeDecodeFileParamBase p = GetParam(); |
| 21 | prepareParamDefault (1, p.slicenum, p.width, p.height, p.frameRate, ¶m_); |
| 22 | encoder_->Uninitialize(); |
| 23 | int rv = encoder_->InitializeExt (¶m_); |
| 24 | ASSERT_TRUE (rv == cmResultSuccess); |
| 25 | |
| 26 | int32_t iTraceLevel = WELS_LOG_QUIET; |
| 27 | encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel); |
| 28 | decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel); |
| 29 | |
| 30 | ASSERT_TRUE (InitialEncDec (p.width, p.height)); |
| 31 | |
| 32 | int iIdx = 0; |
| 33 | while (iIdx <= p.numframes) { |
| 34 | |
| 35 | EncodeOneFrame (0); |
| 36 | |
| 37 | //decoding after each encoding frame |
| 38 | int vclNal, len = 0; |
| 39 | encToDecData (info, len); |
| 40 | unsigned char* pData[3] = { NULL }; |
| 41 | memset (&dstBufInfo_, 0, sizeof (SBufferInfo)); |
| 42 | rv = decoder_->DecodeFrame2 (info.sLayerInfo[0].pBsBuf, len, pData, &dstBufInfo_); |
| 43 | ASSERT_TRUE (rv == cmResultSuccess); |
| 44 | rv = decoder_->GetOption (DECODER_OPTION_VCL_NAL, &vclNal); |
| 45 | EXPECT_EQ (vclNal, FEEDBACK_UNKNOWN_NAL); //no reconstruction, unknown return |
| 46 | rv = decoder_->DecodeFrame2 (NULL, 0, pData, &dstBufInfo_); //reconstruction |
| 47 | ASSERT_TRUE (rv == cmResultSuccess); |
| 48 | rv = decoder_->GetOption (DECODER_OPTION_VCL_NAL, &vclNal); |
| 49 | EXPECT_EQ (vclNal, FEEDBACK_VCL_NAL); |
| 50 | iIdx++; |
| 51 | } //while |
| 52 | //ignore last frame |
| 53 | } |
| 54 | |
| 55 | TEST_P (EncodeDecodeTestAPI, GetOptionFramenum) { |
| 56 | EncodeDecodeFileParamBase p = GetParam(); |
nothing calls this directly
no test coverage detected