| 123456789101112131415161718192021222324252627282930313233 |
- // RegisterCodec.h
- #ifndef __REGISTERCODEC_H
- #define __REGISTERCODEC_H
- #include "../Common/MethodId.h"
- typedef void * (*CreateCodecP)();
- struct CCodecInfo
- {
- CreateCodecP CreateDecoder;
- CreateCodecP CreateEncoder;
- CMethodId Id;
- const wchar_t *Name;
- UInt32 NumInStreams;
- bool IsFilter;
- };
- void RegisterCodec(const CCodecInfo *codecInfo);
- #define REGISTER_CODEC_NAME(x) CRegisterCodec ## x
- #define REGISTER_CODEC(x) struct REGISTER_CODEC_NAME(x) { \
- REGISTER_CODEC_NAME(x)() { RegisterCodec(&g_CodecInfo); }}; \
- static REGISTER_CODEC_NAME(x) g_RegisterCodec;
- #define REGISTER_CODECS_NAME(x) CRegisterCodecs ## x
- #define REGISTER_CODECS(x) struct REGISTER_CODECS_NAME(x) { \
- REGISTER_CODECS_NAME(x)() { for (int i = 0; i < sizeof(g_CodecsInfo) / sizeof(g_CodecsInfo[0]); i++) \
- RegisterCodec(&g_CodecsInfo[i]); }}; \
- static REGISTER_CODECS_NAME(x) g_RegisterCodecs;
- #endif
|