[FFmpeg-devel] [PATCH] Remove libavcodec/opt.c:set_all_opt()

Stefano Sabatini stefano.sabatini-lala
Sun Dec 7 19:30:44 CET 2008

Hi all,

currently av_set_string2(), if fed with the name of a named constant
or flag, will look for all the non-constant options with the same unit
and will set their value to the value of the named constant.

This permits for example to do tricks of the kind:

ffmpeg -mv4 foo -> ffmpeg -flags2 +mv4
ffmpeg -zero bar -> ffmpeg -me_method zero

The problem with this is that this "feature" isn't reliable, since it
only works with the *first* constant found, while different named
constants may have the same name, so the user has to know the options
array in order to predict the behaviour.

For example without knowing the options order "ffmpeg -auto 1" may mean:
1) ffmpeg -idct auto
2) ffmpeg -dct auto
3) ffmpeg -aa auto

Even worse, something like:
ffmpeg -dct 1

may be interpreted both as:
ffmpeg -dct 1
ffmpeg -cmp_func dct

(BTW the current code will broke if a named constant is defined
*before* a parameter with the same name.)

I propose to remove this feature, this also makes the code smaller and

FFmpeg = Free and Fast Magical Proud Exciting Geek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: remove-set-all-opt-00.patch
Type: text/x-diff
Size: 1356 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20081207/04633972/attachment.patch>

More information about the ffmpeg-devel mailing list