Not sure where in the thread would be the best place to reply, so I
might as well reply here.

There is one idea I have been toying with for some time that relates to
codec registration. It is significantly different from the direction
this discussion was taking, but I think it offers a lot of advantages.

Let us have "struct AVCodecLibrary" with the lists of codecs, bsfs, etc.
Whenever a function needs to access the lists, have it take an
AVCodecLibrary argument. It can be made automatic most of the time by
adding an AVCodecLibrary field to all AVSomethingContext structs.

Amongst the benefits I see:

If an application deals with trusted and untrusted files, it can use two
instances of AVCodecLibrary, one with only reliable codecs, one with
all. It is more robust and easier than the whitelists.

If an application uses lavc directly but also indirectly through a
library (or indirectly twice through two libraries), the instances are
independent since they use a different instance of AVCodecLibrary.

The same structure could be used to set all mutable global state, like
the log level and callback.

Please comment.


  Nicolas George

Attachment: signature.asc
Description: Digital signature

ffmpeg-devel mailing list

Reply via email to