[FFmpeg-devel] [PATCH] lavfi: simplify link dependencies.

Hendrik Leppkes h.leppkes at gmail.com
Fri May 24 16:51:41 CEST 2013


On Thu, May 23, 2013 at 4:20 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Thu, May 23, 2013 at 02:45:00AM +0200, Clément Bœsch wrote:
>> On Thu, May 23, 2013 at 02:12:26AM +0200, Michael Niedermayer wrote:
>> > On Wed, May 22, 2013 at 07:38:14PM +0200, Clément Bœsch wrote:
>> > > This avoids re-declaring the filter dependencies. Also, it fixes the
>> > > optional dependencies: for instance the select filter having an optional
>> > > dependency on avcodec.
>> > > ---
>> > >  libavfilter/Makefile | 23 ++++++-----------------
>> > >  1 file changed, 6 insertions(+), 17 deletions(-)
>> > >
>> > > diff --git a/libavfilter/Makefile b/libavfilter/Makefile
>> > > index 6cc2930..2897f49 100644
>> > > --- a/libavfilter/Makefile
>> > > +++ b/libavfilter/Makefile
>> > > @@ -2,23 +2,12 @@ include $(SUBDIR)../config.mak
>> > >
>> > >  NAME = avfilter
>> > >  FFLIBS = avutil
>> > > -FFLIBS-$(CONFIG_ACONVERT_FILTER)             += swresample
>> > > -FFLIBS-$(CONFIG_AMOVIE_FILTER)               += avformat avcodec
>> > > -FFLIBS-$(CONFIG_ARESAMPLE_FILTER)            += swresample
>> > > -FFLIBS-$(CONFIG_ASYNCTS_FILTER)              += avresample
>> > > -FFLIBS-$(CONFIG_ATEMPO_FILTER)               += avcodec
>> > > -FFLIBS-$(CONFIG_DECIMATE_FILTER)             += avcodec
>> > > -FFLIBS-$(CONFIG_DESHAKE_FILTER)              += avcodec
>> > > -FFLIBS-$(CONFIG_MOVIE_FILTER)                += avformat avcodec
>> > > -FFLIBS-$(CONFIG_MP_FILTER)                   += avcodec
>> > > -FFLIBS-$(CONFIG_PAN_FILTER)                  += swresample
>> > > -FFLIBS-$(CONFIG_PP_FILTER)                   += postproc
>> > > -FFLIBS-$(CONFIG_REMOVELOGO_FILTER)           += avformat avcodec swscale
>> > > -FFLIBS-$(CONFIG_RESAMPLE_FILTER)             += avresample
>> > > -FFLIBS-$(CONFIG_SCALE_FILTER)                += swscale
>> > > -FFLIBS-$(CONFIG_SHOWSPECTRUM_FILTER)         += avcodec
>> > > -FFLIBS-$(CONFIG_SMARTBLUR_FILTER)            += swscale
>> > > -FFLIBS-$(CONFIG_SUBTITLES_FILTER)            += avformat avcodec
>> > > +FFLIBS-$(CONFIG_AVCODEC)    += avcodec
>> > > +FFLIBS-$(CONFIG_AVFORMAT)   += avformat
>> > > +FFLIBS-$(CONFIG_AVRESAMPLE) += avresample
>> > > +FFLIBS-$(CONFIG_POSTPROC)   += postproc
>> > > +FFLIBS-$(CONFIG_SWRESAMPLE) += swresample
>> > > +FFLIBS-$(CONFIG_SWSCALE)    += swscale
>> >
>> > I think with that change libavfilter would depend on all build libs
>> > even if it uses nothing from them
>> >
>>
>> Yes, it will make a dependency, but only if it's available. What problem
>> could that cause? I mean, in what situation would you not want that
>> dependency if you build the other libraries?
>
> in case you are making packages for a distribution.
> the users dont want random unneeded dependencies
> also it could slow down loading
>

I kinda agree with Michael, lavfi already links against
avformat/swscale today even if it uses nothing from it.
It would be ideal if the deps would be perfectly specified, and only
linked against if actually used - and those helper modules for
avformat/swscale/avcodec integration also only build when needed
(otherwise they add a dep for nothing) - however this is something
that needs to be maintained and will probably break often in the
future, as partial lavfi builds are not tested often.

Note that today lavfi does not build in a shared library config if you
disable most filters (say, only build yadif and buffersrc/sink), and
this patch would fix that - but it would also mean my deinterlacer
suddenly starts loading avformat, which it really doesn't need.


More information about the ffmpeg-devel mailing list