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
200/*200/*
201 * SVC Encoder Initialization201 * SVC Encoder Initialization
202 */202 */
203int CWelsH264SVCEncoder::Initialize (const void* argv, const INIT_TYPE iInitType) {203int CWelsH264SVCEncoder::Initialize (const SEncParamBase* argv) {
204 204
205 if (NULL == argv) {
206 WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), invalid argv= 0x%p\n",
207 argv);
208 return cmInitParaError;
209 }
205 210
206 if ((INIT_TYPE_PARAMETER_BASED != iInitType && INIT_TYPE_PARAMETER_EXT != iInitType)|| NULL == argv) {211 SWelsSvcCodingParam sConfig (true);
207 WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), invalid iInitType= %d, argv= 0x%p\n",212 // Convert SEncParamBase into WelsSVCParamConfig here..
208 iInitType, (void*)argv);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
222int 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);
209 return cmInitParaError;227 return cmInitParaError;
210 }228 }
211 229
212 SWelsSvcCodingParam sConfig (true);230 SWelsSvcCodingParam sConfig (true);
213 if(iInitType == INIT_TYPE_PARAMETER_BASED)231 // Convert SEncParamExt into WelsSVCParamConfig here..
214 {232 if (sConfig.ParamTranscode (*argv)) {
215 // Convert SEncParamBase into WelsSVCParamConfig here..233 WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), parameter_translation failed.\n");
216 if (sConfig.ParamBaseTranscode (*(const SEncParamBase*)argv, true)) {234 Uninitialize();
217 WelsLog (m_pEncContext, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), parameter_translation failed.\n");235 return cmInitParaError;
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 }
230 }236 }
231 237
232 return Initialize2 (&sConfig);238 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