Unable to compile VLC source on Mac OS X - error related to the codec/avcodec/libavcodec_plugin_la-video.lo
Mac OS X El Capitan, FFMpeg version 3.1.1, need help to resolve the issue:
CC codec/avcodec/libavcodec_plugin_la-video.lo
clang: warning: -O4 is equivalent to -O3
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:237: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();
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:237:23: note: did you mean 'avcodec_send_frame'?
/usr/local/Cellar/ffmpeg/3.1.1/include/libavcodec/avcodec.h:4891:5: note: 'avcodec_send_frame' declared here
int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame);
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:237: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();
^ ~~~~~~~~~~~~~~~~~~~~~
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:319:34: warning: incompatible pointer types assigning to 'enum AVPixelFormat (*)(struct
AVCodecContext *, const enum AVPixelFormat *)' from 'enum PixelFormat (AVCodecContext *, const enum PixelFormat *)' (aka 'enum PixelFormat (struct
AVCodecContext *, const enum PixelFormat *)') [-Wincompatible-pointer-types]
p_sys->p_context->get_format = ffmpeg_GetFormat;
^ ~~~~~~~~~~~~~~~~
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:449:9: error: implicit declaration of function 'avcodec_free_frame' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
avcodec_free_frame( &p_sys->p_ff_pic );
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:449:9: note: did you mean 'avcodec_send_frame'?
/usr/local/Cellar/ffmpeg/3.1.1/include/libavcodec/avcodec.h:4891:5: note: 'avcodec_send_frame' declared here
int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame);
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:645:18: warning: 'avcodec_decode_video2' is deprecated [-Wdeprecated-declarations]
i_used = avcodec_decode_video2( p_context, p_sys->p_ff_pic,
^
/usr/local/Cellar/ffmpeg/3.1.1/include/libavcodec/avcodec.h:4753:5: note: 'avcodec_decode_video2' has been explicitly marked deprecated here
int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1316:25: error: incomplete result type 'enum PixelFormat' in function definition
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:111:13: note: forward declaration of 'enum PixelFormat'
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1328:30: error: subscript of pointer to incomplete type 'const enum PixelFormat'
for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ )
~~~~~~^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:111:13: note: forward declaration of 'enum PixelFormat'
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1330:67: error: subscript of pointer to incomplete type 'const enum PixelFormat'
const AVPixFmtDescriptor *dsc = av_pix_fmt_desc_get(pi_fmt[i]);
~~~~~~^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:111:13: note: forward declaration of 'enum PixelFormat'
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1336:51: error: subscript of pointer to incomplete type 'const enum PixelFormat'
hwaccel ? "hard" : "soft", pi_fmt[i], dsc->name );
~~~~~~^
../../extras/package/macosx/../../../include/vlc_messages.h:78:63: note: expanded from macro 'msg_Dbg'
vlc_Log( VLC_OBJECT(p_this), VLC_MSG_DBG, MODULE_STRING, __VA_ARGS__ )
^~~~~~~~~~~
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:111:13: note: forward declaration of 'enum PixelFormat'
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1355:30: error: subscript of pointer to incomplete type 'const enum PixelFormat'
for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ )
~~~~~~^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:111:13: note: forward declaration of 'enum PixelFormat'
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1357:36: error: subscript of pointer to incomplete type 'const enum PixelFormat'
if( p_va->pix_fmt != pi_fmt[i] )
~~~~~~^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:111:13: note: forward declaration of 'enum PixelFormat'
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1381:22: error: subscript of pointer to incomplete type 'const enum PixelFormat'
return pi_fmt[i];
~~~~~~^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:111:13: note: forward declaration of 'enum PixelFormat'
static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1389:51: warning: incompatible pointer types passing 'const enum PixelFormat *' to
parameter of type 'const enum AVPixelFormat *' [-Wincompatible-pointer-types]
return avcodec_default_get_format( p_context, pi_fmt );
^~~~~~
/usr/local/Cellar/ffmpeg/3.1.1/include/libavcodec/avcodec.h:5518:100: note: passing argument to parameter 'fmt' here
enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt);
^
../../extras/package/macosx/../../../modules/codec/avcodec/video.c:1389:12: error: returning 'enum AVPixelFormat' from a function with incompatible result
type 'enum PixelFormat'
return avcodec_default_get_format( p_context, pi_fmt );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 warnings and 10 errors generated.
make[4]: *** [codec/avcodec/libavcodec_plugin_la-video.lo] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 7.3.0 (clang-703.0.31)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.1.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --disable-lzma --enable-vda
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 47.100 / 6. 47.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100