[FFmpeg-trac] #7741(avformat:new): when use ndk bulid the 4.1 code occur error

FFmpeg trac at avcodec.org
Sat Feb 16 21:55:21 EET 2019


#7741: when use ndk bulid the 4.1 code occur error
-------------------------------------+-------------------------------------
             Reporter:  hitvz        |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  minor        |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  udp android  |               Blocked By:
  regression                         |
             Blocking:               |  Reproduced by developer:  1
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Description changed by cehoyos:

Old description:

> the configuration shell script:
> #!/bin/bash
> NDK=/home/hui/Desktop/android-ndk-r16b
> SYSROOT=$NDK/platforms/android-21/arch-arm/
> CPU=armv7-a
> TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
> PREFIX=$(pwd)/android/$CPU
> OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
>
> export PATH=$PATH:/usr/lib/jvm/java-8-openjdk-amd64/include
>
> function build_android
> {
> ./configure \
> --prefix=$PREFIX \
> --enable-neon \
> --enable-hwaccels \
> --enable-shared \
> --enable-jni \
> --enable-mediacodec \
> --enable-decoder=h264_mediacodec \
> --disable-static \
> --disable-doc \
> --enable-ffmpeg \
> --disable-ffplay \
> --disable-ffprobe \
> --enable-avdevice \
> --disable-doc \
> --disable-symver \
> --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
> --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
> --target-os=android \
> --arch=arm \
> --cpu=armv7-a \
> --enable-cross-compile \
> --sysroot=$SYSROOT \
> --extra-cflags="-shared -I /usr/lib/jvm/java-1.8.0-openjdk-amd64/include/
> -I /usr/lib/jvm/java-1.8.0-openjdk-amd64/include/linux/ -I
> /home/hui/Desktop/android-ndk-r16b/sysroot/usr/include -I
> /home/hui/Desktop/android-ndk-r16b/sysroot/usr/include/arm-linux-
> androideabi -Os -fpic $OPTIMIZE_CFLAGS" \
> --extra-ldflags="$ADDI_LDFLAGS" \
> $ADDITIONAL_CONFIGURE_FLAG
> }
> build_android
>
> ---------------------
>
> when i use option --disable-avformat , it is normal to build.
>
> if not, it will occur the below error:
> libavformat/udp.c: In function 'udp_set_multicast_sources':
> libavformat/udp.c:290:28: error: request for member 's_addr' in something
> not a structure or union
>          mreqs.imr_multiaddr.s_addr = ((struct sockaddr_in
> *)addr)->sin_addr.s_addr;
>                             ^
> libavformat/udp.c:292:32: error: incompatible types when assigning to
> type '__be32' from type 'struct in_addr'
>              mreqs.imr_interface= ((struct sockaddr_in
> *)local_addr)->sin_addr;
>                                 ^
> libavformat/udp.c:294:32: error: request for member 's_addr' in something
> not a structure or union
>              mreqs.imr_interface.s_addr= INADDR_ANY;
>                                 ^
> libavformat/udp.c:295:29: error: request for member 's_addr' in something
> not a structure or union
>          mreqs.imr_sourceaddr.s_addr = ((struct sockaddr_in
> *)&sources[i])->sin_addr.s_addr;
>                              ^
> In file included from /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/byteorder/little_endian.h:28:0,
>                  from /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/arm-linux-androideabi/asm/byteorder.h:21,
>                  from /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/in.h:229,
>                  from /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/netinet/in.h:37,
>                  from libavformat/network.h:61,
>                  from libavformat/udp.c:41:
> libavformat/udp.c: At top level:
> /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/swab.h:100:29: warning: '__swab32s'
> defined but not used [-Wunused-function]
>  static __always_inline void __swab32s(__u32 * p) {
>                              ^
> /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/swab.h:107:29: warning: '__swab64s'
> defined but not used [-Wunused-function]
>  static __always_inline void __swab64s(__u64 * p) {
>                              ^
> /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/swab.h:107:29: warning: always_inline
> function might not be inlinable [-Wattributes]
> /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/swab.h:100:29: warning: always_inline
> function might not be inlinable [-Wattributes]
>  static __always_inline void __swab32s(__u32 * p) {
>                              ^
> /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/swab.h:72:30: warning: always_inline
> function might not be inlinable [-Wattributes]
>  static __always_inline __u64 __swab64p(const __u64 * p) {
>                               ^
> /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/swab.h:65:30: warning: always_inline
> function might not be inlinable [-Wattributes]
>  static __always_inline __u32 __swab32p(const __u32 * p) {
>                               ^
> /home/hui/Desktop/android-ndk-
> r16b/sysroot/usr/include/linux/swab.h:58:30: warning: always_inline
> function might not be inlinable [-Wattributes]
>  static __always_inline __u16 __swab16p(const __u16 * p) {
>                               ^
> make: *** [ffbuild/common.mak:60:libavformat/udp.o] 错误 1
>
> -----------
> thx to fix it or get some suggestion

New description:

 the configuration shell script:
 {{{
 #!/bin/bash
 NDK=/home/hui/Desktop/android-ndk-r16b
 SYSROOT=$NDK/platforms/android-21/arch-arm/
 CPU=armv7-a
 TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
 PREFIX=$(pwd)/android/$CPU
 OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "

 export PATH=$PATH:/usr/lib/jvm/java-8-openjdk-amd64/include

 function build_android
 {
 ./configure \
 --prefix=$PREFIX \
 --enable-neon \
 --enable-hwaccels \
 --enable-shared \
 --enable-jni \
 --enable-mediacodec \
 --enable-decoder=h264_mediacodec \
 --disable-static \
 --disable-doc \
 --enable-ffmpeg \
 --disable-ffplay \
 --disable-ffprobe \
 --enable-avdevice \
 --disable-doc \
 --disable-symver \
 --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
 --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
 --target-os=android \
 --arch=arm \
 --cpu=armv7-a \
 --enable-cross-compile \
 --sysroot=$SYSROOT \
 --extra-cflags="-shared -I /usr/lib/jvm/java-1.8.0-openjdk-amd64/include/
 -I /usr/lib/jvm/java-1.8.0-openjdk-amd64/include/linux/ -I
 /home/hui/Desktop/android-ndk-r16b/sysroot/usr/include -I
 /home/hui/Desktop/android-ndk-r16b/sysroot/usr/include/arm-linux-
 androideabi -Os -fpic $OPTIMIZE_CFLAGS" \
 --extra-ldflags="$ADDI_LDFLAGS" \
 $ADDITIONAL_CONFIGURE_FLAG
 }
 build_android

 ---------------------

 when i use option --disable-avformat , it is normal to build.

 if not, it will occur the below error:
 libavformat/udp.c: In function 'udp_set_multicast_sources':
 libavformat/udp.c:290:28: error: request for member 's_addr' in something
 not a structure or union
          mreqs.imr_multiaddr.s_addr = ((struct sockaddr_in
 *)addr)->sin_addr.s_addr;
                             ^
 libavformat/udp.c:292:32: error: incompatible types when assigning to type
 '__be32' from type 'struct in_addr'
              mreqs.imr_interface= ((struct sockaddr_in
 *)local_addr)->sin_addr;
                                 ^
 libavformat/udp.c:294:32: error: request for member 's_addr' in something
 not a structure or union
              mreqs.imr_interface.s_addr= INADDR_ANY;
                                 ^
 libavformat/udp.c:295:29: error: request for member 's_addr' in something
 not a structure or union
          mreqs.imr_sourceaddr.s_addr = ((struct sockaddr_in
 *)&sources[i])->sin_addr.s_addr;
                              ^
 In file included from /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/linux/byteorder/little_endian.h:28:0,
                  from /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/arm-linux-androideabi/asm/byteorder.h:21,
                  from /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/linux/in.h:229,
                  from /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/netinet/in.h:37,
                  from libavformat/network.h:61,
                  from libavformat/udp.c:41:
 libavformat/udp.c: At top level:
 /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/linux/swab.h:100:29: warning: '__swab32s' defined
 but not used [-Wunused-function]
  static __always_inline void __swab32s(__u32 * p) {
                              ^
 /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/linux/swab.h:107:29: warning: '__swab64s' defined
 but not used [-Wunused-function]
  static __always_inline void __swab64s(__u64 * p) {
                              ^
 /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/linux/swab.h:107:29: warning: always_inline
 function might not be inlinable [-Wattributes]
 /home/hui/Desktop/android-ndk-
 r16b/sysroot/usr/include/linux/swab.h:100:29: warning: always_inline
 function might not be inlinable [-Wattributes]
  static __always_inline void __swab32s(__u32 * p) {
                              ^
 /home/hui/Desktop/android-ndk-r16b/sysroot/usr/include/linux/swab.h:72:30:
 warning: always_inline function might not be inlinable [-Wattributes]
  static __always_inline __u64 __swab64p(const __u64 * p) {
                               ^
 /home/hui/Desktop/android-ndk-r16b/sysroot/usr/include/linux/swab.h:65:30:
 warning: always_inline function might not be inlinable [-Wattributes]
  static __always_inline __u32 __swab32p(const __u32 * p) {
                               ^
 /home/hui/Desktop/android-ndk-r16b/sysroot/usr/include/linux/swab.h:58:30:
 warning: always_inline function might not be inlinable [-Wattributes]
  static __always_inline __u16 __swab16p(const __u16 * p) {
                               ^
 make: *** [ffbuild/common.mak:60:libavformat/udp.o] 错误 1
 }}}
 -----------
 thx to fix it or get some suggestion

--

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7741#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list