History

refator for API test--prepareEncDecParam and EncodeOneFrame

shihuade committed 12 years ago

Commit d875d921 parent 6b1630c1 file · +95 −331Browse files

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

Unified · Split

test/api/encode_decode_api_test.cpp+95−331
@@ -90,9 +90,11 @@ class EncodeDecodeTestBase : public ::testing::TestWithParam<EncodeDecodeFilePar · 89 unmodified lines
90 }90 }
91 91
92 protected:92 protected:
93 SEncParamExt param_;93 SEncParamExt param_;
94 BufferedData buf_;94 BufferedData buf_;
95 SBufferInfo dstBufInfo_;95 SSourcePicture EncPic;
96 SFrameBSInfo info;
97 SBufferInfo dstBufInfo_;
96 std::vector<SLostSim> m_SLostSim;98 std::vector<SLostSim> m_SLostSim;
97 WelsTraceCallback pFunc;99 WelsTraceCallback pFunc;
98 STraceUnit sTrace;100 STraceUnit sTrace;
@@ -112,8 +114,40 @@ class EncodeDecodeTestAPI : public EncodeDecodeTestBase { · 13 unmodified lines
112 void prepareParam (int width, int height, float framerate) {114 void prepareParam (int width, int height, float framerate) {
113 EncodeDecodeTestBase::prepareParam (width, height, framerate);115 EncodeDecodeTestBase::prepareParam (width, height, framerate);
114 }116 }
117
118 void prepareEncDecParam(const EncodeDecodeFileParamBase EncDecFileParam);
119 void EncodeOneFrame() {
120 int frameSize = EncPic.iPicWidth * EncPic.iPicHeight * 3 / 2;
121 memset (buf_.data(), rand() % 256, frameSize);
122 int rv = encoder_->EncodeFrame (&EncPic, &info);
123 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
124 }
115};125};
116 126
127void EncodeDecodeTestAPI::prepareEncDecParam(const EncodeDecodeFileParamBase EncDecFileParam)
128{
129 // for encoder
130 // I420: 1(Y) + 1/4(U) + 1/4(V)
131 int frameSize = EncDecFileParam.width * EncDecFileParam.height * 3 / 2;
132
133 buf_.SetLength (frameSize);
134 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
135
136 memset (&EncPic, 0, sizeof (SSourcePicture));
137 EncPic.iPicWidth = EncDecFileParam.width;
138 EncPic.iPicHeight = EncDecFileParam.height;
139 EncPic.iColorFormat = videoFormatI420;
140 EncPic.iStride[0] = EncPic.iPicWidth;
141 EncPic.iStride[1] = EncPic.iStride[2] = EncPic.iPicWidth >> 1;
142 EncPic.pData[0] = buf_.data();
143 EncPic.pData[1] = EncPic.pData[0] + EncDecFileParam.width * EncDecFileParam.height;
144 EncPic.pData[2] = EncPic.pData[1] + (EncDecFileParam.width * EncDecFileParam.height >> 2);
145
146 //for decoder
147 memset (&info, 0, sizeof (SFrameBSInfo));
148}
149
150
117static const EncodeDecodeFileParamBase kFileParamArray[] = {151static const EncodeDecodeFileParamBase kFileParamArray[] = {
118 {300, 160, 96, 6.0f, 2, 1, "000000000000001010101010101010101010101001101010100000010101000011"},152 {300, 160, 96, 6.0f, 2, 1, "000000000000001010101010101010101010101001101010100000010101000011"},
119 {300, 140, 96, 6.0f, 4, 1, "000000000000001010101010101010101010101001101010100000010101000011"},153 {300, 140, 96, 6.0f, 4, 1, "000000000000001010101010101010101010101001101010100000010101000011"},
@@ -127,33 +161,19 @@ TEST_P (EncodeDecodeTestAPI, DecoderVclNal) { · 7 unmodified lines
127 int rv = encoder_->InitializeExt (&param_);161 int rv = encoder_->InitializeExt (&param_);
128 ASSERT_TRUE (rv == cmResultSuccess);162 ASSERT_TRUE (rv == cmResultSuccess);
129 163
130 //init for encoder
131 // I420: 1(Y) + 1/4(U) + 1/4(V)
132 int frameSize = p.width * p.height * 3 / 2;164 int frameSize = p.width * p.height * 3 / 2;
133 165
134 buf_.SetLength (frameSize);
135 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
136 int32_t iTraceLevel = WELS_LOG_QUIET;166 int32_t iTraceLevel = WELS_LOG_QUIET;
137 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);167 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
138 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);168 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
139 SFrameBSInfo info;
140 memset (&info, 0, sizeof (SFrameBSInfo));
141 169
142 SSourcePicture pic;170 prepareEncDecParam(p);
143 memset (&pic, 0, sizeof (SSourcePicture));171
144 pic.iPicWidth = p.width;
145 pic.iPicHeight = p.height;
146 pic.iColorFormat = videoFormatI420;
147 pic.iStride[0] = pic.iPicWidth;
148 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
149 pic.pData[0] = buf_.data();
150 pic.pData[1] = pic.pData[0] + p.width * p.height;
151 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
152 int iIdx = 0;172 int iIdx = 0;
153 while (iIdx <= p.numframes) {173 while (iIdx <= p.numframes) {
154 memset (buf_.data(), rand() % 256, frameSize);174
155 rv = encoder_->EncodeFrame (&pic, &info);175 EncodeOneFrame();
156 ASSERT_TRUE (rv == cmResultSuccess);176
157 //decoding after each encoding frame177 //decoding after each encoding frame
158 int vclNal, len = 0;178 int vclNal, len = 0;
159 encToDecData (info, len);179 encToDecData (info, len);
@@ -179,35 +199,18 @@ TEST_P (EncodeDecodeTestAPI, GetOptionFramenum) { · 19 unmodified lines
179 int rv = encoder_->InitializeExt (&param_);199 int rv = encoder_->InitializeExt (&param_);
180 ASSERT_TRUE (rv == cmResultSuccess);200 ASSERT_TRUE (rv == cmResultSuccess);
181 201
182 //init for encoder
183 // I420: 1(Y) + 1/4(U) + 1/4(V)
184 int frameSize = p.width * p.height * 3 / 2;202 int frameSize = p.width * p.height * 3 / 2;
185 int32_t iTraceLevel = WELS_LOG_QUIET;203 int32_t iTraceLevel = WELS_LOG_QUIET;
186 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);204 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
187 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);205 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
188 buf_.SetLength (frameSize);
189 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
190 206
191 SFrameBSInfo info;207 prepareEncDecParam(p);
192 memset (&info, 0, sizeof (SFrameBSInfo));
193 208
194 SSourcePicture pic;
195 memset (&pic, 0, sizeof (SSourcePicture));
196 pic.iPicWidth = p.width;
197 pic.iPicHeight = p.height;
198 pic.iColorFormat = videoFormatI420;
199 pic.iStride[0] = pic.iPicWidth;
200 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
201 pic.pData[0] = buf_.data();
202 pic.pData[1] = pic.pData[0] + p.width * p.height;
203 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
204 int32_t iEncFrameNum = -1;209 int32_t iEncFrameNum = -1;
205 int32_t iDecFrameNum;210 int32_t iDecFrameNum;
206 int iIdx = 0;211 int iIdx = 0;
207 while (iIdx <= p.numframes) {212 while (iIdx <= p.numframes) {
208 memset (buf_.data(), rand() % 256, frameSize);213 EncodeOneFrame();
209 rv = encoder_->EncodeFrame (&pic, &info);
210 ASSERT_TRUE (rv == cmResultSuccess);
211 //decoding after each encoding frame214 //decoding after each encoding frame
212 int len = 0;215 int len = 0;
213 encToDecData (info, len);216 encToDecData (info, len);
@@ -240,35 +243,22 @@ TEST_P (EncodeDecodeTestAPI, GetOptionIDR) { · 26 unmodified lines
240 int32_t iTraceLevel = WELS_LOG_QUIET;243 int32_t iTraceLevel = WELS_LOG_QUIET;
241 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);244 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
242 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);245 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
243 buf_.SetLength (frameSize);
244 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
245 246
246 SFrameBSInfo info;247 prepareEncDecParam(p);
247 memset (&info, 0, sizeof (SFrameBSInfo));
248 248
249 SSourcePicture pic;
250 memset (&pic, 0, sizeof (SSourcePicture));
251 pic.iPicWidth = p.width;
252 pic.iPicHeight = p.height;
253 pic.iColorFormat = videoFormatI420;
254 pic.iStride[0] = pic.iPicWidth;
255 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
256 pic.pData[0] = buf_.data();
257 pic.pData[1] = pic.pData[0] + p.width * p.height;
258 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
259 int32_t iEncCurIdrPicId = 0;249 int32_t iEncCurIdrPicId = 0;
260 int32_t iDecCurIdrPicId;250 int32_t iDecCurIdrPicId;
261 int32_t iIDRPeriod = 1;251 int32_t iIDRPeriod = 1;
262 int32_t iSpsPpsIdAddition = 0;252 int32_t iSpsPpsIdAddition = 0;
263 int iIdx = 0;253 int iIdx = 0;
264 while (iIdx <= p.numframes) {254 while (iIdx <= p.numframes) {
265 memset (buf_.data(), rand() % 256, frameSize);
266 iSpsPpsIdAddition = rand() % 2;255 iSpsPpsIdAddition = rand() % 2;
267 iIDRPeriod = (rand() % 150) + 1;256 iIDRPeriod = (rand() % 150) + 1;
268 encoder_->SetOption (ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);257 encoder_->SetOption (ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);
269 encoder_->SetOption (ENCODER_OPTION_ENABLE_SPS_PPS_ID_ADDITION, &iSpsPpsIdAddition);258 encoder_->SetOption (ENCODER_OPTION_ENABLE_SPS_PPS_ID_ADDITION, &iSpsPpsIdAddition);
270 rv = encoder_->EncodeFrame (&pic, &info);259
271 ASSERT_TRUE (rv == cmResultSuccess);260 EncodeOneFrame();
261
272 if (info.eFrameType == videoFrameTypeIDR) {262 if (info.eFrameType == videoFrameTypeIDR) {
273 iEncCurIdrPicId = (iSpsPpsIdAddition == 0) ? 0 : (iEncCurIdrPicId + 1);263 iEncCurIdrPicId = (iSpsPpsIdAddition == 0) ? 0 : (iEncCurIdrPicId + 1);
274 }264 }
@@ -493,21 +483,9 @@ TEST_P (EncodeDecodeTestAPI, GetOptionLTR_ALLIDR) { · 218 unmodified lines
493 int rv = encoder_->InitializeExt (&param_);483 int rv = encoder_->InitializeExt (&param_);
494 ASSERT_TRUE (rv == cmResultSuccess);484 ASSERT_TRUE (rv == cmResultSuccess);
495 int frameSize = p.width * p.height * 3 / 2;485 int frameSize = p.width * p.height * 3 / 2;
496 buf_.SetLength (frameSize);
497 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
498 486
499 SFrameBSInfo info;487 prepareEncDecParam(p);
500 memset (&info, 0, sizeof (SFrameBSInfo));488
501 SSourcePicture pic;
502 memset (&pic, 0, sizeof (SSourcePicture));
503 pic.iPicWidth = p.width;
504 pic.iPicHeight = p.height;
505 pic.iColorFormat = videoFormatI420;
506 pic.iStride[0] = pic.iPicWidth;
507 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
508 pic.pData[0] = buf_.data();
509 pic.pData[1] = pic.pData[0] + p.width * p.height;
510 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
511 int32_t iTraceLevel = WELS_LOG_QUIET;489 int32_t iTraceLevel = WELS_LOG_QUIET;
512 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);490 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
513 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);491 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -523,9 +501,7 @@ TEST_P (EncodeDecodeTestAPI, GetOptionLTR_ALLIDR) { · 9 unmodified lines
523 encoder_->SetOption (ENCODER_LTR_MARKING_PERIOD, &iLtrPeriod);501 encoder_->SetOption (ENCODER_LTR_MARKING_PERIOD, &iLtrPeriod);
524 int iIdx = 0;502 int iIdx = 0;
525 while (iIdx <= p.numframes) {503 while (iIdx <= p.numframes) {
526 memset (buf_.data(), rand() % 256, frameSize);504 EncodeOneFrame();
527 rv = encoder_->EncodeFrame (&pic, &info);
528 ASSERT_EQ (rv, cmResultSuccess);
529 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);505 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
530 encoder_->ForceIntraFrame (true);506 encoder_->ForceIntraFrame (true);
531 iIdx++;507 iIdx++;
@@ -603,21 +579,9 @@ TEST_P (EncodeDecodeTestAPI, GetOptionLTR_Engine) { · 71 unmodified lines
603 ASSERT_TRUE (rv == cmResultSuccess);579 ASSERT_TRUE (rv == cmResultSuccess);
604 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;580 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
605 int frameSize = p.width * p.height * 3 / 2;581 int frameSize = p.width * p.height * 3 / 2;
606 buf_.SetLength (frameSize);
607 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
608 SFrameBSInfo info;
609 memset (&info, 0, sizeof (SFrameBSInfo));
610 582
611 SSourcePicture pic;583 prepareEncDecParam(p);
612 memset (&pic, 0, sizeof (SSourcePicture));584
613 pic.iPicWidth = p.width;
614 pic.iPicHeight = p.height;
615 pic.iColorFormat = videoFormatI420;
616 pic.iStride[0] = pic.iPicWidth;
617 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
618 pic.pData[0] = buf_.data();
619 pic.pData[1] = pic.pData[0] + p.width * p.height;
620 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
621 int32_t iTraceLevel = WELS_LOG_QUIET;585 int32_t iTraceLevel = WELS_LOG_QUIET;
622 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);586 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
623 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);587 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -635,12 +599,10 @@ TEST_P (EncodeDecodeTestAPI, GetOptionLTR_Engine) { · 11 unmodified lines
635 int iLossIdx = 0;599 int iLossIdx = 0;
636 bool bVCLLoss = false;600 bool bVCLLoss = false;
637 while (iIdx <= p.numframes) {601 while (iIdx <= p.numframes) {
638 memset (buf_.data(), rand() % 256, frameSize);602 EncodeOneFrame();
639 rv = encoder_->EncodeFrame (&pic, &info);
640 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {603 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
641 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);604 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
642 }605 }
643 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
644 //decoding after each encoding frame606 //decoding after each encoding frame
645 int len = 0;607 int len = 0;
646 encToDecData (info, len);608 encToDecData (info, len);
@@ -683,21 +645,8 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECFlag_ERROR_CON_DISABLE) { · 36 unmodified lines
683 ASSERT_EQ (0, rv);645 ASSERT_EQ (0, rv);
684 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;646 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
685 int frameSize = p.width * p.height * 3 / 2;647 int frameSize = p.width * p.height * 3 / 2;
686 buf_.SetLength (frameSize);
687 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
688 SFrameBSInfo info;
689 memset (&info, 0, sizeof (SFrameBSInfo));
690 648
691 SSourcePicture pic;649 prepareEncDecParam(p);
692 memset (&pic, 0, sizeof (SSourcePicture));
693 pic.iPicWidth = p.width;
694 pic.iPicHeight = p.height;
695 pic.iColorFormat = videoFormatI420;
696 pic.iStride[0] = pic.iPicWidth;
697 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
698 pic.pData[0] = buf_.data();
699 pic.pData[1] = pic.pData[0] + p.width * p.height;
700 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
701 int32_t iTraceLevel = WELS_LOG_QUIET;650 int32_t iTraceLevel = WELS_LOG_QUIET;
702 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);651 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
703 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);652 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -716,12 +665,10 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECFlag_ERROR_CON_DISABLE) { · 12 unmodified lines
716 int iSkipedBytes;665 int iSkipedBytes;
717 bool bVCLLoss = false;666 bool bVCLLoss = false;
718 while (iIdx <= p.numframes) {667 while (iIdx <= p.numframes) {
719 memset (buf_.data(), rand() % 256, frameSize);668 EncodeOneFrame();
720 rv = encoder_->EncodeFrame (&pic, &info);
721 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {669 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
722 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);670 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
723 }671 }
724 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
725 //decoding after each encoding frame672 //decoding after each encoding frame
726 int len = 0;673 int len = 0;
727 encToDecData (info, len);674 encToDecData (info, len);
@@ -755,21 +702,8 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECFlag_ERROR_CON_SLICE_COPY) { · 27 unmodified lines
755 ASSERT_TRUE (rv == cmResultSuccess);702 ASSERT_TRUE (rv == cmResultSuccess);
756 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;703 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
757 int frameSize = p.width * p.height * 3 / 2;704 int frameSize = p.width * p.height * 3 / 2;
758 buf_.SetLength (frameSize);
759 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
760 SFrameBSInfo info;
761 memset (&info, 0, sizeof (SFrameBSInfo));
762 705
763 SSourcePicture pic;706 prepareEncDecParam(p);
764 memset (&pic, 0, sizeof (SSourcePicture));
765 pic.iPicWidth = p.width;
766 pic.iPicHeight = p.height;
767 pic.iColorFormat = videoFormatI420;
768 pic.iStride[0] = pic.iPicWidth;
769 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
770 pic.pData[0] = buf_.data();
771 pic.pData[1] = pic.pData[0] + p.width * p.height;
772 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
773 int32_t iTraceLevel = WELS_LOG_QUIET;707 int32_t iTraceLevel = WELS_LOG_QUIET;
774 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);708 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
775 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);709 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -788,12 +722,10 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECFlag_ERROR_CON_SLICE_COPY) { · 12 unmodified lines
788 int iSkipedBytes;722 int iSkipedBytes;
789 bool bVCLLoss = false;723 bool bVCLLoss = false;
790 while (iIdx <= p.numframes) {724 while (iIdx <= p.numframes) {
791 memset (buf_.data(), rand() % 256, frameSize);725 EncodeOneFrame();
792 rv = encoder_->EncodeFrame (&pic, &info);
793 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {726 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
794 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);727 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
795 }728 }
796 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
797 //decoding after each encoding frame729 //decoding after each encoding frame
798 int len = 0;730 int len = 0;
799 encToDecData (info, len);731 encToDecData (info, len);
@@ -829,21 +761,7 @@ TEST_P (EncodeDecodeTestAPI, GetOptionTid_AVC_NOPREFIX) { · 29 unmodified lines
829 ASSERT_TRUE (rv == cmResultSuccess);761 ASSERT_TRUE (rv == cmResultSuccess);
830 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;762 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
831 int frameSize = p.width * p.height * 3 / 2;763 int frameSize = p.width * p.height * 3 / 2;
832 buf_.SetLength (frameSize);764 prepareEncDecParam(p);
833 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
834 SFrameBSInfo info;
835 memset (&info, 0, sizeof (SFrameBSInfo));
836
837 SSourcePicture pic;
838 memset (&pic, 0, sizeof (SSourcePicture));
839 pic.iPicWidth = p.width;
840 pic.iPicHeight = p.height;
841 pic.iColorFormat = videoFormatI420;
842 pic.iStride[0] = pic.iPicWidth;
843 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
844 pic.pData[0] = buf_.data();
845 pic.pData[1] = pic.pData[0] + p.width * p.height;
846 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
847 int32_t iTraceLevel = WELS_LOG_QUIET;765 int32_t iTraceLevel = WELS_LOG_QUIET;
848 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);766 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
849 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);767 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -861,12 +779,10 @@ TEST_P (EncodeDecodeTestAPI, GetOptionTid_AVC_NOPREFIX) { · 11 unmodified lines
861 int iLossIdx = 0;779 int iLossIdx = 0;
862 bool bVCLLoss = false;780 bool bVCLLoss = false;
863 while (iIdx <= p.numframes) {781 while (iIdx <= p.numframes) {
864 memset (buf_.data(), rand() % 256, frameSize);782 EncodeOneFrame();
865 rv = encoder_->EncodeFrame (&pic, &info);
866 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {783 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
867 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);784 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
868 }785 }
869 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
870 //decoding after each encoding frame786 //decoding after each encoding frame
871 int len = 0;787 int len = 0;
872 encToDecData (info, len);788 encToDecData (info, len);
@@ -918,21 +834,8 @@ TEST_P (EncodeDecodeTestAPI, GetOptionTid_AVC_WITH_PREFIX_NOLOSS) { · 45 unmodified lines
918 ASSERT_TRUE (rv == cmResultSuccess);834 ASSERT_TRUE (rv == cmResultSuccess);
919 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;835 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
920 int frameSize = p.width * p.height * 3 / 2;836 int frameSize = p.width * p.height * 3 / 2;
921 buf_.SetLength (frameSize);
922 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
923 SFrameBSInfo info;
924 memset (&info, 0, sizeof (SFrameBSInfo));
925 837
926 SSourcePicture pic;838 prepareEncDecParam(p);
927 memset (&pic, 0, sizeof (SSourcePicture));
928 pic.iPicWidth = p.width;
929 pic.iPicHeight = p.height;
930 pic.iColorFormat = videoFormatI420;
931 pic.iStride[0] = pic.iPicWidth;
932 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
933 pic.pData[0] = buf_.data();
934 pic.pData[1] = pic.pData[0] + p.width * p.height;
935 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
936 int32_t iTraceLevel = WELS_LOG_QUIET;839 int32_t iTraceLevel = WELS_LOG_QUIET;
937 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);840 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
938 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);841 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -948,12 +851,10 @@ TEST_P (EncodeDecodeTestAPI, GetOptionTid_AVC_WITH_PREFIX_NOLOSS) { · 9 unmodified lines
948 encoder_->SetOption (ENCODER_LTR_MARKING_PERIOD, &iLtrPeriod);851 encoder_->SetOption (ENCODER_LTR_MARKING_PERIOD, &iLtrPeriod);
949 int iIdx = 0;852 int iIdx = 0;
950 while (iIdx <= p.numframes) {853 while (iIdx <= p.numframes) {
951 memset (buf_.data(), rand() % 256, frameSize);854 EncodeOneFrame();
952 rv = encoder_->EncodeFrame (&pic, &info);
953 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {855 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
954 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);856 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
955 }857 }
956 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
957 //decoding after each encoding frame858 //decoding after each encoding frame
958 int len = 0;859 int len = 0;
959 encToDecData (info, len);860 encToDecData (info, len);
@@ -996,21 +897,8 @@ TEST_P (EncodeDecodeTestAPI, GetOptionTid_SVC_L1_NOLOSS) { · 36 unmodified lines
996 ASSERT_TRUE (rv == cmResultSuccess);897 ASSERT_TRUE (rv == cmResultSuccess);
997 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;898 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
998 int frameSize = p.width * p.height * 3 / 2;899 int frameSize = p.width * p.height * 3 / 2;
999 buf_.SetLength (frameSize);
1000 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
1001 SFrameBSInfo info;
1002 memset (&info, 0, sizeof (SFrameBSInfo));
1003 900
1004 SSourcePicture pic;901 prepareEncDecParam(p);
1005 memset (&pic, 0, sizeof (SSourcePicture));
1006 pic.iPicWidth = p.width;
1007 pic.iPicHeight = p.height;
1008 pic.iColorFormat = videoFormatI420;
1009 pic.iStride[0] = pic.iPicWidth;
1010 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
1011 pic.pData[0] = buf_.data();
1012 pic.pData[1] = pic.pData[0] + p.width * p.height;
1013 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
1014 int32_t iTraceLevel = WELS_LOG_QUIET;902 int32_t iTraceLevel = WELS_LOG_QUIET;
1015 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);903 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1016 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);904 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -1026,12 +914,10 @@ TEST_P (EncodeDecodeTestAPI, GetOptionTid_SVC_L1_NOLOSS) { · 9 unmodified lines
1026 encoder_->SetOption (ENCODER_LTR_MARKING_PERIOD, &iLtrPeriod);914 encoder_->SetOption (ENCODER_LTR_MARKING_PERIOD, &iLtrPeriod);
1027 int iIdx = 0;915 int iIdx = 0;
1028 while (iIdx <= p.numframes) {916 while (iIdx <= p.numframes) {
1029 memset (buf_.data(), rand() % 256, frameSize);917 EncodeOneFrame();
1030 rv = encoder_->EncodeFrame (&pic, &info);
1031 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {918 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
1032 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);919 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
1033 }920 }
1034 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1035 //decoding after each encoding frame921 //decoding after each encoding frame
1036 int len = 0;922 int len = 0;
1037 encToDecData (info, len);923 encToDecData (info, len);
@@ -1069,21 +955,8 @@ TEST_P (EncodeDecodeTestAPI, SetOption_Trace) { · 31 unmodified lines
1069 ASSERT_TRUE (rv == cmResultSuccess);955 ASSERT_TRUE (rv == cmResultSuccess);
1070 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;956 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
1071 int frameSize = p.width * p.height * 3 / 2;957 int frameSize = p.width * p.height * 3 / 2;
1072 buf_.SetLength (frameSize);
1073 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
1074 SFrameBSInfo info;
1075 memset (&info, 0, sizeof (SFrameBSInfo));
1076 958
1077 SSourcePicture pic;959 prepareEncDecParam(p);
1078 memset (&pic, 0, sizeof (SSourcePicture));
1079 pic.iPicWidth = p.width;
1080 pic.iPicHeight = p.height;
1081 pic.iColorFormat = videoFormatI420;
1082 pic.iStride[0] = pic.iPicWidth;
1083 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
1084 pic.pData[0] = buf_.data();
1085 pic.pData[1] = pic.pData[0] + p.width * p.height;
1086 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
1087 int32_t iTraceLevel = WELS_LOG_QUIET;960 int32_t iTraceLevel = WELS_LOG_QUIET;
1088 pFunc = TestOutPutTrace;961 pFunc = TestOutPutTrace;
1089 pTraceInfo = &sTrace;962 pTraceInfo = &sTrace;
@@ -1109,16 +982,14 @@ TEST_P (EncodeDecodeTestAPI, SetOption_Trace) { · 19 unmodified lines
1109 int iLossIdx = 0;982 int iLossIdx = 0;
1110 bool bVCLLoss = false;983 bool bVCLLoss = false;
1111 while (iIdx <= p.numframes) {984 while (iIdx <= p.numframes) {
1112 memset (buf_.data(), rand() % 256, frameSize);
1113 iTraceLevel = rand() % 33;985 iTraceLevel = rand() % 33;
1114 sTrace.iTarLevel = iTraceLevel;986 sTrace.iTarLevel = iTraceLevel;
1115 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);987 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1116 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);988 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1117 rv = encoder_->EncodeFrame (&pic, &info);989 EncodeOneFrame();
1118 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {990 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
1119 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);991 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
1120 }992 }
1121 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1122 //decoding after each encoding frame993 //decoding after each encoding frame
1123 int len = 0;994 int len = 0;
1124 encToDecData (info, len);995 encToDecData (info, len);
@@ -1150,21 +1021,9 @@ TEST_P (EncodeDecodeTestAPI, SetOption_Trace_NULL) { · 25 unmodified lines
1150 ASSERT_TRUE (rv == cmResultSuccess);1021 ASSERT_TRUE (rv == cmResultSuccess);
1151 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;1022 m_LTR_Recover_Request.uiFeedbackType = NO_RECOVERY_REQUSET;
1152 int frameSize = p.width * p.height * 3 / 2;1023 int frameSize = p.width * p.height * 3 / 2;
1153 buf_.SetLength (frameSize);
1154 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
1155 SFrameBSInfo info;
1156 memset (&info, 0, sizeof (SFrameBSInfo));
1157 1024
1158 SSourcePicture pic;1025 prepareEncDecParam(p);
1159 memset (&pic, 0, sizeof (SSourcePicture));1026
1160 pic.iPicWidth = p.width;
1161 pic.iPicHeight = p.height;
1162 pic.iColorFormat = videoFormatI420;
1163 pic.iStride[0] = pic.iPicWidth;
1164 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
1165 pic.pData[0] = buf_.data();
1166 pic.pData[1] = pic.pData[0] + p.width * p.height;
1167 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
1168 int32_t iTraceLevel = WELS_LOG_QUIET;1027 int32_t iTraceLevel = WELS_LOG_QUIET;
1169 pFunc = NULL;1028 pFunc = NULL;
1170 pTraceInfo = NULL;1029 pTraceInfo = NULL;
@@ -1189,15 +1048,13 @@ TEST_P (EncodeDecodeTestAPI, SetOption_Trace_NULL) { · 18 unmodified lines
1189 int iLossIdx = 0;1048 int iLossIdx = 0;
1190 bool bVCLLoss = false;1049 bool bVCLLoss = false;
1191 while (iIdx <= p.numframes) {1050 while (iIdx <= p.numframes) {
1192 memset (buf_.data(), rand() % 256, frameSize);
1193 iTraceLevel = rand() % 33;1051 iTraceLevel = rand() % 33;
1194 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);1052 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1195 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);1053 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1196 rv = encoder_->EncodeFrame (&pic, &info);1054 EncodeOneFrame();
1197 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {1055 if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
1198 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);1056 ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
1199 }1057 }
1200 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1201 //decoding after each encoding frame1058 //decoding after each encoding frame
1202 int len = 0;1059 int len = 0;
1203 encToDecData (info, len);1060 encToDecData (info, len);
@@ -1238,21 +1095,8 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECIDC_GeneralSliceChange) { · 34 unmodified lines
1238 1095
1239 //Start for enc/dec1096 //Start for enc/dec
1240 int frameSize = p.width * p.height * 3 / 2;1097 int frameSize = p.width * p.height * 3 / 2;
1241 buf_.SetLength (frameSize);
1242 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
1243 SFrameBSInfo info;
1244 memset (&info, 0, sizeof (SFrameBSInfo));
1245 1098
1246 SSourcePicture pic;1099 prepareEncDecParam(p);
1247 memset (&pic, 0, sizeof (SSourcePicture));
1248 pic.iPicWidth = p.width;
1249 pic.iPicHeight = p.height;
1250 pic.iColorFormat = videoFormatI420;
1251 pic.iStride[0] = pic.iPicWidth;
1252 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
1253 pic.pData[0] = buf_.data();
1254 pic.pData[1] = pic.pData[0] + p.width * p.height;
1255 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
1256 int32_t iTraceLevel = WELS_LOG_QUIET;1100 int32_t iTraceLevel = WELS_LOG_QUIET;
1257 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);1101 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1258 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);1102 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
@@ -1264,9 +1108,7 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECIDC_GeneralSliceChange) { · 5 unmodified lines
1264 1108
1265 //enc/dec pictures1109 //enc/dec pictures
1266 while (iIdx <= p.numframes) {1110 while (iIdx <= p.numframes) {
1267 memset (buf_.data(), rand() % 256, frameSize);1111 EncodeOneFrame();
1268 rv = encoder_->EncodeFrame (&pic, &info);
1269 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1270 //decoding after each encoding frame1112 //decoding after each encoding frame
1271 len = 0;1113 len = 0;
1272 iPacketNum = 0;1114 iPacketNum = 0;
@@ -1339,29 +1181,13 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificFrameChange) { · 66 unmodified lines
1339 1181
1340 //Start for enc/dec1182 //Start for enc/dec
1341 int frameSize = p.width * p.height * 3 / 2;1183 int frameSize = p.width * p.height * 3 / 2;
1342 buf_.SetLength (frameSize);
1343 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
1344 SFrameBSInfo info;
1345 memset (&info, 0, sizeof (SFrameBSInfo));
1346
1347 SSourcePicture pic;
1348 memset (&pic, 0, sizeof (SSourcePicture));
1349 pic.iPicWidth = p.width;
1350 pic.iPicHeight = p.height;
1351 pic.iColorFormat = videoFormatI420;
1352 pic.iStride[0] = pic.iPicWidth;
1353 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
1354 pic.pData[0] = buf_.data();
1355 pic.pData[1] = pic.pData[0] + p.width * p.height;
1356 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
1357 int iIdx = 0;1184 int iIdx = 0;
1358 int len = 0;1185 int len = 0;
1359 unsigned char* pData[3] = { NULL };1186 unsigned char* pData[3] = { NULL };
1360 1187
1188 prepareEncDecParam(p);
1361 //Frame 0: IDR, EC_IDC=DISABLE, loss = 01189 //Frame 0: IDR, EC_IDC=DISABLE, loss = 0
1362 memset (buf_.data(), rand() % 256, frameSize);1190 EncodeOneFrame();
1363 rv = encoder_->EncodeFrame (&pic, &info);
1364 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1365 encToDecData (info, len);1191 encToDecData (info, len);
1366 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1192 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1367 EXPECT_EQ (uiGet, (ERROR_CON_IDC) ERROR_CON_DISABLE);1193 EXPECT_EQ (uiGet, (ERROR_CON_IDC) ERROR_CON_DISABLE);
@@ -1376,15 +1202,11 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificFrameChange) { · 8 unmodified lines
1376 iIdx++;1202 iIdx++;
1377 1203
1378 //Frame 1: P, EC_IDC=DISABLE, loss = 11204 //Frame 1: P, EC_IDC=DISABLE, loss = 1
1379 memset (buf_.data(), rand() % 256, frameSize);1205 EncodeOneFrame();
1380 rv = encoder_->EncodeFrame (&pic, &info);
1381 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1382 iIdx++;1206 iIdx++;
1383 1207
1384 //Frame 2: P, EC_IDC=DISABLE, loss = 01208 //Frame 2: P, EC_IDC=DISABLE, loss = 0
1385 memset (buf_.data(), rand() % 256, frameSize);1209 EncodeOneFrame();
1386 rv = encoder_->EncodeFrame (&pic, &info);
1387 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1388 encToDecData (info, len);1210 encToDecData (info, len);
1389 pData[0] = pData[1] = pData[2] = 0;1211 pData[0] = pData[1] = pData[2] = 0;
1390 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1212 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1404,9 +1226,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificFrameChange) { · 13 unmodified lines
1404 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1226 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1405 EXPECT_EQ (uiGet, uiEcIdc);1227 EXPECT_EQ (uiGet, uiEcIdc);
1406 //Frame 3: P, EC_IDC=SLICE_COPY, loss = 01228 //Frame 3: P, EC_IDC=SLICE_COPY, loss = 0
1407 memset (buf_.data(), rand() % 256, frameSize);1229 EncodeOneFrame();
1408 rv = encoder_->EncodeFrame (&pic, &info);
1409 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1410 encToDecData (info, len);1230 encToDecData (info, len);
1411 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1231 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1412 EXPECT_EQ (uiGet, (uint32_t) ERROR_CON_SLICE_COPY);1232 EXPECT_EQ (uiGet, (uint32_t) ERROR_CON_SLICE_COPY);
@@ -1426,9 +1246,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificFrameChange) { · 13 unmodified lines
1426 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1246 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1427 EXPECT_EQ (uiGet, uiEcIdc);1247 EXPECT_EQ (uiGet, uiEcIdc);
1428 //Frame 4: P, EC_IDC=DISABLE, loss = 01248 //Frame 4: P, EC_IDC=DISABLE, loss = 0
1429 memset (buf_.data(), rand() % 256, frameSize);1249 EncodeOneFrame();
1430 rv = encoder_->EncodeFrame (&pic, &info);
1431 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1432 encToDecData (info, len);1250 encToDecData (info, len);
1433 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1251 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1434 EXPECT_EQ (uiGet, (uint32_t) ERROR_CON_DISABLE);1252 EXPECT_EQ (uiGet, (uint32_t) ERROR_CON_DISABLE);
@@ -1445,9 +1263,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificFrameChange) { · 10 unmodified lines
1445 iIdx++;1263 iIdx++;
1446 1264
1447 //Frame 5: P, EC_IDC=DISABLE, loss = 11265 //Frame 5: P, EC_IDC=DISABLE, loss = 1
1448 memset (buf_.data(), rand() % 256, frameSize);1266 EncodeOneFrame();
1449 rv = encoder_->EncodeFrame (&pic, &info);
1450 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1451 iIdx++;1267 iIdx++;
1452 1268
1453 //set EC=FRAME_COPY1269 //set EC=FRAME_COPY
@@ -1456,16 +1272,12 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificFrameChange) { · 2 unmodified lines
1456 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1272 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1457 EXPECT_EQ (uiGet, uiEcIdc);1273 EXPECT_EQ (uiGet, uiEcIdc);
1458 //Frame 6: P, EC_IDC=FRAME_COPY, loss = 11274 //Frame 6: P, EC_IDC=FRAME_COPY, loss = 1
1459 memset (buf_.data(), rand() % 256, frameSize);1275 EncodeOneFrame();
1460 rv = encoder_->EncodeFrame (&pic, &info);
1461 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1462 EXPECT_EQ (uiGet, uiEcIdc);1276 EXPECT_EQ (uiGet, uiEcIdc);
1463 iIdx++;1277 iIdx++;
1464 1278
1465 //Frame 7: P, EC_IDC=FRAME_COPY, loss = 01279 //Frame 7: P, EC_IDC=FRAME_COPY, loss = 0
1466 memset (buf_.data(), rand() % 256, frameSize);1280 EncodeOneFrame();
1467 rv = encoder_->EncodeFrame (&pic, &info);
1468 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1469 encToDecData (info, len);1281 encToDecData (info, len);
1470 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1282 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1471 EXPECT_EQ (uiGet, (uint32_t) ERROR_CON_FRAME_COPY);1283 EXPECT_EQ (uiGet, (uint32_t) ERROR_CON_FRAME_COPY);
@@ -1505,30 +1317,15 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRLoss) { · 33 unmodified lines
1505 1317
1506 //Start for enc/dec1318 //Start for enc/dec
1507 int frameSize = p.width * p.height * 3 / 2;1319 int frameSize = p.width * p.height * 3 / 2;
1508 buf_.SetLength (frameSize);
1509 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
1510 SFrameBSInfo info;
1511 memset (&info, 0, sizeof (SFrameBSInfo));
1512
1513 SSourcePicture pic;
1514 memset (&pic, 0, sizeof (SSourcePicture));
1515 pic.iPicWidth = p.width;
1516 pic.iPicHeight = p.height;
1517 pic.iColorFormat = videoFormatI420;
1518 pic.iStride[0] = pic.iPicWidth;
1519 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
1520 pic.pData[0] = buf_.data();
1521 pic.pData[1] = pic.pData[0] + p.width * p.height;
1522 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
1523 int iIdx = 0;1320 int iIdx = 0;
1524 int len = 0;1321 int len = 0;
1525 unsigned char* pData[3] = { NULL };1322 unsigned char* pData[3] = { NULL };
1526 int iTotalSliceSize = 0;1323 int iTotalSliceSize = 0;
1527 1324
1325 prepareEncDecParam(p);
1326
1528 //Frame 0: IDR, EC_IDC=2, loss = 21327 //Frame 0: IDR, EC_IDC=2, loss = 2
1529 memset (buf_.data(), rand() % 256, frameSize);1328 EncodeOneFrame();
1530 rv = encoder_->EncodeFrame (&pic, &info);
1531 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1532 iTotalSliceSize = 0;1329 iTotalSliceSize = 0;
1533 encToDecSliceData (0, 0, info, len); //SPS1330 encToDecSliceData (0, 0, info, len); //SPS
1534 iTotalSliceSize = len;1331 iTotalSliceSize = len;
@@ -1550,9 +1347,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRLoss) { · 15 unmodified lines
1550 1347
1551 //Frame 1: P, EC_IDC=2, loss = 01348 //Frame 1: P, EC_IDC=2, loss = 0
1552 //will clean SPS/PPS status1349 //will clean SPS/PPS status
1553 memset (buf_.data(), rand() % 256, frameSize);1350 EncodeOneFrame();
1554 rv = encoder_->EncodeFrame (&pic, &info);
1555 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1556 encToDecData (info, len); //all slice together1351 encToDecData (info, len); //all slice together
1557 pData[0] = pData[1] = pData[2] = 0;1352 pData[0] = pData[1] = pData[2] = 0;
1558 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1353 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1573,9 +1368,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRLoss) { · 14 unmodified lines
1573 EXPECT_EQ (uiGet, uiEcIdc);1368 EXPECT_EQ (uiGet, uiEcIdc);
1574 //Frame 2: P, EC_IDC=0, loss = 01369 //Frame 2: P, EC_IDC=0, loss = 0
1575 /////will clean SPS/PPS status1370 /////will clean SPS/PPS status
1576 memset (buf_.data(), rand() % 256, frameSize);1371 EncodeOneFrame();
1577 rv = encoder_->EncodeFrame (&pic, &info);
1578 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1579 encToDecData (info, len); //all slice together1372 encToDecData (info, len); //all slice together
1580 pData[0] = pData[1] = pData[2] = 0;1373 pData[0] = pData[1] = pData[2] = 0;
1581 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1374 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1596,9 +1389,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRLoss) { · 14 unmodified lines
1596 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1389 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1597 EXPECT_EQ (uiGet, uiEcIdc);1390 EXPECT_EQ (uiGet, uiEcIdc);
1598 //Frame 3: P, EC_IDC=2, loss = 11391 //Frame 3: P, EC_IDC=2, loss = 1
1599 memset (buf_.data(), rand() % 256, frameSize);1392 EncodeOneFrame();
1600 rv = encoder_->EncodeFrame (&pic, &info);
1601 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1602 encToDecSliceData (0, 0, info, iTotalSliceSize); //slice 1 lost1393 encToDecSliceData (0, 0, info, iTotalSliceSize); //slice 1 lost
1603 encToDecSliceData (0, 1, info, len); //slice 21394 encToDecSliceData (0, 1, info, len); //slice 2
1604 pData[0] = pData[1] = pData[2] = 0;1395 pData[0] = pData[1] = pData[2] = 0;
@@ -1619,9 +1410,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRLoss) { · 14 unmodified lines
1619 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);1410 decoder_->GetOption (DECODER_OPTION_ERROR_CON_IDC, &uiGet);
1620 EXPECT_EQ (uiGet, uiEcIdc);1411 EXPECT_EQ (uiGet, uiEcIdc);
1621 //Frame 4: P, EC_IDC=0, loss = 01412 //Frame 4: P, EC_IDC=0, loss = 0
1622 memset (buf_.data(), rand() % 256, frameSize);1413 EncodeOneFrame();
1623 rv = encoder_->EncodeFrame (&pic, &info);
1624 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1625 encToDecData (info, len); //all slice1414 encToDecData (info, len); //all slice
1626 pData[0] = pData[1] = pData[2] = 0;1415 pData[0] = pData[1] = pData[2] = 0;
1627 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1416 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1663,26 +1452,13 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRNoLoss) { · 35 unmodified lines
1663 1452
1664 //Start for enc/dec1453 //Start for enc/dec
1665 int frameSize = p.width * p.height * 3 / 2;1454 int frameSize = p.width * p.height * 3 / 2;
1666 buf_.SetLength (frameSize);
1667 ASSERT_TRUE (buf_.Length() == (size_t)frameSize);
1668 SFrameBSInfo info;
1669 memset (&info, 0, sizeof (SFrameBSInfo));
1670
1671 SSourcePicture pic;
1672 memset (&pic, 0, sizeof (SSourcePicture));
1673 pic.iPicWidth = p.width;
1674 pic.iPicHeight = p.height;
1675 pic.iColorFormat = videoFormatI420;
1676 pic.iStride[0] = pic.iPicWidth;
1677 pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
1678 pic.pData[0] = buf_.data();
1679 pic.pData[1] = pic.pData[0] + p.width * p.height;
1680 pic.pData[2] = pic.pData[1] + (p.width * p.height >> 2);
1681 int iIdx = 0;1455 int iIdx = 0;
1682 int len = 0;1456 int len = 0;
1683 unsigned char* pData[3] = { NULL };1457 unsigned char* pData[3] = { NULL };
1684 int iTotalSliceSize = 0;1458 int iTotalSliceSize = 0;
1685 1459
1460 prepareEncDecParam(p);
1461
1686 //set EC=DISABLE1462 //set EC=DISABLE
1687 uiEcIdc = (uint32_t) (ERROR_CON_DISABLE);1463 uiEcIdc = (uint32_t) (ERROR_CON_DISABLE);
1688 decoder_->SetOption (DECODER_OPTION_ERROR_CON_IDC, &uiEcIdc);1464 decoder_->SetOption (DECODER_OPTION_ERROR_CON_IDC, &uiEcIdc);
@@ -1690,9 +1466,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRNoLoss) { · 1 unmodified line
1690 EXPECT_EQ (uiGet, uiEcIdc);1466 EXPECT_EQ (uiGet, uiEcIdc);
1691 //Frame 0: IDR, EC_IDC=0, loss = 01467 //Frame 0: IDR, EC_IDC=0, loss = 0
1692 //Expected result: all OK, 2nd Output1468 //Expected result: all OK, 2nd Output
1693 memset (buf_.data(), rand() % 256, frameSize);1469 EncodeOneFrame();
1694 rv = encoder_->EncodeFrame (&pic, &info);
1695 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1696 encToDecData (info, len); //all slice1470 encToDecData (info, len); //all slice
1697 pData[0] = pData[1] = pData[2] = 0;1471 pData[0] = pData[1] = pData[2] = 0;
1698 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1472 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1707,9 +1481,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRNoLoss) { · 8 unmodified lines
1707 1481
1708 //Frame 1: P, EC_IDC=0, loss = 01482 //Frame 1: P, EC_IDC=0, loss = 0
1709 //Expected result: all OK, 2nd Output1483 //Expected result: all OK, 2nd Output
1710 memset (buf_.data(), rand() % 256, frameSize);1484 EncodeOneFrame();
1711 rv = encoder_->EncodeFrame (&pic, &info);
1712 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1713 encToDecData (info, len); //all slice together1485 encToDecData (info, len); //all slice together
1714 pData[0] = pData[1] = pData[2] = 0;1486 pData[0] = pData[1] = pData[2] = 0;
1715 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1487 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1725,9 +1497,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRNoLoss) { · 9 unmodified lines
1725 1497
1726 //Frame 2: P, EC_IDC=0, loss = 11498 //Frame 2: P, EC_IDC=0, loss = 1
1727 //Expected result: all OK, no Output1499 //Expected result: all OK, no Output
1728 memset (buf_.data(), rand() % 256, frameSize);1500 EncodeOneFrame();
1729 rv = encoder_->EncodeFrame (&pic, &info);
1730 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1731 encToDecSliceData (0, 0, info, iTotalSliceSize); // slice 1 lost1501 encToDecSliceData (0, 0, info, iTotalSliceSize); // slice 1 lost
1732 encToDecSliceData (0, 1, info, len); // slice 2 only1502 encToDecSliceData (0, 1, info, len); // slice 2 only
1733 pData[0] = pData[1] = pData[2] = 0;1503 pData[0] = pData[1] = pData[2] = 0;
@@ -1749,9 +1519,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRNoLoss) { · 15 unmodified lines
1749 EXPECT_EQ (uiGet, uiEcIdc);1519 EXPECT_EQ (uiGet, uiEcIdc);
1750 //Frame 3: P, EC_IDC=2, loss = 21520 //Frame 3: P, EC_IDC=2, loss = 2
1751 //Expected result: neither OK, 1st Output1521 //Expected result: neither OK, 1st Output
1752 memset (buf_.data(), rand() % 256, frameSize);1522 EncodeOneFrame();
1753 rv = encoder_->EncodeFrame (&pic, &info);
1754 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1755 encToDecSliceData (0, 0, info, len); //slice 1 only1523 encToDecSliceData (0, 0, info, len); //slice 1 only
1756 pData[0] = pData[1] = pData[2] = 0;1524 pData[0] = pData[1] = pData[2] = 0;
1757 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1525 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1772,9 +1540,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRNoLoss) { · 14 unmodified lines
1772 EXPECT_EQ (uiGet, uiEcIdc);1540 EXPECT_EQ (uiGet, uiEcIdc);
1773 //Frame 4: P, EC_IDC=0, loss = 01541 //Frame 4: P, EC_IDC=0, loss = 0
1774 //Expected result: depends on DecodeFrame2 result. If OK, output; else ,no output1542 //Expected result: depends on DecodeFrame2 result. If OK, output; else ,no output
1775 memset (buf_.data(), rand() % 256, frameSize);1543 EncodeOneFrame();
1776 rv = encoder_->EncodeFrame (&pic, &info);
1777 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1778 encToDecData (info, len); //all slice1544 encToDecData (info, len); //all slice
1779 pData[0] = pData[1] = pData[2] = 0;1545 pData[0] = pData[1] = pData[2] = 0;
1780 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));1546 memset (&dstBufInfo_, 0, sizeof (SBufferInfo));
@@ -1795,9 +1561,7 @@ TEST_F (EncodeDecodeTestAPI, SetOptionECIDC_SpecificSliceChange_IDRNoLoss) { · 14 unmodified lines
1795 //Expected result: depends on DecodeFrame2 result. If OK, output; else ,no output1561 //Expected result: depends on DecodeFrame2 result. If OK, output; else ,no output
1796 int32_t iIDRPeriod = 1;1562 int32_t iIDRPeriod = 1;
1797 encoder_->SetOption (ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);1563 encoder_->SetOption (ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);
1798 memset (buf_.data(), rand() % 256, frameSize);1564 EncodeOneFrame();
1799 rv = encoder_->EncodeFrame (&pic, &info);
1800 ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
1801 EXPECT_TRUE (info.eFrameType == videoFrameTypeIDR);1565 EXPECT_TRUE (info.eFrameType == videoFrameTypeIDR);
1802 encToDecSliceData (0, 0, info, len); //SPS1566 encToDecSliceData (0, 0, info, len); //SPS
1803 iTotalSliceSize = len;1567 iTotalSliceSize = len;

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