Showing the changes to test/decoder/DecUT_DecExt.cpp (1 of 4 files). Show all
Unified · Split
| @@ -145,8 +145,10 @@ void DecoderInterfaceTest::TestInitUninit() { · 144 unmodified lines | ||
| 145 | 145 | CM_RETURN eRet; |
| 146 | 146 | //No initialize, no GetOption can be done |
| 147 | 147 | m_pDec->Uninitialize(); |
| 148 | − eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput); | |
| 149 | − EXPECT_EQ (eRet, cmInitExpected); | |
| 148 | + for (int i = 0; i <= (int) DECODER_OPTION_TRACE_CALLBACK_CONTEXT; ++i) { | |
| 149 | + eRet = (CM_RETURN) m_pDec->GetOption ((DECODER_OPTION) i, &iOutput); | |
| 150 | + EXPECT_EQ (eRet, cmInitExpected); | |
| 151 | + } | |
| 150 | 152 | //Initialize first, can get input color format |
| 151 | 153 | m_sDecParam.eOutputColorFormat = (EVideoFormatType) 20; //just for test |
| 152 | 154 | m_pDec->Initialize (&m_sDecParam); |
| @@ -157,9 +159,11 @@ void DecoderInterfaceTest::TestInitUninit() { · 4 unmodified lines | ||
| 157 | 159 | //Uninitialize, no GetOption can be done |
| 158 | 160 | m_pDec->Uninitialize(); |
| 159 | 161 | iOutput = 21; |
| 160 | − eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput); | |
| 161 | − EXPECT_EQ (iOutput, 21); | |
| 162 | − EXPECT_EQ (eRet, cmInitExpected); | |
| 162 | + for (int i = 0; i <= (int) DECODER_OPTION_TRACE_CALLBACK_CONTEXT; ++i) { | |
| 163 | + eRet = (CM_RETURN) m_pDec->GetOption ((DECODER_OPTION) i, &iOutput); | |
| 164 | + EXPECT_EQ (iOutput, 21); | |
| 165 | + EXPECT_EQ (eRet, cmInitExpected); | |
| 166 | + } | |
| 163 | 167 | } |
| 164 | 168 | |
| 165 | 169 | //DECODER_OPTION_DATAFORMAT |
| @@ -168,6 +172,8 @@ void DecoderInterfaceTest::TestDataFormat() { · 2 unmodified lines | ||
| 168 | 172 | int iOut; |
| 169 | 173 | CM_RETURN eRet; |
| 170 | 174 | |
| 175 | + Init(); | |
| 176 | + | |
| 171 | 177 | //invalid input |
| 172 | 178 | eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_DATAFORMAT, NULL); |
| 173 | 179 | EXPECT_EQ (eRet, cmInitParaError); |
| @@ -179,6 +185,8 @@ void DecoderInterfaceTest::TestDataFormat() { · 5 unmodified lines | ||
| 179 | 185 | EXPECT_EQ (eRet, cmResultSuccess); |
| 180 | 186 | |
| 181 | 187 | EXPECT_EQ (iOut, (int32_t) videoFormatI420); |
| 188 | + | |
| 189 | + Uninit(); | |
| 182 | 190 | } |
| 183 | 191 | |
| 184 | 192 | //DECODER_OPTION_END_OF_STREAM |
| @@ -186,6 +194,8 @@ void DecoderInterfaceTest::TestEndOfStream() { · 1 unmodified line | ||
| 186 | 194 | int iTmp, iOut; |
| 187 | 195 | CM_RETURN eRet; |
| 188 | 196 | |
| 197 | + Init(); | |
| 198 | + | |
| 189 | 199 | //invalid input |
| 190 | 200 | eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_END_OF_STREAM, NULL); |
| 191 | 201 | EXPECT_EQ (eRet, cmInitParaError); |
| @@ -234,12 +244,48 @@ void DecoderInterfaceTest::TestEndOfStream() { · 42 unmodified lines | ||
| 234 | 244 | eRet = (CM_RETURN) m_pDec->DecodeFrame2 (NULL, 0, m_pData, &m_sBufferInfo); |
| 235 | 245 | eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_END_OF_STREAM, &iOut); |
| 236 | 246 | EXPECT_EQ (iOut, true); //decoder should have EOS == true |
| 247 | + | |
| 248 | + Uninit(); | |
| 237 | 249 | } |
| 238 | 250 | |
| 239 | 251 | |
| 240 | 252 | //DECODER_OPTION_VCL_NAL |
| 253 | +//Here Test illegal bitstream input | |
| 254 | +//legal bitstream decoding test, please see api test | |
| 241 | 255 | void DecoderInterfaceTest::TestVclNal() { |
| 242 | − //TODO | |
| 256 | + 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 | 291 | //DECODER_OPTION_TEMPORAL_ID |
| @@ -293,9 +339,6 @@ TEST_F (DecoderInterfaceTest, DecoderInterfaceAll) { · 47 unmodified lines | ||
| 293 | 339 | |
| 294 | 340 | //Initialize Uninitialize |
| 295 | 341 | TestInitUninit(); |
| 296 | − | |
| 297 | − //AfterInitialize is OK, do the following tests | |
| 298 | − Init(); | |
| 299 | 342 | //DECODER_OPTION_DATAFORMAT |
| 300 | 343 | TestDataFormat(); |
| 301 | 344 | //DECODER_OPTION_END_OF_STREAM |
| @@ -320,9 +363,6 @@ TEST_F (DecoderInterfaceTest, DecoderInterfaceAll) { · 18 unmodified lines | ||
| 320 | 363 | TestTraceCallback(); |
| 321 | 364 | //DECODER_OPTION_TRACE_CALLBACK_CONTEXT |
| 322 | 365 | TestTraceCallbackContext(); |
| 323 | − | |
| 324 | − //uninitialize | |
| 325 | − Uninit(); | |
| 326 | 366 | } |
| 327 | 367 | |
| 328 | 368 | |