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.
This commit is contained in:
Martin Storsjö
2014-02-18 12:29:43 +02:00
parent 622694935b
commit 49f4dad1b7
7 changed files with 42 additions and 29 deletions

View File

@@ -56,7 +56,8 @@ class ISVCEncoder {
/*
* return: CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI Initialize (const void* pParam, const INIT_TYPE kiInitType = INIT_TYPE_PARAMETER_BASED) = 0;
virtual int EXTAPI Initialize (const SEncParamBase* pParam) = 0;
virtual int EXTAPI InitializeExt (const SEncParamExt* pParam) = 0;
virtual int EXTAPI Uninitialize() = 0;
@@ -140,7 +141,8 @@ typedef struct ISVCEncoderVtbl ISVCEncoderVtbl;
typedef const ISVCEncoderVtbl* ISVCEncoder;
struct ISVCEncoderVtbl {
int (*Initialize) (ISVCEncoder*, const void* pParam, const INIT_TYPE kiInitType);
int (*Initialize) (ISVCEncoder*, const SEncParamBase* pParam);
int (*InitializeExt) (ISVCEncoder*, const SEncParamExt* pParam);
int (*Uninitialize) (ISVCEncoder*);