[FFmpeg-devel] About the future of component registration APIs

Jan Ekström jeebjp at gmail.com
Wed May 9 20:13:03 EEST 2018

On Wed, May 9, 2018 at 3:38 PM, Yu Xiaolei <dreifachstein at gmail.com> wrote:
> Hello,
> I noticed that commit 7e8eba2d87 deprecated avcodec_register and there was
> some disagreement on this issue. Will there be some sort of replacement for
> it?
> We want to build ffmpeg in a way that only the most frequently used
> components are shipped initially and others are downloaded on demand. This
> can be implemented for now with a custom link step but will be impossible
> if this API were removed.


The problem was that the things in FFmpeg until then did not make it
actually possible to dynamically register external things. Not to
mention that there were internal symbols required to even create what
you were trying to register. In other words, it looked as if you could
add external things, but in reality you could not with the public

The other alternative, where you just wanted to distribute internal
parts of FFmpeg separately, was not supported by the build system in
any other form than what Debian did. Namely, they built one shared
library with certain decoders and encoders disabled, and then another
version which was a replacement for the first one. And this is still

If you require proper separation of components within libraries, and
then their dynamic registration, that needs a proper public API
design. Currently there is no replacement for the function you
mention, while I am not sure what you could do with it and the
standard build system options.

Best regards,

More information about the ffmpeg-devel mailing list