[FFmpeg-devel] [PATCH] configure: Correct detection of pre-processor defines for configure _LISTS.

Matt Oliver protogonoi at gmail.com
Sat Apr 22 14:09:10 EEST 2017


Currently the find_things configure function will scan a code file (e.g.
allfilters.c) and then create a list of pre-processor values to be added
to configure.
Unfortunately the way it currently does it is incorrect with what the
original c code expects. For example the following exists in
allfilters.c:
REGISTER_FILTER(FREI0R,         frei0r_src,     vsrc);

where REGISTER_FILTER is defined as:
#define REGISTER_FILTER(X, x, y)
{
    extern AVFilter ff_##y##_##x;
    if (CONFIG_##X##_FILTER)
        avfilter_register(&ff_##y##_##x);
}

In c code this will check a configuration pre-processor define called
CONFIG_FREI0R_FILTER and then register the filter if currently set.

The issue arises in that configure currently looks for REGISTER_FILTER
but when found it will use the second parameter in the macro to create
the configuration option. So it will actually return that the
pre-processor define is CONFIG_FREI0R_SRC_FILTER and not
CONFIG_FREI0R_FILTER as the source code actually expects.

This patch changes the behaviour to match what the c code expects by
using the first parameter in the macro to create configure values. Since
the first parameter is in upper case it needs to be converted to lower
case to be usable within configure (this may be why currently the
incorrect - although lower case 2nd parameter is currently used).
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure b/configure
index e6fe05a6ee..346dbc660b 100755
--- a/configure
+++ b/configure
@@ -3366,7 +3366,7 @@ find_things(){
     thing=$1
     pattern=$2
     file=$source_path/$3
-    sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p"
"$file"
+    sed -n "s/^[^#]*$pattern.*(\([^,]*\),
*\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file" | tr '[:upper:]' '[:lower:]'
 }

 ENCODER_LIST=$(find_things  encoder  ENC      libavcodec/allcodecs.c)
-- 
2.11.0.windows.3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-configure-Correct-detection-of-pre-processor-defines.patch
Type: application/octet-stream
Size: 2151 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170422/17898010/attachment.obj>


More information about the ffmpeg-devel mailing list