45 lines
1023 B
C
45 lines
1023 B
C
#ifndef _MEDIA_AVMODULE_H_
|
||
#define _MEDIA_AVMODULE_H_
|
||
|
||
#define __AUDIO_MODULE_EXPORT(n, module) \
|
||
int n##_##module##_probe(void) \
|
||
{ \
|
||
return 1; \
|
||
}
|
||
|
||
|
||
#define AUDIO_DECODER_EXPORT(name) \
|
||
__AUDIO_MODULE_EXPORT(name, decoder)
|
||
|
||
#define AUDIO_ENCODER_EXPORT(name) \
|
||
__AUDIO_MODULE_EXPORT(name, encoder)
|
||
|
||
#define AUDIO_HWACCEL_EXPORT(name) \
|
||
__AUDIO_MODULE_EXPORT(name, hwaccel)
|
||
|
||
|
||
#define __AUDIO_MODULE_PROBE(x, module) \
|
||
({ \
|
||
int ret; \
|
||
extern int x##_##module##_probe(); \
|
||
ret = x##_##module##_probe(); \
|
||
printf("module probe : %s_%s\n", #x, #module);\
|
||
ret; \
|
||
})
|
||
|
||
/*--no-whole-archive时,调用probe函数进行链接文件*/
|
||
#define AUDIO_DECODER_PROBE(name) \
|
||
__AUDIO_MODULE_PROBE(name, decoder)
|
||
|
||
#define AUDIO_ENCODER_PROBE(name) \
|
||
__AUDIO_MODULE_PROBE(name, encoder)
|
||
|
||
#define AUDIO_PACKAGE_PROBE(name) \
|
||
__AUDIO_MODULE_PROBE(name, package)
|
||
|
||
#define AUDIO_HWACCEL_PROBE(name) \
|
||
__AUDIO_MODULE_PROBE(name, hwaccel)
|
||
|
||
|
||
#endif
|