[MPlayer-dev-eng] [RFC] all of FFmpeg as svn:external

Diego Biurrun diego at biurrun.de
Mon Jul 12 11:39:36 CEST 2010


I have been working on changing the build system to use all of FFmpeg
as a single svn:external instead of multiple svn:externals for each
library that we use.

This avoids duplicating much of the FFmpeg build system and indeed the
diffstat is quite attractive:

 Makefile   |   47 --
 common.mak |  109 ------
 configure  |  995 ++-----------------------------------------------------------
 subdir.mak |  101 ------
 4 files changed, 48 insertions(+), 1204 deletions(-)

Shrinking configure by a full 10% and getting rid of subdir.mak and
common.mak to keep tracking is no small feat and will reduce our
maintenance burden considerably.

The downside is pulling in more source than we really need, like
libavdevice and the FFmpeg test infrastructure.

This is still strictly a work in progress, but I figured that the sooner
I get feedback on the general idea and the implementation, the better.

There are still quite a few rough edges.  I will add a configure
parameter that passes along options to FFmpeg's configure.  I have not
reviewed it closely myself yet and it is surely not yet free of bugs.

Currently it triggers a great deal of warnings of the sort

In file included from ffmpeg/libavutil/common.h:90,
                 from ffmpeg/libavutil/avutil.h:81,
                 from ffmpeg/libavcodec/avcodec.h:30,
                 from libmpcodecs/vf_zrmjpeg.c:51:
ffmpeg/libavutil/intmath.h:36:5: warning: "HAVE_FAST_CLZ" is not defined
ffmpeg/libavutil/intmath.h:65:6: warning: "CONFIG_SMALL" is not defined
In file included from ffmpeg/libavutil/internal.h:192,
                 from ffmpeg/libavutil/common.h:307,
                 from ffmpeg/libavutil/avutil.h:81,
                 from ffmpeg/libavcodec/avcodec.h:30,
                 from libmpcodecs/vf_zrmjpeg.c:51:
ffmpeg/libavutil/libm.h:31:6: warning: "HAVE_EXP2" is not defined
ffmpeg/libavutil/libm.h:36:6: warning: "HAVE_EXP2F" is not defined
ffmpeg/libavutil/libm.h:41:6: warning: "HAVE_LLRINT" is not defined
ffmpeg/libavutil/libm.h:46:6: warning: "HAVE_LLRINTF" is not defined
ffmpeg/libavutil/libm.h:51:6: warning: "HAVE_LOG2" is not defined
ffmpeg/libavutil/libm.h:56:6: warning: "HAVE_LOG2F" is not defined
In file included from ffmpeg/libavutil/common.h:307,
                 from ffmpeg/libavutil/avutil.h:81,
                 from ffmpeg/libavcodec/avcodec.h:30,
                 from libmpcodecs/vf_zrmjpeg.c:51:
ffmpeg/libavutil/internal.h:199:5: warning: "CONFIG_SMALL" is not defined
ffmpeg/libavutil/internal.h:223:5: warning: "HAVE_SYMVER_ASM_LABEL" is not defined
ffmpeg/libavutil/internal.h:227:7: warning: "HAVE_SYMVER_GNU_ASM" is not defined
In file included from ffmpeg/libavutil/bswap.h:46,
                 from ffmpeg/libavutil/intreadwrite.h:25,
                 from ffmpeg/libavcodec/dsputil.h:33,
                 from ffmpeg/libavcodec/mjpegenc.h:36,
                 from libmpcodecs/vf_zrmjpeg.c:52:
ffmpeg/libavutil/x86/bswap.h:41:5: warning: "HAVE_BSWAP" is not defined
In file included from ffmpeg/libavutil/intreadwrite.h:70,
                 from ffmpeg/libavcodec/dsputil.h:33,
                 from ffmpeg/libavcodec/mjpegenc.h:36,
                 from libmpcodecs/vf_zrmjpeg.c:52:
ffmpeg/libavutil/x86/intreadwrite.h:30:6: warning: "HAVE_FAST_64BIT" is not defined
In file included from ffmpeg/libavcodec/mjpegenc.h:36,
                 from libmpcodecs/vf_zrmjpeg.c:52:
ffmpeg/libavcodec/dsputil.h:696:5: warning: "HAVE_LOCAL_ALIGNED_8" is not defined
ffmpeg/libavcodec/dsputil.h:702:5: warning: "HAVE_LOCAL_ALIGNED_16" is not defined
In file included from ffmpeg/libavcodec/mpegvideo.h:33,
                 from ffmpeg/libavcodec/mjpegenc.h:37,
                 from libmpcodecs/vf_zrmjpeg.c:52:
ffmpeg/libavcodec/put_bits.h:184:6: warning: "HAVE_FAST_UNALIGNED" is not defined

because it reads ./config.h instead of ffmpeg/config.h.  One possible
workaround is to rename our config.h to mpconfig.h.  However, that will
muck with our other external libraries.  I'm all ears for better
solutions if you have any to offer.

Comments?

Diego
-------------- next part --------------
A non-text attachment was scrubbed...
Name: external_ffmpeg.diff
Type: text/x-diff
Size: 53164 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20100712/583d1f95/attachment-0001.diff>


More information about the MPlayer-dev-eng mailing list