Nicolas George: > Andreas Rheinhardt (12021-01-04): >> What enumerating code? It is actually commonplace that options are >> shared (you can find examples in libavfilter by using 'git grep -e >> define --and -e options'); pointing into other options and thereby >> reusing only a part of other options is not common, but I don't really >> see why it shouldn't work. > > Using #define to de-duplicate the source is fine, of course. > > But IIRC pointing to the same array, i.e. de-duplicating in the binary, > will lead to the code that enumerate options to loop in some way. I do > not remember the details, and I cannot find a commit that talks about > it, sorry. Maybe somebody here remembers better? > > Regards, > The AVOpt API simply deals with arrays of AVOptions that are terminated by a { NULL } entry. A pointer that points into such an array still points into a { NULL } terminated list of options. It is really the same as with ordinary strings*. Using ffmpeg -h filter=allyuv still shows the same options. (Is it possible that you are confusing this with AVFilterPads? Several of the AVFilterPad arrays are also the same and I have not yet checked whether they can be safely deduplicated or not.)
- Andreas *: With the difference that the compiler is not allowed to deduplicate on its own whereas this is legal for string literals. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".