OLD | NEW |
| (Empty) |
1 // RegisterCodec.h | |
2 | |
3 #ifndef __REGISTERCODEC_H | |
4 #define __REGISTERCODEC_H | |
5 | |
6 #include "../Common/MethodId.h" | |
7 | |
8 typedef void * (*CreateCodecP)(); | |
9 struct CCodecInfo | |
10 { | |
11 CreateCodecP CreateDecoder; | |
12 CreateCodecP CreateEncoder; | |
13 CMethodId Id; | |
14 const wchar_t *Name; | |
15 UInt32 NumInStreams; | |
16 bool IsFilter; | |
17 }; | |
18 | |
19 void RegisterCodec(const CCodecInfo *codecInfo); | |
20 | |
21 #define REGISTER_CODEC_NAME(x) CRegisterCodec ## x | |
22 | |
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; | |
26 | |
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) / sizeo
f(g_CodecsInfo[0]); i++) \ | |
30 RegisterCodec(&g_CodecsInfo[i]); }}; \ | |
31 static REGISTER_CODECS_NAME(x) g_RegisterCodecs; | |
32 | |
33 #endif | |
OLD | NEW |