[FFmpeg-devel] [RFC] full paths in #include directives

Diego Biurrun diego
Thu May 8 01:24:27 CEST 2008

I would like to propose using full paths in all #include directives in
FFmpeg, i.e.

#include "libavutil/common.h"

instead of

#include "common.h"

The reasons are manyfold:

0) We already expect this from external users.

1) Many header names are not at all unique.  The above-mentioned
common.h comes to mind, as do others.  Depending on the order of -I
flags the right header may or may not be included.

This has bitten me several times in MPlayer already.  We now use full
paths for FFmpeg #includes in MPlayer, but still -I flags are needed so
that the FFmpeg headers themselves can find their dependencies.  But
with -Ilibavcodec on the gcc command line '#include <png.h>' picks up
the FFmpeg version instead of the libpng header.  Build system kludges
can work around this, but the system remains brittle, future FFmpeg
changes may necessitate more or updated kludges.

2) The need for -I flags would be reduced internally as well as

Attached is an example patch for libpostproc.  If the idea is accepted,
I will do the rest of the work myself.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: full_path.diff
Type: text/x-diff
Size: 3215 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080508/0eaee571/attachment.diff>

More information about the ffmpeg-devel mailing list