History

add interface UT for memory align check

lyao2 committed 12 years ago

Commit d633f851 parent 010e4231 file · +118 −30Browse files

Showing the changes to test/encoder/EncUT_EncoderExt.cpp (1 of 1 file). Show all

Unified · Split

test/encoder/EncUT_EncoderExt.cpp+118−30
@@ -53,6 +53,7 @@ class EncoderInterfaceTest : public ::testing::Test { · 52 unmodified lines
53 }53 }
54 54
55 void TemporalLayerSettingTest();55 void TemporalLayerSettingTest();
56 void MemoryCheckTest();
56 void EncodeOneFrame (SEncParamBase* pEncParamBase);57 void EncodeOneFrame (SEncParamBase* pEncParamBase);
57 void PrepareOneSrcFrame();58 void PrepareOneSrcFrame();
58 void EncodeOneIDRandP (ISVCEncoder* pPtrEnc);59 void EncodeOneIDRandP (ISVCEncoder* pPtrEnc);
@@ -130,54 +131,141 @@ void EncoderInterfaceTest::TemporalLayerSettingTest() { · 71 unmodified lines
130 pParamExt->iTemporalLayerNum = 1;131 pParamExt->iTemporalLayerNum = 1;
131 pParamExt->iSpatialLayerNum = 1;132 pParamExt->iSpatialLayerNum = 1;
132 133
134 for(int i = 0; i < 2; i++){
135 pParamExt->iUsageType = (( i == 0 ) ? SCREEN_CONTENT_REAL_TIME : CAMERA_VIDEO_REAL_TIME);
136 int iResult = pPtrEnc->InitializeExt (pParamExt);
137 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
138
139 PrepareOneSrcFrame();
140
141 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
142 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
143 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR));
144
145 pSrcPic->uiTimeStamp = 30;
146 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
147 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
148 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeP));
149
150 memcpy (pOption, pParamExt, sizeof (SEncParamExt));
151 pOption ->iTemporalLayerNum = 4;
152
153 ENCODER_OPTION eOptionId = ENCODER_OPTION_SVC_ENCODE_PARAM_EXT;
154 iResult = pPtrEnc->SetOption (eOptionId, pOption);
155 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
156
157 pSrcPic->uiTimeStamp = 60;
158 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
159 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
160 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR));
161
162 pOption ->iTemporalLayerNum = 2;
163 iResult = pPtrEnc->SetOption (eOptionId, pOption);
164 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
165 pSrcPic->uiTimeStamp = 90;
166 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
167 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
168 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeP));
169
170 pOption ->iTemporalLayerNum = 4;
171 iResult = pPtrEnc->SetOption (eOptionId, pOption);
172 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
173 pSrcPic->uiTimeStamp = 120;
174 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
175 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
176 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeP));
177
178 pPtrEnc->Uninitialize();
179 }
180}
181
182TEST_F (EncoderInterfaceTest, TestTemporalLayerSetting) {
183 TemporalLayerSettingTest();
184}
185
186void EncoderInterfaceTest::MemoryCheckTest() {
187 #define MEM_VARY_SIZE 1024
188 #define IMAGE_VARY_SIZE 512
189 #define TEST_FRAMES 500
190
191 pParamExt->iPicWidth = 1280;
192 pParamExt->iPicHeight = 720;
193 pParamExt->iTargetBitrate = 60000;
194 pParamExt->sSpatialLayers[0].iVideoHeight = pParamExt->iPicHeight;
195 pParamExt->sSpatialLayers[0].iVideoWidth = pParamExt->iPicWidth;
196 pParamExt->sSpatialLayers[0].iSpatialBitrate = 50000;
197 pParamExt->iTemporalLayerNum = 3;
198 pParamExt->iSpatialLayerNum = 1;
199
133 int iResult = pPtrEnc->InitializeExt (pParamExt);200 int iResult = pPtrEnc->InitializeExt (pParamExt);
134 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));201 const int kiFrameNumber = TEST_FRAMES;
135 202
203 m_iWidth = pParamExt->iPicWidth;
204 m_iHeight = pParamExt->iPicHeight;
205 m_iPicResSize = m_iWidth * m_iHeight * 3 >> 1;
206 delete []pYUV;
207 pYUV = new unsigned char [m_iPicResSize];
136 PrepareOneSrcFrame();208 PrepareOneSrcFrame();
137 209
138 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);210 for(int i = 0; i < kiFrameNumber; i ++){
139 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));211 int iStartX = rand() % (m_iPicResSize >> 1);
140 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR));212 int iEndX = (iStartX + (rand() % MEM_VARY_SIZE)) % m_iPicResSize;
213 for (int j = iStartX; j < iEndX; j++)
214 pYUV[j] = rand() % 256;
141 215
142 pSrcPic->uiTimeStamp = 30;216 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
143 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);217 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
144 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));218 pSrcPic->uiTimeStamp += 30;
145 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeP));219 }
146 220
147 memcpy (pOption, pParamExt, sizeof (SEncParamExt));221 pParamExt->iPicWidth += (rand() << 1) % IMAGE_VARY_SIZE;
148 pOption ->iTemporalLayerNum = 4;222 pParamExt->iPicHeight += (rand() << 1) % IMAGE_VARY_SIZE;
223 m_iWidth = pParamExt->iPicWidth;
224 m_iHeight = pParamExt->iPicHeight;
225 m_iPicResSize = m_iWidth * m_iHeight * 3 >> 1;
226 delete []pYUV;
227 pYUV = new unsigned char [m_iPicResSize];
228
229 iResult = pPtrEnc->InitializeExt (pParamExt);
230 PrepareOneSrcFrame();
149 231
150 ENCODER_OPTION eOptionId = ENCODER_OPTION_SVC_ENCODE_PARAM_EXT;232 ENCODER_OPTION eOptionId = ENCODER_OPTION_SVC_ENCODE_PARAM_EXT;
233 memcpy (pOption, pParamExt, sizeof (SEncParamExt));
234 pOption ->iPicWidth = m_iWidth;
235 pOption ->iPicHeight = m_iHeight;
151 iResult = pPtrEnc->SetOption (eOptionId, pOption);236 iResult = pPtrEnc->SetOption (eOptionId, pOption);
152 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));237 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
153 238
154 pSrcPic->uiTimeStamp = 60;239 for(int i = 0; i < kiFrameNumber; i ++){
155 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);240 int iStartX = rand() % (m_iPicResSize >> 1);
156 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));241 int iEndX = (iStartX + (rand() % MEM_VARY_SIZE)) % m_iPicResSize;
157 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR));242 for (int j = iStartX; j < iEndX; j++)
243 pYUV[j] = rand() % 256;
158 244
159 pOption ->iTemporalLayerNum = 2;245 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
160 iResult = pPtrEnc->SetOption (eOptionId, pOption);246 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
161 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));247 pSrcPic->uiTimeStamp += 30;
162 pSrcPic->uiTimeStamp = 90;248 }
163 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
164 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
165 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeP));
166 249
167 pOption ->iTemporalLayerNum = 4;250 pOption ->iLTRRefNum += rand() % 8 + 1;
168 iResult = pPtrEnc->SetOption (eOptionId, pOption);251 iResult = pPtrEnc->SetOption (eOptionId, pOption);
169 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));252 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
170 pSrcPic->uiTimeStamp = 120;
171 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
172 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
173 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeP));
174 253
175 pPtrEnc->Uninitialize();254 for(int i = 0; i < kiFrameNumber; i ++){
255 int iStartX = rand() % (m_iPicResSize >> 1);
256 int iEndX = (iStartX + (rand() % MEM_VARY_SIZE)) % m_iPicResSize;
257 for (int j = iStartX; j < iEndX; j++)
258 pYUV[j] = rand() % 256;
176 259
260 iResult = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
261 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
262 pSrcPic->uiTimeStamp += 30;
263 }
264 pPtrEnc->Uninitialize();
177}265}
178 266
179TEST_F (EncoderInterfaceTest, TestTemporalLayerSetting) {267TEST_F (EncoderInterfaceTest, MemoryCheck) {
180 TemporalLayerSettingTest();268 MemoryCheckTest();
181}269}
182 270
183void GetValidEncParamBase (SEncParamBase* pEncParamBase) {271void GetValidEncParamBase (SEncParamBase* pEncParamBase) {
@@ -210,7 +298,7 @@ TEST_F (EncoderInterfaceTest, BasicInitializeTest) { · 26 unmodified lines
210 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));298 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
211 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR));299 EXPECT_EQ (sFbi.eFrameType, static_cast<int> (videoFrameTypeIDR));
212 300
213 pPtrEnc->Uninitialize();301 iResult = pPtrEnc->Uninitialize();
214 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));302 EXPECT_EQ (iResult, static_cast<int> (cmResultSuccess));
215}303}
216 304

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