History

add timestamp in decoder

dong zhang committed 11 years ago

Commit 2e5243e1 parent f48b2e510 files · +78 −8Browse files

Showing the changes to test/api/encode_decode_api_test.cpp (1 of 10 files). Show all

Unified · Split

test/api/encode_decode_api_test.cpp+47−0
@@ -1032,6 +1032,53 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECFlag_ERROR_CON_SLICE_COPY) { · 1031 unmodified lines
10321032 (void) iSkipedBytes;
10331033 }
10341034
1035+TEST_P (EncodeDecodeTestAPI, InOutTimeStamp) {
1036+ EncodeDecodeFileParamBase p = GetParam();
1037+ prepareParam (1, p.slicenum, p.width, p.height, p.frameRate);
1038+ encoder_->Uninitialize();
1039+ int rv = encoder_->InitializeExt (&param_);
1040+ ASSERT_TRUE (rv == cmResultSuccess);
1041+
1042+ InitialEncDec (p.width, p.height);
1043+ int32_t iTraceLevel = WELS_LOG_QUIET;
1044+ encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1045+ decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1046+ int32_t iSpsPpsIdAddition = 1;
1047+ encoder_->SetOption (ENCODER_OPTION_ENABLE_SPS_PPS_ID_ADDITION, &iSpsPpsIdAddition);
1048+ int32_t iIDRPeriod = 60;
1049+ encoder_->SetOption (ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);
1050+ SLTRConfig sLtrConfigVal;
1051+ sLtrConfigVal.bEnableLongTermReference = 1;
1052+ sLtrConfigVal.iLTRRefNum = 1;
1053+ encoder_->SetOption (ENCODER_OPTION_LTR, &sLtrConfigVal);
1054+ int32_t iLtrPeriod = 2;
1055+ encoder_->SetOption (ENCODER_LTR_MARKING_PERIOD, &iLtrPeriod);
1056+ int iIdx = 0;
1057+ int iSkipedBytes;
1058+ unsigned long long uiEncTimeStamp = 100;
1059+ while (iIdx <= p.numframes) {
1060+ EncodeOneFrame (1);
1061+ //decoding after each encoding frame
1062+ int len = 0;
1063+ encToDecData (info, len);
1064+ unsigned char* pData[3] = { NULL };
1065+ memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
1066+ uint32_t uiEcIdc = ERROR_CON_SLICE_COPY_CROSS_IDR_FREEZE_RES_CHANGE;
1067+ decoder_->SetOption (DECODER_OPTION_ERROR_CON_IDC, &uiEcIdc);
1068+ dstBufInfo_.uiInBsTimeStamp = uiEncTimeStamp;
1069+ rv = decoder_->DecodeFrame2 (info.sLayerInfo[0].pBsBuf, len, pData, &dstBufInfo_);
1070+ memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
1071+ dstBufInfo_.uiInBsTimeStamp = uiEncTimeStamp;
1072+ rv = decoder_->DecodeFrame2 (NULL, 0, pData, &dstBufInfo_); //reconstruction
1073+ if(dstBufInfo_.iBufferStatus == 1) {
1074+ EXPECT_EQ (uiEncTimeStamp, dstBufInfo_.uiOutYuvTimeStamp);
1075+ }
1076+ iIdx++;
1077+ uiEncTimeStamp++;
1078+ }
1079+ (void) iSkipedBytes;
1080+}
1081+
10351082 TEST_P (EncodeDecodeTestAPI, GetOptionTid_AVC_NOPREFIX) {
10361083 SLTRMarkingFeedback m_LTR_Marking_Feedback;
10371084 SLTRRecoverRequest m_LTR_Recover_Request;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t