mDNS移植Android系统简介

     最近有个客户,需要在他的机顶盒上支持Airplay, 其机顶盒系统是Android4.0.4, 此版本系统没有mDNS(需要Android4.1+)及MediaCodec接口 (需要Android4.1.2+), 所以我们需要移植mDNS及使用软解码来实现. 此文介绍mDNS的移植.
     mDNS我们选型使用Apple的开源软件mDNSResponder, 下载地址为 https://opensource.apple.com/tarballs/mDNSResponder/
     使用mDNSResponder, 需要解决两个问题: 1个是解决Android移植问题,另外一个是解决CS问题,我们要求是以库文件的方式提供给Airplay协议栈使用.
     mDNSResponder解压之后, 会出现如下文件夹
APPLE_LICENSE  Clients  Makefile  mDNSCore  mDNSMacOS9  mDNSMacOSX  mDNSPosix  mDNSShared  mDNSVxWorks  mDNSWindows  README.txt
     我们实际只需要使用mDNSCore/mDNSPosix/mDNSShared, 其他目录都不需要.修改步骤如下:
  1. 将自己使用的NDK生成独立的gcc的tool chain目录     
  2. 进入mDNSPosix目录,修改Makefile,将CC/LD/修改为NDK Tool Chain的gcc/ld路径
  3. make os=linux
  4. 编译的时候可能会遇到编译错误,主要是Android的某些函数定义没有或者和POSIX Linux不一致, 修改掉即可
  5. 编译成功,则会生成一个服务器端的service, 我们不需要使用它,接下来我们需要修改源代码及makefile,使其生成库文件
  6. 所有确定我们的库文件提供4个接口:初始化mDNSService/结束mDNSService/PublishService/DePublishService
  7. 参考mDNSPosix/PosixDaemon.c文件,修改或者重新撰写,实现以上4个接口
  8. 修改mDNSPosix/PosixDaemon.c文件,取消main函数
  9. 修改Makefile, 将生成可执行文件修改为生成库文件
  10. 撰写测试程序,测试


 技术交流有兴趣请加:
 音视频技术交流群:308601278
 无线投屏技术交流群:582349005
 无线投屏官网: http://www.wirelessdisplay.cn/
 无线投屏DEMO下载: https://github.com/wirelessdisplay
 
 公司官网
 www.bijienetworks.com
 我司有成熟的视频会议/视频监控/视频调度/无线投屏盒子销售,也可做音视频相关产品和技术的定制化开发
 商务合作请至邮件marketing@bijienetworks.com

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值