3 #ifndef __REGISTERCODEC_H
4 #define __REGISTERCODEC_H
6 #include "../Common/MethodId.h"
8 typedef void * (*CreateCodecP)();
11 CreateCodecP CreateDecoder;
12 CreateCodecP CreateEncoder;
19 void RegisterCodec(const CCodecInfo *codecInfo);
21 #define REGISTER_CODEC_NAME(x) CRegisterCodec ## x
23 #define REGISTER_CODEC(x) struct REGISTER_CODEC_NAME(x) { \
24 REGISTER_CODEC_NAME(x)() { RegisterCodec(&g_CodecInfo); }}; \
25 static REGISTER_CODEC_NAME(x) g_RegisterCodec;
27 #define REGISTER_CODECS_NAME(x) CRegisterCodecs ## x
28 #define REGISTER_CODECS(x) struct REGISTER_CODECS_NAME(x) { \
29 REGISTER_CODECS_NAME(x)() { for (int i = 0; i < sizeof(g_CodecsInfo) / sizeof(g_CodecsInfo[0]); i++) \
30 RegisterCodec(&g_CodecsInfo[i]); }}; \
31 static REGISTER_CODECS_NAME(x) g_RegisterCodecs;