关于ndk-r14b 编译ffmpeg 4.1.3 遇到的udp.c 中的mreqs.imr

    xiaoxiao2022-07-02  128

    问题:

    编译ffmpeg 4.1.3 android armv7-a版本。

     nd-r14b 编译遇到udp.c mreqs.imr_multiaddr.s_addr error.

    解决方法:

    在用到 struct p_mreq_source的函数udp_set_multicast_sources 上方这么自定义:

    struct my_ip_mreq_source {                struct in_addr imr_multiaddr;  /* IP multicast group                                                  address */                struct in_addr imr_interface;  /* IP address of local                                                  interface */                struct in_addr imr_sourceaddr; /* IP address of                                                  multicast source */            };  

    然后修改 udp.c 中struct ip_mreq_source mreqs; 为struct my_ip_mreq_source mreqs;

    这样就好了。功能完整无缺。

    出这个错的原因是低版本ndk 头文件这么定义:

    (头文件在ndk库里面 ./sysroot/usr/include/linux/in.h +181)

    struct ip_mreq_source {   __be32 imr_multiaddr; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */   __be32 imr_interface;   __be32 imr_sourceaddr; };  

    但是我们又不好改ndk头文件,还是自己重新定义一个为秒。

     

    最新回复(0)