[MacPorts] #50697: VLC @2.1.5: build fails when using recently released ffmpeg-3.0

MacPorts noreply at macports.org
Mon Feb 22 03:26:54 PST 2016


#50697: VLC @2.1.5: build fails when using recently released ffmpeg-3.0
----------------------+-------------------------
 Reporter:  devans@…  |      Owner:  rjvbertin@…
     Type:  defect    |     Status:  new
 Priority:  Normal    |  Milestone:
Component:  ports     |    Version:  2.3.4
 Keywords:            |       Port:  VLC
----------------------+-------------------------
 Build fails due to the use of long deprecated API that has finally been
 dropped in this major release. See
 [https://github.com/FFmpeg/FFmpeg/blob/master/doc/APIchanges FFmpeg
 doc/APIchanges] for the details of FFmpeg API changes/deprecations over
 time along with suggested alternatives.

 Since this port is outdated, updating to the current upstream stable
 version 2.2.2 may help.  The upstream developers may have dealt with the
 issue or parts of it already.

 Build fails as follows.  Full build log attached.

 {{{
 ../../doltlibtool  --tag=CC   --mode=compile /usr/bin/clang -isysroot /
 -DHAVE_CONFIG_H -I. -I../..  -DMODULE_NAME=$(p="libavcodec_plugin_la-
 video.lo"; p="${p##*/}"; p="${p#lib}"; echo "${p%_plugin*}")
 -DMODULE_NAME_IS_$(p="libavcodec_plugin_la-video.lo"; p="${p##*/}";
 p="${p#lib}"; echo "${p%_plugin*}") -DMODULE_STRING=\"$(p
 ="libavcodec_plugin_la-video.lo"; p="${p##*/}"; p="${p#lib}"; echo
 "${p%_plugin*}")\" -D__PLUGIN__ -I../../include -I../../include
 -I/opt/local/include -D__unix__=1
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -I/opt/local/include  -I/opt/local/include   -DMERGE_FFMPEG -pipe -Os
 -arch x86_64 -D_INTL_REDIRECT_MACROS
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast
 -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-
 implicit-function-declaration -pipe -fvisibility=hidden -ffast-math
 -funroll-loops -fomit-frame-pointer -MT libavcodec_plugin_la-video.lo -MD
 -MP -MF .deps/libavcodec_plugin_la-video.Tpo -c -o libavcodec_plugin_la-
 video.lo `test -f 'avcodec/video.c' || echo './'`avcodec/video.c
 mv -f .deps/libedummy_plugin_la-edummy.Tpo .deps/libedummy_plugin_la-
 edummy.Plo
 ../../doltlibtool  --tag=CC   --mode=compile /usr/bin/clang -isysroot /
 -DHAVE_CONFIG_H -I. -I../..  -DMODULE_NAME=$(p="libavcodec_plugin_la-
 subtitle.lo"; p="${p##*/}"; p="${p#lib}"; echo "${p%_plugin*}")
 -DMODULE_NAME_IS_$(p="libavcodec_plugin_la-subtitle.lo"; p="${p##*/}";
 p="${p#lib}"; echo "${p%_plugin*}") -DMODULE_STRING=\"$(p
 ="libavcodec_plugin_la-subtitle.lo"; p="${p##*/}"; p="${p#lib}"; echo
 "${p%_plugin*}")\" -D__PLUGIN__ -I../../include -I../../include
 -I/opt/local/include -D__unix__=1
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -I/opt/local/include  -I/opt/local/include   -DMERGE_FFMPEG -pipe -Os
 -arch x86_64 -D_INTL_REDIRECT_MACROS
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast
 -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-
 implicit-function-declaration -pipe -fvisibility=hidden -ffast-math
 -funroll-loops -fomit-frame-pointer -MT libavcodec_plugin_la-subtitle.lo
 -MD -MP -MF .deps/libavcodec_plugin_la-subtitle.Tpo -c -o
 libavcodec_plugin_la-subtitle.lo `test -f 'avcodec/subtitle.c' || echo
 './'`avcodec/subtitle.c
 mv -f .deps/libscte27_plugin_la-scte27.Tpo .deps/libscte27_plugin_la-
 scte27.Plo
 ../../doltlibtool  --tag=CC   --mode=compile /usr/bin/clang -isysroot /
 -DHAVE_CONFIG_H -I. -I../..  -DMODULE_NAME=$(p="libavcodec_plugin_la-
 audio.lo"; p="${p##*/}"; p="${p#lib}"; echo "${p%_plugin*}")
 -DMODULE_NAME_IS_$(p="libavcodec_plugin_la-audio.lo"; p="${p##*/}";
 p="${p#lib}"; echo "${p%_plugin*}") -DMODULE_STRING=\"$(p
 ="libavcodec_plugin_la-audio.lo"; p="${p##*/}"; p="${p#lib}"; echo
 "${p%_plugin*}")\" -D__PLUGIN__ -I../../include -I../../include
 -I/opt/local/include -D__unix__=1
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -I/opt/local/include  -I/opt/local/include   -DMERGE_FFMPEG -pipe -Os
 -arch x86_64 -D_INTL_REDIRECT_MACROS
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast
 -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-
 implicit-function-declaration -pipe -fvisibility=hidden -ffast-math
 -funroll-loops -fomit-frame-pointer -MT libavcodec_plugin_la-audio.lo -MD
 -MP -MF .deps/libavcodec_plugin_la-audio.Tpo -c -o libavcodec_plugin_la-
 audio.lo `test -f 'avcodec/audio.c' || echo './'`avcodec/audio.c
 In file included from avcodec/video.c:43:
 In file included from avcodec/avcodec.h:25:
 avcodec/avcommon.h:57:5: warning: 'av_set_cpu_flags_mask' is deprecated
 [-Wdeprecated-declarations]
     av_set_cpu_flags_mask( INT_MAX & ~GetVlcDspMask() );
     ^
 /opt/local/include/libavutil/cpu.h:91:27: note: 'av_set_cpu_flags_mask'
 has been explicitly marked deprecated here
 attribute_deprecated void av_set_cpu_flags_mask(int mask);
                           ^
 avcodec/video.c:203:23: error: implicit declaration of function
 'avcodec_alloc_frame' is invalid in C99 [-Werror,-Wimplicit-function-
 declaration]
     p_sys->p_ff_pic = avcodec_alloc_frame();
                       ^
 avcodec/video.c:203:21: warning: incompatible integer to pointer
 conversion assigning to 'AVFrame *' (aka 'struct AVFrame *') from 'int'
 [-Wint-conversion]
     p_sys->p_ff_pic = avcodec_alloc_frame();
                     ^ ~~~~~~~~~~~~~~~~~~~~~
 In file included from avcodec/subtitle.c:39:
 In file included from avcodec/avcodec.h:25:
 avcodec/avcommon.h:57:5: warning: 'av_set_cpu_flags_mask' is deprecated
 [-Wdeprecated-declarations]
     av_set_cpu_flags_mask( INT_MAX & ~GetVlcDspMask() );
     ^
 /opt/local/include/libavutil/cpu.h:91:27: note: 'av_set_cpu_flags_mask'
 has been explicitly marked deprecated here
 attribute_deprecated void av_set_cpu_flags_mask(int mask);
                           ^
 avcodec/video.c:320:23: error: no member named 'get_buffer' in 'struct
 AVCodecContext'; did you mean 'get_buffer2'?
     p_sys->p_context->get_buffer = ffmpeg_GetFrameBuf;
                       ^~~~~~~~~~
                       get_buffer2
 avcodec/subtitle.c:217:45: warning: 'pict' is deprecated [-Wdeprecated-
 declarations]
             const uint8_t index = ffregion->pict.data[0][y *
 ffregion->w+x];
                                             ^
 /opt/local/include/libavcodec/avcodec.h:3710:15: note: 'pict' has been
 explicitly marked deprecated here
     AVPicture pict;
               ^
 avcodec/subtitle.c:217:50: warning: 'data' is deprecated [-Wdeprecated-
 declarations]
             const uint8_t index = ffregion->pict.data[0][y *
 ffregion->w+x];
                                                  ^
 /opt/local/include/libavcodec/avcodec.h:3668:14: note: 'data' has been
 explicitly marked deprecated here
     uint8_t *data[AV_NUM_DATA_POINTERS];    ///< pointers to the image
 data planes
              ^
 avcodec/subtitle.c:221:39: warning: 'pict' is deprecated [-Wdeprecated-
 declarations]
             memcpy(&color, &ffregion->pict.data[1][4*index], 4);
                                       ^
 /usr/include/secure/_string.h:65:33: note: expanded from macro 'memcpy'
   __builtin___memcpy_chk (dest, src, len, __darwin_obsz0 (dest))
                                 ^
 /opt/local/include/libavcodec/avcodec.h:3710:15: note: 'pict' has been
 explicitly marked deprecated here
     AVPicture pict;
               ^
 avcodec/subtitle.c:221:44: warning: 'data' is deprecated [-Wdeprecated-
 declarations]
             memcpy(&color, &ffregion->pict.data[1][4*index], 4);
                                            ^
 /usr/include/secure/_string.h:65:33: note: expanded from macro 'memcpy'
   __builtin___memcpy_chk (dest, src, len, __darwin_obsz0 (dest))
                                 ^
 /opt/local/include/libavcodec/avcodec.h:3668:14: note: 'data' has been
 explicitly marked deprecated here
     uint8_t *data[AV_NUM_DATA_POINTERS];    ///< pointers to the image
 data planes
              ^
 /opt/local/include/libavcodec/avcodec.h:2442:11: note: 'get_buffer2'
 declared here
 avcodec/subtitle.c:284:9: warning: 'avpicture_free' is deprecated
 [-Wdeprecated-declarations]
     int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int
 flags);
         avpicture_free(&rec->pict);          ^

         ^
 /opt/local/include/libavcodec/avcodec.h:4877:6: note: 'avpicture_free' has
 been explicitly marked deprecated here
 void avpicture_free(AVPicture *picture);
      ^
 avcodec/subtitle.c:284:30: warning: 'pict' is deprecated [-Wdeprecated-
 declarations]
         avpicture_free(&rec->pict);
                              ^
 /opt/local/include/libavcodec/avcodec.h:3710:15: note: 'pict' has been
 explicitly marked deprecated here
     AVPicture pict;
               ^
 avcodec/video.c:320:34: warning: incompatible pointer types assigning to
 'int (*)(struct AVCodecContext *, AVFrame *, int)' from 'int (struct
 AVCodecContext *, AVFrame *)' [-Wincompatible-pointer-types]
     p_sys->p_context->get_buffer = ffmpeg_GetFrameBuf;
                                  ^ ~~~~~~~~~~~~~~~~~~
 avcodec/video.c:321:23: error: no member named 'reget_buffer' in 'struct
 AVCodecContext'; did you mean 'get_buffer2'?
     p_sys->p_context->reget_buffer = avcodec_default_reget_buffer;
                       ^~~~~~~~~~~~
                       get_buffer2
 /opt/local/include/libavcodec/avcodec.h:2442:11: note: 'get_buffer2'
 declared here
     int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int
 flags);
           ^
 avcodec/video.c:321:38: error: use of undeclared identifier
 'avcodec_default_reget_buffer'; did you mean
 'avcodec_default_get_buffer2'?
     p_sys->p_context->reget_buffer = avcodec_default_reget_buffer;
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                      avcodec_default_get_buffer2
 /opt/local/include/libavcodec/avcodec.h:4219:5: note:
 'avcodec_default_get_buffer2' declared here
 int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int
 flags);
     ^
 avcodec/video.c:322:23: error: no member named 'release_buffer' in 'struct
 AVCodecContext'
     p_sys->p_context->release_buffer = ffmpeg_ReleaseFrameBuf;
     ~~~~~~~~~~~~~~~~  ^
 avcodec/video.c:367:38: warning: incompatible pointer types assigning to
 'enum AVPixelFormat (*)(struct AVCodecContext *, const enum AVPixelFormat
 *)' from 'enum PixelFormat (AVCodecContext *, const enum PixelFormat *)'
 [-Wincompatible-pointer-types]
         p_sys->p_context->get_format = ffmpeg_GetFormat;
                                      ^ ~~~~~~~~~~~~~~~~
 avcodec/video.c:639:25: warning: comparison of integers of different
 signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
         else if( i_used > p_block->i_buffer ||
                  ~~~~~~ ^ ~~~~~~~~~~~~~~~~~
 avcodec/video.c:938:15: error: no member named 'type' in 'struct AVFrame'
     p_ff_pic->type = FF_BUFFER_TYPE_USER;
     ~~~~~~~~  ^
 avcodec/video.c:938:22: error: use of undeclared identifier
 'FF_BUFFER_TYPE_USER'
     p_ff_pic->type = FF_BUFFER_TYPE_USER;
                      ^
 avcodec/video.c:955:31: error: use of undeclared identifier
 'PIX_FMT_PAL8'; did you mean 'AV_PIX_FMT_PAL8'?
     if (p_context->pix_fmt == PIX_FMT_PAL8)
                               ^~~~~~~~~~~~
                               AV_PIX_FMT_PAL8
 /opt/local/include/libavutil/pixfmt.h:74:5: note: 'AV_PIX_FMT_PAL8'
 declared here
     AV_PIX_FMT_PAL8,      ///< 8 bit with AV_PIX_FMT_RGB32 palette
     ^
 avcodec/video.c:990:31: error: use of undeclared identifier
 'PIX_FMT_YUV422P'; did you mean 'AV_PIX_FMT_YUV422P'?
     if( p_context->pix_fmt == PIX_FMT_YUV422P )
                               ^~~~~~~~~~~~~~~
                               AV_PIX_FMT_YUV422P
 /opt/local/include/libavutil/pixfmt.h:67:5: note: 'AV_PIX_FMT_YUV422P'
 declared here
     AV_PIX_FMT_YUV422P,   ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample
 per 2x1 Y samples)
     ^
 avcodec/video.c:1031:16: error: implicit declaration of function
 'avcodec_default_get_buffer' is invalid in C99 [-Werror,-Wimplicit-
 function-declaration]
         return avcodec_default_get_buffer( p_context, p_ff_pic );
                ^
 avcodec/video.c:1031:16: note: did you mean 'avcodec_default_get_buffer2'?
 /opt/local/include/libavcodec/avcodec.h:4219:5: note:
 'avcodec_default_get_buffer2' declared here
 int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int
 flags);
     ^
 avcodec/video.c:1058:15: error: no member named 'type' in 'struct AVFrame'
     p_ff_pic->type = FF_BUFFER_TYPE_USER;
     ~~~~~~~~  ^
 avcodec/video.c:1058:22: error: use of undeclared identifier
 'FF_BUFFER_TYPE_USER'
     p_ff_pic->type = FF_BUFFER_TYPE_USER;
                      ^
 avcodec/video.c:1082:24: error: no member named 'type' in 'struct AVFrame'
     else if( p_ff_pic->type == FF_BUFFER_TYPE_INTERNAL )
              ~~~~~~~~  ^
 avcodec/audio.c:42:10: fatal error: 'libavutil/audioconvert.h' file not
 found
 #include <libavutil/audioconvert.h>
          ^
 7 warnings generated.
 avcodec/video.c:1082:32: error: use of undeclared identifier
 'FF_BUFFER_TYPE_INTERNAL'
     else if( p_ff_pic->type == FF_BUFFER_TYPE_INTERNAL )
                                ^
 avcodec/video.c:1087:9: error: implicit declaration of function
 'avcodec_default_release_buffer' is invalid in C99 [-Werror,-Wimplicit-
 function-declaration]
         avcodec_default_release_buffer( p_context, p_ff_pic );
         ^
 mv -f .deps/libavcodec_plugin_la-subtitle.Tpo .deps/libavcodec_plugin_la-
 subtitle.Plo
 ../../doltlibtool  --tag=CC   --mode=compile /usr/bin/clang -isysroot /
 -DHAVE_CONFIG_H -I. -I../..  -DMODULE_NAME=$(p="libavcodec_plugin_la-
 cpu.lo"; p="${p##*/}"; p="${p#lib}"; echo "${p%_plugin*}")
 -DMODULE_NAME_IS_$(p="libavcodec_plugin_la-cpu.lo"; p="${p##*/}";
 p="${p#lib}"; echo "${p%_plugin*}") -DMODULE_STRING=\"$(p
 ="libavcodec_plugin_la-cpu.lo"; p="${p##*/}"; p="${p#lib}"; echo
 "${p%_plugin*}")\" -D__PLUGIN__ -I../../include -I../../include
 -I/opt/local/include -D__unix__=1
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -I/opt/local/include  -I/opt/local/include   -DMERGE_FFMPEG -pipe -Os
 -arch x86_64 -D_INTL_REDIRECT_MACROS
 -I/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/contrib/include
 -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast
 -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-
 implicit-function-declaration -pipe -fvisibility=hidden -ffast-math
 -funroll-loops -fomit-frame-pointer -MT libavcodec_plugin_la-cpu.lo -MD
 -MP -MF .deps/libavcodec_plugin_la-cpu.Tpo -c -o libavcodec_plugin_la-
 cpu.lo `test -f 'avcodec/cpu.c' || echo './'`avcodec/cpu.c
 1 error generated.
 avcodec/video.c:1087:9: note: did you mean 'avcodec_default_get_buffer'?
 avcodec/video.c:1031:16: note: 'avcodec_default_get_buffer' declared here
         return avcodec_default_get_buffer( p_context, p_ff_pic );
                ^
 make[4]: *** [libavcodec_plugin_la-audio.lo] Error 1
 make[4]: *** Waiting for unfinished jobs....
 avcodec/video.c:1135:25: error: incomplete result type 'enum PixelFormat'
 in function definition
 static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
                         ^
 avcodec/video.c:108:13: note: forward declaration of 'enum PixelFormat'
 static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
             ^
 avcodec/video.c:1157:30: error: subscript of pointer to incomplete type
 'const enum PixelFormat'
     for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ )
                        ~~~~~~^
 avcodec/video.c:108:13: note: forward declaration of 'enum PixelFormat'
 static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
             ^
 avcodec/video.c:1157:37: error: use of undeclared identifier
 'PIX_FMT_NONE'; did you mean 'AV_PIX_FMT_NONE'?
     for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ )
                                     ^~~~~~~~~~~~
                                     AV_PIX_FMT_NONE
 /opt/local/include/libavutil/pixfmt.h:62:5: note: 'AV_PIX_FMT_NONE'
 declared here
     AV_PIX_FMT_NONE = -1,
     ^
 avcodec/video.c:1159:54: error: subscript of pointer to incomplete type
 'const enum PixelFormat'
         const char *name = av_get_pix_fmt_name(pi_fmt[i]);
                                                ~~~~~~^
 avcodec/video.c:108:13: note: forward declaration of 'enum PixelFormat'
 static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
             ^
 fatal error: too many errors emitted, stopping now [-ferror-limit=]
 5 warnings and 20 errors generated.
 make[4]: *** [libavcodec_plugin_la-video.lo] Error 1
 In file included from avcodec/cpu.c:30:
 avcodec/avcommon.h:57:5: warning: 'av_set_cpu_flags_mask' is deprecated
 [-Wdeprecated-declarations]
     av_set_cpu_flags_mask( INT_MAX & ~GetVlcDspMask() );
     ^
 /opt/local/include/libavutil/cpu.h:91:27: note: 'av_set_cpu_flags_mask'
 has been explicitly marked deprecated here
 attribute_deprecated void av_set_cpu_flags_mask(int mask);
                           ^
 1 warning generated.
 mv -f .deps/libavcodec_plugin_la-cpu.Tpo .deps/libavcodec_plugin_la-
 cpu.Plo
 mv -f .deps/libdvbsub_plugin_la-dvbsub.Tpo .deps/libdvbsub_plugin_la-
 dvbsub.Plo
 make[4]: Leaving directory
 `/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/modules/codec'
 make[3]: *** [all] Error 2
 make[3]: Leaving directory
 `/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/modules/codec'
 make[2]: *** [all-recursive] Error 1
 make[2]: Leaving directory
 `/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/modules'
 make[1]: *** [all-recursive] Error 1
 make[1]: Leaving directory
 `/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5'
 make: *** [all] Error 2
 make: Leaving directory
 `/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5'
 Command failed:  cd
 "/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5"
 && /usr/bin/make -j4 -w all
 DESTDIR=/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_VLC/VLC/work/vlc-2.1.5/dest_ignore
 V=1
 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/50697>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list