[FFmpeg-devel] [PATCH] Fix for broken build

Art Clarke aclarke
Sat Jan 24 20:39:12 CET 2009


On Sat, Jan 24, 2009 at 11:11 AM, Reimar D?ffinger
<Reimar.Doeffinger at stud.uni-karlsruhe.de> wrote:
> On Sat, Jan 24, 2009 at 11:00:29AM -0800, Art Clarke wrote:
>> Incidentally, this doesn't seem to have tripped up FATE
>> (http://fate.multimedia.cx/) but definitely tripped up our auto build
>> servers (http://build.xuggle.com/).  Anyone know why (perhaps error on
>> my part?).
>
> Unless one of us has a crystal ball, obviously no. How should we know
> why it fails if you don't even say what fails/with what error message?

Sorry you're absolutely right.  Let me be more clear.  What fails is
that anyone who tries to include mem.h in a library using libav will
fail.  Why?  Because the FFMPEG "make install" target will not install
config.h into /usr/local/include/libavutil, but now with Diego's
change, mem.h now requires it.

I realize now the reason FATE doesn't pick it up is it builds ffmpeg
(and hence has access to config.h), but doesn't build any external
programs using libav.

I see three possible patches:
1) remove the change in mem.h since it doesn't really break anything
it's not needed to build and doesn't break any folks outside ffmpeg
who depend on mem.h (the option I chose).

2) change the configure script to install config.h by default (a bad
idea I think, but I'm not sure).

3) tell anyone who uses mem.h outside of ffmpeg that's it's not part
of the public API, and that use of "av_malloc()" and "av_free()" is
not allowed.

There are perhaps other fixes, but they didn't occur to me.

Does that answer your question?

- Art

Here's an example compile failure line:
     [exec] In file included from
/home/hudson/.hudson/jobs/xuggle_java_xuggler_jdk5_i386_ubuntu/workspace/workingcopy/build/native/i686-pc-linux-gnu/captive/usr/local/include/libavutil/common.h:106,
     [exec]                  from
/home/hudson/.hudson/jobs/xuggle_java_xuggler_jdk5_i386_ubuntu/workspace/workingcopy/build/native/i686-pc-linux-gnu/captive/usr/local/include/libavutil/avutil.h:56,
     [exec]                  from
/home/hudson/.hudson/jobs/xuggle_java_xuggler_jdk5_i386_ubuntu/workspace/workingcopy/build/native/i686-pc-linux-gnu/captive/usr/local/include/libavcodec/avcodec.h:30,
     [exec]                  from
/home/hudson/.hudson/jobs/xuggle_java_xuggler_jdk5_i386_ubuntu/workspace/workingcopy/build/native/i686-pc-linux-gnu/captive/usr/local/include/libavformat/avformat.h:45,
     [exec]                  from
/home/hudson/.hudson/jobs/xuggle_java_xuggler_jdk5_i386_ubuntu/workspace/workingcopy/build/native/i686-pc-linux-gnu/../../../csrc/com/xuggle/xuggler/io/FfmpegIncludes.h:28,
     [exec]                  from
../../../../../../../../csrc/com/xuggle/xuggler/io/FfmpegIO.cpp:25:
     [exec] /home/hudson/.hudson/jobs/xuggle_java_xuggler_jdk5_i386_ubuntu/workspace/workingcopy/build/native/i686-pc-linux-gnu/captive/usr/local/include/libavutil/mem.h:29:20:
error: config.h: No such file or directory
     [exec] make[6]: *** [FfmpegIO.lo] Error 1

And here's a full build log if you like:
http://build.xuggle.com/job/xuggle_java_xuggler_jdk5_i386_ubuntu/323/console




More information about the ffmpeg-devel mailing list