History

enable api test for decoder VclNal

huili2 committed 12 years ago

Commit f82726d1 parent 49f8fe84 files · +185 −13Browse files

Showing the changes to test/decoder/DecUT_DecExt.cpp (1 of 4 files). Show all

Unified · Split

test/decoder/DecUT_DecExt.cpp+52−12
@@ -145,8 +145,10 @@ void DecoderInterfaceTest::TestInitUninit() { · 144 unmodified lines
145 CM_RETURN eRet;145 CM_RETURN eRet;
146 //No initialize, no GetOption can be done146 //No initialize, no GetOption can be done
147 m_pDec->Uninitialize();147 m_pDec->Uninitialize();
148 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput);148 for (int i = 0; i <= (int) DECODER_OPTION_TRACE_CALLBACK_CONTEXT; ++i) {
149 EXPECT_EQ (eRet, cmInitExpected);149 eRet = (CM_RETURN) m_pDec->GetOption ((DECODER_OPTION) i, &iOutput);
150 EXPECT_EQ (eRet, cmInitExpected);
151 }
150 //Initialize first, can get input color format152 //Initialize first, can get input color format
151 m_sDecParam.eOutputColorFormat = (EVideoFormatType) 20; //just for test153 m_sDecParam.eOutputColorFormat = (EVideoFormatType) 20; //just for test
152 m_pDec->Initialize (&m_sDecParam);154 m_pDec->Initialize (&m_sDecParam);
@@ -157,9 +159,11 @@ void DecoderInterfaceTest::TestInitUninit() { · 4 unmodified lines
157 //Uninitialize, no GetOption can be done159 //Uninitialize, no GetOption can be done
158 m_pDec->Uninitialize();160 m_pDec->Uninitialize();
159 iOutput = 21;161 iOutput = 21;
160 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput);162 for (int i = 0; i <= (int) DECODER_OPTION_TRACE_CALLBACK_CONTEXT; ++i) {
161 EXPECT_EQ (iOutput, 21);163 eRet = (CM_RETURN) m_pDec->GetOption ((DECODER_OPTION) i, &iOutput);
162 EXPECT_EQ (eRet, cmInitExpected);164 EXPECT_EQ (iOutput, 21);
165 EXPECT_EQ (eRet, cmInitExpected);
166 }
163}167}
164 168
165//DECODER_OPTION_DATAFORMAT169//DECODER_OPTION_DATAFORMAT
@@ -168,6 +172,8 @@ void DecoderInterfaceTest::TestDataFormat() { · 2 unmodified lines
168 int iOut;172 int iOut;
169 CM_RETURN eRet;173 CM_RETURN eRet;
170 174
175 Init();
176
171 //invalid input177 //invalid input
172 eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_DATAFORMAT, NULL);178 eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_DATAFORMAT, NULL);
173 EXPECT_EQ (eRet, cmInitParaError);179 EXPECT_EQ (eRet, cmInitParaError);
@@ -179,6 +185,8 @@ void DecoderInterfaceTest::TestDataFormat() { · 5 unmodified lines
179 EXPECT_EQ (eRet, cmResultSuccess);185 EXPECT_EQ (eRet, cmResultSuccess);
180 186
181 EXPECT_EQ (iOut, (int32_t) videoFormatI420);187 EXPECT_EQ (iOut, (int32_t) videoFormatI420);
188
189 Uninit();
182}190}
183 191
184//DECODER_OPTION_END_OF_STREAM192//DECODER_OPTION_END_OF_STREAM
@@ -186,6 +194,8 @@ void DecoderInterfaceTest::TestEndOfStream() { · 1 unmodified line
186 int iTmp, iOut;194 int iTmp, iOut;
187 CM_RETURN eRet;195 CM_RETURN eRet;
188 196
197 Init();
198
189 //invalid input199 //invalid input
190 eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_END_OF_STREAM, NULL);200 eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_END_OF_STREAM, NULL);
191 EXPECT_EQ (eRet, cmInitParaError);201 EXPECT_EQ (eRet, cmInitParaError);
@@ -234,12 +244,48 @@ void DecoderInterfaceTest::TestEndOfStream() { · 42 unmodified lines
234 eRet = (CM_RETURN) m_pDec->DecodeFrame2 (NULL, 0, m_pData, &m_sBufferInfo);244 eRet = (CM_RETURN) m_pDec->DecodeFrame2 (NULL, 0, m_pData, &m_sBufferInfo);
235 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_END_OF_STREAM, &iOut);245 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_END_OF_STREAM, &iOut);
236 EXPECT_EQ (iOut, true); //decoder should have EOS == true246 EXPECT_EQ (iOut, true); //decoder should have EOS == true
247
248 Uninit();
237}249}
238 250
239 251
240//DECODER_OPTION_VCL_NAL252//DECODER_OPTION_VCL_NAL
253//Here Test illegal bitstream input
254//legal bitstream decoding test, please see api test
241void DecoderInterfaceTest::TestVclNal() {255void DecoderInterfaceTest::TestVclNal() {
242 //TODO256 int iTmp, iOut;
257 CM_RETURN eRet;
258
259 Init();
260
261 //Test SetOption
262 //VclNal never supports SetOption
263 iTmp = rand();
264 eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_VCL_NAL, &iTmp);
265 EXPECT_EQ (eRet, cmInitParaError);
266
267 //Test GetOption
268 //invalid input
269 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_VCL_NAL, NULL);
270 EXPECT_EQ (eRet, cmInitParaError);
271
272 //valid input without actual decoding
273 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_VCL_NAL, &iOut);
274 EXPECT_EQ (eRet, cmResultSuccess);
275 EXPECT_EQ (iOut, FEEDBACK_NON_VCL_NAL);
276
277 //valid input with decoding error
278 MockPacketType (NAL_UNIT_CODED_SLICE_IDR, 50);
279 m_pDec->DecodeFrame2 (m_szBuffer, m_iBufLength, m_pData, &m_sBufferInfo);
280 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_VCL_NAL, &iOut);
281 EXPECT_EQ (eRet, cmResultSuccess);
282 EXPECT_EQ (iOut, FEEDBACK_UNKNOWN_NAL);
283 m_pDec->DecodeFrame2 (NULL, 0, m_pData, &m_sBufferInfo);
284 eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_VCL_NAL, &iOut);
285 EXPECT_EQ (eRet, cmResultSuccess);
286 EXPECT_EQ (iOut, FEEDBACK_UNKNOWN_NAL);
287
288 Uninit();
243}289}
244 290
245//DECODER_OPTION_TEMPORAL_ID291//DECODER_OPTION_TEMPORAL_ID
@@ -293,9 +339,6 @@ TEST_F (DecoderInterfaceTest, DecoderInterfaceAll) { · 47 unmodified lines
293 339
294 //Initialize Uninitialize340 //Initialize Uninitialize
295 TestInitUninit();341 TestInitUninit();
296
297 //AfterInitialize is OK, do the following tests
298 Init();
299 //DECODER_OPTION_DATAFORMAT342 //DECODER_OPTION_DATAFORMAT
300 TestDataFormat();343 TestDataFormat();
301 //DECODER_OPTION_END_OF_STREAM344 //DECODER_OPTION_END_OF_STREAM
@@ -320,9 +363,6 @@ TEST_F (DecoderInterfaceTest, DecoderInterfaceAll) { · 18 unmodified lines
320 TestTraceCallback();363 TestTraceCallback();
321 //DECODER_OPTION_TRACE_CALLBACK_CONTEXT364 //DECODER_OPTION_TRACE_CALLBACK_CONTEXT
322 TestTraceCallbackContext();365 TestTraceCallbackContext();
323
324 //uninitialize
325 Uninit();
326}366}
327 367
328 368

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