[FFmpeg-devel] [PATCH] Add --avlog-limit configure option.

Don Moir donmoir at comcast.net
Mon Sep 23 18:38:59 CEST 2013


>>On 2013-09-22 17:03 +0200, Reimar Döffinger wrote:
>>> This allows compiling out messages below a certain level.
>>> Note that it might cause some strange behaviour with the
>>> help printout of the command-line tools.
>>>
>>> Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
>>> ---
>>>  configure       | 26 ++++++++++++++++++++++++++
>>>  libavutil/log.c |  1 +
>>>  libavutil/log.h | 12 ++++++++++++
>>>  libavutil/opt.c |  3 +++
>>>  4 files changed, 42 insertions(+)
>>>
>>> diff --git a/configure b/configure
>>> index a219c26..759b225 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -99,6 +99,9 @@ Configuration options:
>>>    --disable-static         do not build static libraries [no]
>>>    --enable-shared          build shared libraries [no]
>>>    --enable-small           optimize for size instead of speed
>>> +  --avlog-limit=value      do not compile in messages below this limit,
>>> +                           reducing binary size. Can be a number or one of:
>>> +                           debug verbose info warning error fatal panic quiet
>>>    --disable-runtime-cpudetect disable detecting cpu capabilities at runtime (smaller binary)
>>>    --enable-gray            enable full grayscale support (slower color)
>>>    --disable-swscale-alpha  disable alpha channel support in swscale

>>  IIUC with your latest changes to this patch you compile out the log
>>calls in the libs only. If I am not mistaken this should be reflected
>>more explicitly in the option description and in the commit message.

>>> @@ -2486,6 +2489,23 @@ for opt do
>>>          --enable-debug=*)
>>>              debuglevel="$optval"
>>>          ;;
>>> +        --avlog-limit=*)
>>> +            avloglimit="$optval"
>>> +            case "$avloglimit" in
>>> +            debug)   avloglimit=AV_LOG_DEBUG ;;
>>> +            verbose) avloglimit=AV_LOG_VERBOSE ;;
>>> +            info)    avloglimit=AV_LOG_INFO ;;
>>> +            warning) avloglimit=AV_LOG_WARNING ;;
>>> +            error)   avloglimit=AV_LOG_ERROR ;;
>>> +            fatal)   avloglimit=AV_LOG_FATAL ;;
>>> +            panic)   avloglimit=AV_LOG_PANIC ;;
>>> +            quiet)   avloglimit=AV_LOG_QUIET ;;
>>> +            AV_LOG_*) ;; # looks like a predefined constant, assume it is valid
>>> +            -[0-9]*|[0-9]*) ;; # looks like a number, assume it is valid
>>> +            '') ;; # empty string to unset
>>> +            *) die "Invalid value '$avloglimit' for --avlog-limit"
>>> +            esac
>>> +        ;;

>>  This is too flexible for my taste. I would just do (un-tested):

>>  --avlog-limit=*)
>>      avloglimit="$optval"
>>      case "$avloglimit" in
>>      AV_LOG_DEBUG)     ;;
>>      AV_LOG_VERBOSE)   ;;
>>      AV_LOG_INFO)      ;;
>>      AV_LOG_WARNING)   ;;
>>      AV_LOG_ERROR)     ;;
>>      AV_LOG_FATAL)     ;;
>>      AV_LOG_PANIC)     ;;
>>      AV_LOG_QUIET)     ;;
>>      '') ;; # empty string to unset
>>      *) die "Invalid value '$avloglimit' for --avlog-limit"
>>      esac
>>  ;;

>>  Usage errors will be caught immediately. If future extension
>>will be needed it will be easy to do. Just a suggestion, maybe
>>it is just me.

>It will be more natural to use the exisitng AV_LOG_* values as parameters and better to make it less flexible like this. Was to 
>easy to make a mistake the other way. Like with the other way this passes as valid --avlog_limit=-AV_LOG_WARNING and then you have 
>a negative value.

Additionally, if someone was to enter a wrong value, it may be good to display the valid values.




More information about the ffmpeg-devel mailing list