rlm@1: // RegisterCodec.h rlm@1: rlm@1: #ifndef __REGISTERCODEC_H rlm@1: #define __REGISTERCODEC_H rlm@1: rlm@1: #include "../Common/MethodId.h" rlm@1: #include "DeclareCodecs.h" rlm@1: rlm@1: typedef void * (*CreateCodecP)(); rlm@1: struct CCodecInfo rlm@1: { rlm@1: CreateCodecP CreateDecoder; rlm@1: CreateCodecP CreateEncoder; rlm@1: CMethodId Id; rlm@1: const wchar_t *Name; rlm@1: UInt32 NumInStreams; rlm@1: bool IsFilter; rlm@1: }; rlm@1: rlm@1: void RegisterCodec(const CCodecInfo *codecInfo); rlm@1: rlm@1: #define REGISTER_CODEC(x) CRegisterCodec##x::CRegisterCodec##x() { RegisterCodec(&g_CodecInfo); } \ rlm@1: CRegisterCodec##x g_RegisterCodec##x; rlm@1: rlm@1: #define REGISTER_CODECS(x) CRegisterCodecs##x::CRegisterCodecs##x() { \ rlm@1: for(int i=0;i