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
10using namespace WelsDec;
11
12class 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
71void 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
89void 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
123void 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
146void DecoderInterfaceTest::TestDataFormat() {
147 //TODO
148}
149
150//DECODER_OPTION_END_OF_STREAM
151void DecoderInterfaceTest::TestEndOfStream() {
152 //TODO
153}
154//DECODER_OPTION_VCL_NAL
155void DecoderInterfaceTest::TestVclNal() {
156 //TODO
157}
158
159//DECODER_OPTION_TEMPORAL_ID
160void DecoderInterfaceTest::TestTemporalId() {
161 //TODO
162}
163
164//DECODER_OPTION_FRAME_NUM
165void DecoderInterfaceTest::TestFrameNum() {
166 //TODO
167}
168
169//DECODER_OPTION_IDR_PIC_ID
170void DecoderInterfaceTest::TestIdrPicId() {
171 //TODO
172}
173
174//DECODER_OPTION_LTR_MARKING_FLAG
175void DecoderInterfaceTest::TestLtrMarkingFlag() {
176 //TODO
177}
178
179//DECODER_OPTION_LTR_MARKED_FRAME_NUM
180void DecoderInterfaceTest::TestLtrMarkedFrameNum() {
181 //TODO
182}
183
184//DECODER_OPTION_ERROR_CON_IDC
185void DecoderInterfaceTest::TestErrorConIdc() {
186 //TODO
187}
188
189//DECODER_OPTION_TRACE_LEVEL
190void DecoderInterfaceTest::TestTraceLevel() {
191 //TODO
192}
193
194//DECODER_OPTION_TRACE_CALLBACK
195void DecoderInterfaceTest::TestTraceCallback() {
196 //TODO
197}
198
199//DECODER_OPTION_TRACE_CALLBACK_CONTEXT
200void DecoderInterfaceTest::TestTraceCallbackContext() {
201 //TODO
202}
203
204
205//TEST here for whole tests
206TEST_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