终于动手compile live555mediaserver.so了
2012-04-08 17:15
323 查看
如何编写Application.mk和Android.mk 参考https://github.com/boltonli/ohbee/tree/master/android 真是个好东西来着
碰到的问题:
1. xlocale.h找不到 加个compile条件
LOCAL_CPPFLAGS
:= -DLOCALE_NOT_USED
2. 提示-fexceptions, 加上
LOCAL_CPPFLAGS
:= -fexceptions
3. compile GroupsockHelper.cpp 发生 error:which is of non-class type '__u32'
改写GroupsockHelp.cpp的code segment如下:
Boolean socketJoinGroupSSM(UsageEnvironment& env, int socket,
netAddressBits groupAddress,
netAddressBits sourceFilterAddr) {
if (!IsMulticastAddress(groupAddress)) return True; // ignore this case
struct ip_mreq_source imr;
// imr.imr_multiaddr.s_addr = groupAddress;
// imr.imr_sourceaddr.s_addr = sourceFilterAddr;
// imr.imr_interface.s_addr = ReceivingInterfaceAddr;
imr.imr_multiaddr = groupAddress;
imr.imr_sourceaddr = sourceFilterAddr;
imr.imr_interface = ReceivingInterfaceAddr;
if (setsockopt(socket, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP,
(const char*)&imr, sizeof (struct ip_mreq_source)) < 0) {
socketErr(env, "setsockopt(IP_ADD_SOURCE_MEMBERSHIP) error: ");
return False;
}
return True;
}
Boolean socketLeaveGroupSSM(UsageEnvironment& /*env*/, int socket,
netAddressBits groupAddress,
netAddressBits sourceFilterAddr) {
if (!IsMulticastAddress(groupAddress)) return True; // ignore this case
struct ip_mreq_source imr;
// imr.imr_multiaddr.s_addr = groupAddress;
// imr.imr_sourceaddr.s_addr = sourceFilterAddr;
// imr.imr_interface.s_addr = ReceivingInterfaceAddr;
imr.imr_multiaddr = groupAddress;
imr.imr_sourceaddr = sourceFilterAddr;
imr.imr_interface= ReceivingInterfaceAddr;
if (setsockopt(socket, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP,
(const char*)&imr, sizeof (struct ip_mreq_source)) < 0) {
return False;
}
return True;
}
然后就搞定了。。。 泪流满面的在libs\armeabi中出现了 libmediaServer.so...
碰到的问题:
1. xlocale.h找不到 加个compile条件
LOCAL_CPPFLAGS
:= -DLOCALE_NOT_USED
2. 提示-fexceptions, 加上
LOCAL_CPPFLAGS
:= -fexceptions
3. compile GroupsockHelper.cpp 发生 error:which is of non-class type '__u32'
改写GroupsockHelp.cpp的code segment如下:
Boolean socketJoinGroupSSM(UsageEnvironment& env, int socket,
netAddressBits groupAddress,
netAddressBits sourceFilterAddr) {
if (!IsMulticastAddress(groupAddress)) return True; // ignore this case
struct ip_mreq_source imr;
// imr.imr_multiaddr.s_addr = groupAddress;
// imr.imr_sourceaddr.s_addr = sourceFilterAddr;
// imr.imr_interface.s_addr = ReceivingInterfaceAddr;
imr.imr_multiaddr = groupAddress;
imr.imr_sourceaddr = sourceFilterAddr;
imr.imr_interface = ReceivingInterfaceAddr;
if (setsockopt(socket, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP,
(const char*)&imr, sizeof (struct ip_mreq_source)) < 0) {
socketErr(env, "setsockopt(IP_ADD_SOURCE_MEMBERSHIP) error: ");
return False;
}
return True;
}
Boolean socketLeaveGroupSSM(UsageEnvironment& /*env*/, int socket,
netAddressBits groupAddress,
netAddressBits sourceFilterAddr) {
if (!IsMulticastAddress(groupAddress)) return True; // ignore this case
struct ip_mreq_source imr;
// imr.imr_multiaddr.s_addr = groupAddress;
// imr.imr_sourceaddr.s_addr = sourceFilterAddr;
// imr.imr_interface.s_addr = ReceivingInterfaceAddr;
imr.imr_multiaddr = groupAddress;
imr.imr_sourceaddr = sourceFilterAddr;
imr.imr_interface= ReceivingInterfaceAddr;
if (setsockopt(socket, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP,
(const char*)&imr, sizeof (struct ip_mreq_source)) < 0) {
return False;
}
return True;
}
然后就搞定了。。。 泪流满面的在libs\armeabi中出现了 libmediaServer.so...
相关文章推荐
- 那个穿着粉红外套的小伙子——金秋十月,终于动手了~~
- 终于决定动手了
- 两个月之前为 Phodal 新书《自己动手设计物联网》作序,今天终于正式开售了
- 终于决定动手了
- CSDN等不及,终于开始动手自宫了
- 印尼前总统苏哈托终于死了!感动啊!特此纪念!
- 总共做了5年,也存活了5年,终于启用自己名字的品牌【小李木耳】了!2012年11月
- 自己动手实现简单权限控制
- 终于有座了
- 2012-11-25 3:00 发喜讯,终于把S5pv210 VGA 分辨率提升到1440 x 900/1920 x 1080了!
- HTML5动手实验室(上海站)
- 《自己动手写操作系统》搭建你的工作环境
- 治疗鼻炎非常有效的方法——终于找到了
- CentOS 安装oracle数据库(终于搞通了~~)
- 啊,终于对单个数据模型的数据访问的代码写了
- 【转】GL学习笔记(2) - 终于搞明白gluPerspective和gluLookAt的关系了
- 自己动手系列——实现一个简单的LinkedLis
- 密钥系统终于告一段落了
- 验证码识别实践3:自己动手C#实现,颜色差异法去除干扰线
- 终于开通了博客