问题:我觉得ffmpeg的域名解析函数有风险,不同的网络下,域名解析效率得不到保证,于是,我用dnsplus开源的模块替代之。
解决步骤:
1,修改configure
CONFIG_LIST{
.....
dnsplus
}
这里需要清楚,config.h 以及config.mat文件与configure文件关系。他们是由configure生成的。
这样分别在config.h 和 config.mak中生成宏定义 !CONFIG_DNSPLUS=yes
2,添加文件
构造libavformat下的Makefile中 添加宏定义 CONFIG_DNSPLUS对应的文件
OBJS-$(CONFIG_DNSPLUS) += locks.o lruhash.o dns.o dphttp.o dplus.o
3, 使用宏
如下是tcp.c文件中的修改,
#if CONFIG_DNSPLUS
ret = dp_getaddrinfo(NULL, "http", &hints, &ai);
#else
ret = getaddrinfo(NULL, portstr, &hints, &ai);
#endif
4, 重新生成
./configure --enable-dsnplus ( 或者卸载该功能 --disable-dnsplus)
5,扩展
如果添加相应的protocol或者其他的有意义方法类似上诉,需要简单注册到相应的链表上,写好probe就行。