History

Split the encoder Initialize method into two

This avoids the struct type casting and having to pass a parameter that says which kind of struct it actually is.

Martin Storsjö committed 12 years ago

Commit 49f4dad1 parent 62269497 files · +42 −29Browse files

Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 7 files). Show all

Unified · Split

codec/encoder/plus/src/welsEncoderExt.cpp+27−21
@@ -200,33 +200,39 @@ void CWelsH264SVCEncoder::InitEncoder (void) { · 199 unmodified lines
200200 /*
201201 * SVC Encoder Initialization
202202 */
203−int CWelsH264SVCEncoder::Initialize (const void* argv, const INIT_TYPE iInitType) {
203+int CWelsH264SVCEncoder::Initialize (const SEncParamBase* argv) {
204204
205+ if (NULL == argv) {
206+ WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), invalid argv= 0x%p\n",
207+ argv);
208+ return cmInitParaError;
209+ }
205210
206− if ((INIT_TYPE_PARAMETER_BASED != iInitType && INIT_TYPE_PARAMETER_EXT != iInitType)|| NULL == argv) {
207− WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), invalid iInitType= %d, argv= 0x%p\n",
208− iInitType, (void*)argv);
211+ SWelsSvcCodingParam sConfig (true);
212+ // Convert SEncParamBase into WelsSVCParamConfig here..
213+ if (sConfig.ParamBaseTranscode (*argv, true)) {
214+ WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), parameter_translation failed.\n");
215+ Uninitialize();
216+ return cmInitParaError;
217+ }
218+
219+ return Initialize2 (&sConfig);
220+}
221+
222+int CWelsH264SVCEncoder::InitializeExt (const SEncParamExt* argv) {
223+
224+ if (NULL == argv) {
225+ WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), invalid argv= 0x%p\n",
226+ argv);
209227 return cmInitParaError;
210228 }
211229
212230 SWelsSvcCodingParam sConfig (true);
213− if(iInitType == INIT_TYPE_PARAMETER_BASED)
214− {
215− // Convert SEncParamBase into WelsSVCParamConfig here..
216− if (sConfig.ParamBaseTranscode (*(const SEncParamBase*)argv, true)) {
217− WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), parameter_translation failed.\n");
218− Uninitialize();
219− return cmInitParaError;
220− }
221− }
222− else if(iInitType == INIT_TYPE_PARAMETER_EXT)
223− {
224− // Convert SEncParamExt into WelsSVCParamConfig here..
225− if (sConfig.ParamTranscode (*(const SEncParamExt*)argv)) {
226− WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), parameter_translation failed.\n");
227− Uninitialize();
228− return cmInitParaError;
229− }
231+ // Convert SEncParamExt into WelsSVCParamConfig here..
232+ if (sConfig.ParamTranscode (*argv)) {
233+ WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), parameter_translation failed.\n");
234+ Uninitialize();
235+ return cmInitParaError;
230236 }
231237
232238 return Initialize2 (&sConfig);

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