History

add decoder UT module for API

huili2 committed 12 years ago

Commit adc7be91 parent 39d490b2 files · +239 −0Browse files

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

Unified · Split

test/decoder/DecUT_DecExt.cpp+238−0
@@ -0,0 +1,238 @@
1+#include <gtest/gtest.h>
2+
3+#include "codec_def.h"
4+#include "codec_app_def.h"
5+#include "codec_api.h"
6+#include "wels_common_basis.h"
7+#include "mem_align.h"
8+#include "ls_defines.h"
9+
10+using namespace WelsDec;
11+
12+class DecoderInterfaceTest : public ::testing::Test {
13+ public:
14+ virtual void SetUp() {
15+ int rv = WelsCreateDecoder (&m_pDec);
16+ ASSERT_EQ (0, rv);
17+ ASSERT_TRUE (m_pDec != NULL);
18+ }
19+
20+ virtual void TearDown() {
21+ if (m_pDec) {
22+ WelsDestroyDecoder (m_pDec);
23+ }
24+ }
25+ //Init members
26+ void Init();
27+ //Uninit
28+ void Uninit() {}
29+ //Mock input data for test
30+ void MockPacketType (const EWelsNalUnitType eNalUnitType);
31+ //Test Initialize/Uninitialize
32+ void TestInitUninit();
33+ //DECODER_OPTION_DATAFORMAT
34+ void TestDataFormat();
35+ //DECODER_OPTION_END_OF_STREAM
36+ void TestEndOfStream();
37+ //DECODER_OPTION_VCL_NAL
38+ void TestVclNal();
39+ //DECODER_OPTION_TEMPORAL_ID
40+ void TestTemporalId();
41+ //DECODER_OPTION_FRAME_NUM
42+ void TestFrameNum();
43+ //DECODER_OPTION_IDR_PIC_ID
44+ void TestIdrPicId();
45+ //DECODER_OPTION_LTR_MARKING_FLAG
46+ void TestLtrMarkingFlag();
47+ //DECODER_OPTION_LTR_MARKED_FRAME_NUM
48+ void TestLtrMarkedFrameNum();
49+ //DECODER_OPTION_ERROR_CON_IDC
50+ void TestErrorConIdc();
51+ //DECODER_OPTION_TRACE_LEVEL
52+ void TestTraceLevel();
53+ //DECODER_OPTION_TRACE_CALLBACK
54+ void TestTraceCallback();
55+ //DECODER_OPTION_TRACE_CALLBACK_CONTEXT
56+ void TestTraceCallbackContext();
57+ //Do whole tests here
58+ void DecoderInterfaceAll();
59+
60+
61+ public:
62+ ISVCDecoder* m_pDec;
63+ SDecodingParam m_sDecParam;
64+ SBufferInfo m_sBufferInfo;
65+ uint8_t* m_pData[3];
66+ char m_szBuffer[100]; //for mocking packet
67+ int m_iBufLength; //record the valid data in m_szBuffer
68+};
69+
70+//Init members
71+void DecoderInterfaceTest::Init() {
72+ memset (&m_sBufferInfo, 0, sizeof (SBufferInfo));
73+ memset (&m_sDecParam, 0, sizeof (SDecodingParam));
74+ m_sDecParam.pFileNameRestructed = NULL;
75+ m_sDecParam.iOutputColorFormat = rand() % 100;
76+ m_sDecParam.uiCpuLoad = rand() % 100;
77+ m_sDecParam.uiTargetDqLayer = rand() % 100;
78+ m_sDecParam.eEcActiveIdc = (ERROR_CON_IDC) (rand() & 3);
79+ m_sDecParam.sVideoProperty.size = sizeof (SVideoProperty);
80+ m_sDecParam.sVideoProperty.eVideoBsType = (VIDEO_BITSTREAM_TYPE) (rand() % 3);
81+
82+ m_pData[0] = m_pData[1] = m_pData[2] = NULL;
83+ m_szBuffer[0] = m_szBuffer[1] = m_szBuffer[2] = 0;
84+ m_szBuffer[3] = 1;
85+ m_iBufLength = 4;
86+}
87+
88+//Mock input data for test
89+void DecoderInterfaceTest::MockPacketType (const EWelsNalUnitType eNalUnitType) {
90+ switch (eNalUnitType) {
91+ case NAL_UNIT_SEI:
92+ //TODO
93+ break;
94+ case NAL_UNIT_SPS:
95+ //TODO
96+ break;
97+ case NAL_UNIT_PPS:
98+ //TODO
99+ break;
100+ case NAL_UNIT_SUBSET_SPS:
101+ //TODO
102+ break;
103+ case NAL_UNIT_PREFIX:
104+ //TODO
105+ break;
106+ case NAL_UNIT_CODED_SLICE:
107+ //TODO
108+ break;
109+ case NAL_UNIT_CODED_SLICE_IDR:
110+ //TODO
111+ break;
112+ default:
113+ //TODO
114+ break;
115+
116+ m_szBuffer[m_iBufLength] = '\0';
117+ m_iBufLength++; //including '\0'
118+
119+ }
120+}
121+
122+//Test Initialize/Uninitialize
123+void DecoderInterfaceTest::TestInitUninit() {
124+ int iOutput;
125+ CM_RETURN eRet;
126+ //No initialize, no GetOption can be done
127+ m_pDec->Uninitialize();
128+ eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput);
129+ EXPECT_EQ (eRet, cmInitExpected);
130+ //Initialize first, can get input color format
131+ m_sDecParam.iOutputColorFormat = 20; //just for test
132+ m_pDec->Initialize (&m_sDecParam);
133+ eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput);
134+ EXPECT_EQ (eRet, cmResultSuccess);
135+ EXPECT_EQ (20, iOutput);
136+
137+ //Uninitialize, no GetOption can be done
138+ m_pDec->Uninitialize();
139+ iOutput = 21;
140+ eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput);
141+ EXPECT_EQ (iOutput, 21);
142+ EXPECT_EQ (eRet, cmInitExpected);
143+}
144+
145+//DECODER_OPTION_DATAFORMAT
146+void DecoderInterfaceTest::TestDataFormat() {
147+ //TODO
148+}
149+
150+//DECODER_OPTION_END_OF_STREAM
151+void DecoderInterfaceTest::TestEndOfStream() {
152+ //TODO
153+}
154+//DECODER_OPTION_VCL_NAL
155+void DecoderInterfaceTest::TestVclNal() {
156+ //TODO
157+}
158+
159+//DECODER_OPTION_TEMPORAL_ID
160+void DecoderInterfaceTest::TestTemporalId() {
161+ //TODO
162+}
163+
164+//DECODER_OPTION_FRAME_NUM
165+void DecoderInterfaceTest::TestFrameNum() {
166+ //TODO
167+}
168+
169+//DECODER_OPTION_IDR_PIC_ID
170+void DecoderInterfaceTest::TestIdrPicId() {
171+ //TODO
172+}
173+
174+//DECODER_OPTION_LTR_MARKING_FLAG
175+void DecoderInterfaceTest::TestLtrMarkingFlag() {
176+ //TODO
177+}
178+
179+//DECODER_OPTION_LTR_MARKED_FRAME_NUM
180+void DecoderInterfaceTest::TestLtrMarkedFrameNum() {
181+ //TODO
182+}
183+
184+//DECODER_OPTION_ERROR_CON_IDC
185+void DecoderInterfaceTest::TestErrorConIdc() {
186+ //TODO
187+}
188+
189+//DECODER_OPTION_TRACE_LEVEL
190+void DecoderInterfaceTest::TestTraceLevel() {
191+ //TODO
192+}
193+
194+//DECODER_OPTION_TRACE_CALLBACK
195+void DecoderInterfaceTest::TestTraceCallback() {
196+ //TODO
197+}
198+
199+//DECODER_OPTION_TRACE_CALLBACK_CONTEXT
200+void DecoderInterfaceTest::TestTraceCallbackContext() {
201+ //TODO
202+}
203+
204+
205+//TEST here for whole tests
206+TEST_F (DecoderInterfaceTest, DecoderInterfaceAll) {
207+ Init();
208+
209+ //Initialize Uninitialize
210+ TestInitUninit();
211+ //DECODER_OPTION_DATAFORMAT
212+ TestDataFormat();
213+ //DECODER_OPTION_END_OF_STREAM
214+ TestEndOfStream();
215+ //DECODER_OPTION_VCL_NAL
216+ TestVclNal();
217+ //DECODER_OPTION_TEMPORAL_ID
218+ TestTemporalId();
219+ //DECODER_OPTION_FRAME_NUM
220+ TestFrameNum();
221+ //DECODER_OPTION_IDR_PIC_ID
222+ TestIdrPicId();
223+ //DECODER_OPTION_LTR_MARKING_FLAG
224+ TestLtrMarkingFlag();
225+ //DECODER_OPTION_LTR_MARKED_FRAME_NUM
226+ TestLtrMarkedFrameNum();
227+ //DECODER_OPTION_ERROR_CON_IDC
228+ TestErrorConIdc();
229+ //DECODER_OPTION_TRACE_LEVEL
230+ TestTraceLevel();
231+ //DECODER_OPTION_TRACE_CALLBACK
232+ TestTraceCallback();
233+ //DECODER_OPTION_TRACE_CALLBACK_CONTEXT
234+ TestTraceCallbackContext();
235+
236+}
237+
238+

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